作者a0981314780 (小宇)
看板MATLAB
标题[绘图] 双变数方程式绘图相关问题
时间Tue Dec 18 04:50:33 2018
各位好。
小弟正在写论文,目前遇到需要绘图辅助的情况,
教授建议可以使用matlab,但之前从没碰过这软体,
自己上网查指令後是有画出图,不过没能完全解决需求,
所以来这边请教各位前辈 m(_ _)m
[前情提要]
需要判别下列双变数函数值z的正负。
z=32*x^3*y+3*y^4-16*x^4-8*x^2*y^2-8*x*y^3
(其中x,y皆>0且x>y)
[问题]
1. 有曾经成功画出来,但那是在x、y有限制值域的情况下 (例如:x属於[0,100])
指令的部分使用的是 x = linspace(0,100),
我查了之後发现这个,好像是用来把一定范围内的数分成n等分的间隔,
对我需要解决的问题好像不是很重要,可是拿掉上面那指令後它就跑不出来了。
#以下为跑不出来时用的指令及结果
>> syms x y
>> [xx,yy] = meshgrid(x,y)
>> zz = 32*xx.^3*yy.^1 + 3*yy.^4 - 16*xx.^4 - 8*xx.^2*yy.^2 - 8*xx.*yy.^3
>> mesh(xx,yy,zz)
Error using mesh (line 71)
Z must be a matrix, not a scalar or vector.
2. 需要一条y=x的45度辅助线,这部分该使用什麽指令呢?
3. 因为最後我只是需要判断,z函数的值在怎样的x、y之下会为正、负或0,
所以是否有办法做到将z值投影到x、y的平面上,并且以线段区分?
(换句话说,就是在z=0的x、y平面上,以线段区分出各区块的正负)
我有发现一个等高线的指令(contour?),有成功用出但也不是想要的成果,
能否用指令设定等高线值=0之类的呢?
大概类似这张图的感觉(纯示意图):
https://i.imgur.com/KMkkQMR.png
以上的问题麻烦各位解答了,先谢过各位前辈 qq
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.227.154.12
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1545079836.A.B6C.html
1F:推 sunev: 可以画成功为什麽要改呢? 12/18 07:22
应该是说,我的确有画出来z函数的图,
但诚如问题一提及的,我画出的是「在x、y值域有限制情形下」的图。
而在原始设定中,x、y只要为正数即可,
但我拿掉linspace之後,图却又跑不出来了qq (就会变成问题一黄字那段)
还是说,用matlab画图在设定上一定要有值域的限制呢?
2F:推 sunev: 你要用有限大的萤幕画没有长度限制的东西吗? 12/18 11:14
3F:→ sunev: 所谓的画图就只是代数字而已喔 12/18 11:15
4F:推 profyang: 你要画到无限大?怎麽可能?你电脑萤幕宽度无限宽吗? 12/18 19:46
6F:→ profyang: 直线 这条线以右好像都是你要的 12/18 20:48
7F:→ profyang: 讲错了 这条线以左 x=y线以右 这样夹的三角区域 应该是 12/18 20:49
8F:→ profyang: 你要的 12/18 20:49
感谢s大及p大的观念指正!
也谢谢p大的教学~
※ 编辑: a0981314780 (36.227.50.224), 12/27/2018 17:41:49