Matlab 函数绘图

使用前辍 ez 的函数来绘图。比如 ezsurf

绘制曲面图,ezplot 绘制平面上的曲线, ezmesh 绘制网格图。

syms x y real;

y=x+5;

ezplot(y)

这个可以画出一条直线来。

在MuPAD 的 NoteBook 中,输入命令:

delete x,y

//这个是为了防止前面的运算干扰

y:=x+5:

plot(y)

可以画出和上面Matlab中一样的图。

画一条和X轴水平的直线

ezplot(0*x+5)

如果直接 ezplot(5) 会提示有错误,需要

ezplot('5')

而MuPAD则较为简单

plot(5)

看来MuPAD相对方便一些。

如果要画与Y轴平行的直线,那么就像

ezplot('x=0*y+1'),plot(x=1) 。

画隐函数表示的曲线

ezplot(sym('y-x=5'))

这条曲线和上面的例子一样的,不过是用隐函数的方式来表达。

如果:ezplot(y-x=5) 则会发生错误。提示错误为

等号左边的表达式不是一个有效的目标。这也好理解,y-x 确实不是一个可以赋值的变量。显然, y-x=5

中的等号被理解为一个赋值操作,而不是一个数学上的“=”操作。sym('y-x=5')

中的等号不是一个赋值操作,因为它是一个字符串中的内容。传递一个符号表达式给ezplot,然后再分析。

为了更方便一些,也可以:ezplot('y-x=5')

也就是

引号括起来的字符串将被当成符号表达式。

在MuPAD中,同样的功能为:plot(y-x=5),相对而言是较为简单的。

ezplot('abs(x-y)=5',[0,30])

a4c26d1e5885305701be709a3d33442f.png

用MuPAD达到同样的绘图:

delete x,y

plot(abs(y-x)=5,x=0..30)

a4c26d1e5885305701be709a3d33442f.png

有时注意要删除x、y,因为如果前面有运算的话,可能x、y

不是变量而是一个常数值,这样就不是原来所想的函数了。

画定义域为符号表达式的曲线

比如曲线 y=x+5,规定定义域为

x^2<16

用MuPAD来画:

delete x,y;x,y

plot(piecewise([x^2<16,x+5]))

a4c26d1e5885305701be709a3d33442f.png

也就是使用piecewise来表达分段。分段,当然可以只有一段。如果用Matlab来画这种函数,那么似乎得先求出一个常数类型的定义域。比如,此例中,根据x^2<16可解得

-4

ezplot('x+5',[-4,4])

不过,有时候这样求解比较麻烦。solve('x^2<16')

画定义域、某种区域(平面的一部分)

比如,上例中的定义域为x^2<16,就是一条线段。

delete x,y;x,y

plot(x^2<16)

a4c26d1e5885305701be709a3d33442f.png

假设要在平面上画出一个圆形区域的定义域:x^2+y^2<16

delete x,y;x,y

plot(x^2+y^2<16)

a4c26d1e5885305701be709a3d33442f.png

如何用Matlab来画一个区域?具体方法还不知道。

ezsurf('x^2+y^2<16',[-10,10],300)

a4c26d1e5885305701be709a3d33442f.png

ezplot('x^2+y^2<16',[-10,20])

a4c26d1e5885305701be709a3d33442f.png

画曲面

比如,某个曲面的表达式为 z=x^2+y^2,

ezsurf('x^2+y^2')

a4c26d1e5885305701be709a3d33442f.png

delete x,y;x,y

plot(x^2+y^2,#3D)

a4c26d1e5885305701be709a3d33442f.png

效果差不多。

隐函数形式的曲面

比如上面那个曲面,如果把式子变成:x^2+y^2-z=0,就是隐函数了。

delete x,y

plot(x^2+y^2-z=0,#3D)

a4c26d1e5885305701be709a3d33442f.png

用matlab来画隐函数形式的曲面据说很麻烦。具体方法不详。

画球体的方法:比如

plot(x^2+y^2+z^2=10,#3D)

a4c26d1e5885305701be709a3d33442f.png

二维随机变量的均匀分布中,定义域为圆形,联合密度图形

定义域:x^2+y^2<=1

p=1;

plot(piecewise([x^2+y^2<=1,1]),#3D)

a4c26d1e5885305701be709a3d33442f.png

在MuPAD中,z=x+y 与 z:=x+y 的不同

z=x+y

是一种数学表达式,不是赋值操作,而带冒号的 z:=x+y 是一种赋值操作。

比如,plot(z=x+y,#3D)

被认为是在画隐函数形式的曲面。 z:=x+y: plot(z,#3D) 效果与之相同,用 z 代表

x+y。

如果

z:=x+y

plot(z=x+y,#3D)

则会被解析为

plot(x+y=x+y,#3D),0?

例题

已知 v 为正实数,u属于区间

【负根号2,根号2】。求证:8 <= (u - v)^2 + (9/v - (2 - u^2)^(1/2))^2

a4c26d1e5885305701be709a3d33442f.png

z:=(u-v)^2+(sqrt(2-u^2)-9/v)^2plot(z,8,#3D) assuming

v>0,-sqrt(2)a4c26d1e5885305701be709a3d33442f.png

看图。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐