加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab、MuPAD 符号变量 画图方法

(2013-06-18 16:55:50)
标签:

matlab

it

分类: Matlab

Matlab、MuPAD 符号变量 画图方法

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])

http://hiphotos.baidu.com/chinfs/pic/item/c62b9162f0b1aa8be6113aa0.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />
用MuPAD达到同样的绘图:

 

delete x,y

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

http://hiphotos.baidu.com/chinfs/pic/item/853ed523ce6cee12ac34de95.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

有时注意要删除x、y,因为如果前面有运算的话,可能x、y 不是变量而是一个常数值,这样就不是原来所想的函数了。

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

比如曲线 y=x+5,规定定义域为 x^2<16

用MuPAD来画:

 

delete x,y;x,y

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

http://hiphotos.baidu.com/chinfs/pic/item/5e233fcb3bbabd49bc09e658.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

也就是使用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)

http://hiphotos.baidu.com/chinfs/pic/item/c8ddd30a93c1754994ca6bab.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

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

 

delete x,y;x,y

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

http://hiphotos.baidu.com/chinfs/pic/item/bd72473b182099bc14cecbb1.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

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

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

http://hiphotos.baidu.com/chinfs/pic/item/93a5150feeaa837c6159f3f7.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

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

http://hiphotos.baidu.com/chinfs/pic/item/f6d723096e9a24993ac76383.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

 画曲面

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

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

 http://hiphotos.baidu.com/chinfs/pic/item/26b8b7decb67dc0296ee374c.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

 

delete x,y;x,y

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

http://hiphotos.baidu.com/chinfs/pic/item/2e6f8d17d6d3375fcb3d6d49.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

效果差不多。

 隐函数形式的曲面

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

 

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

http://hiphotos.baidu.com/chinfs/pic/item/88007d014877e9587aec2cec.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />
用matlab来画隐函数形式的曲面据说很麻烦。具体方法不详。

画球体的方法:比如 plot(x^2+y^2+z^2=10,#3D)

http://hiphotos.baidu.com/chinfs/pic/item/caff29226adc71f24723e8b2.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

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

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

p=1;

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

http://hiphotos.baidu.com/chinfs/pic/item/0ee8e58b866576299f2fb497.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />


 在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

http://hiphotos.baidu.com/chinfs/pic/item/622df345a0abda70cefca327.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

 

z:=(u-v)^2+(sqrt(2-u^2)-9/v)^2plot(z,8,#3D) assuming v>0,-sqrt(2)http://hiphotos.baidu.com/chinfs/pic/item/9031f83e22216bac838b1330.jpg符号变量 画图方法" TITLE="Matlab、MuPAD 符号变量 画图方法" />

看图。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有