[繪圖] 雙變數方程式繪圖相關問題

看板MATLAB作者 (小宇)時間5年前 (2018/12/18 04:50), 5年前編輯推噓5(504)
留言9則, 2人參與, 5年前最新討論串1/1
各位好。 小弟正在寫論文,目前遇到需要繪圖輔助的情況, 教授建議可以使用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://www.ptt.cc/bbs/MATLAB/M.1545079836.A.B6C.html

12/18 07:22, 5年前 , 1F
可以畫成功為什麼要改呢?
12/18 07:22, 1F
應該是說,我的確有畫出來z函數的圖, 但誠如問題一提及的,我畫出的是「在x、y值域有限制情形下」的圖。 而在原始設定中,x、y只要為正數即可, 但我拿掉linspace之後,圖卻又跑不出來了qq (就會變成問題一黃字那段) 還是說,用matlab畫圖在設定上一定要有值域的限制呢?

12/18 11:14, 5年前 , 2F
你要用有限大的螢幕畫沒有長度限制的東西嗎?
12/18 11:14, 2F

12/18 11:15, 5年前 , 3F
所謂的畫圖就只是代數字而已喔
12/18 11:15, 3F

12/18 19:46, 5年前 , 4F
你要畫到無限大?怎麼可能?你電腦螢幕寬度無限寬嗎?
12/18 19:46, 4F

12/18 20:48, 5年前 , 5F
幫你畫畫 貌似=0是條
12/18 20:48, 5F

12/18 20:48, 5年前 , 6F
直線 這條線以右好像都是你要的
12/18 20:48, 6F

12/18 20:49, 5年前 , 7F
講錯了 這條線以左 x=y線以右 這樣夾的三角區域 應該是
12/18 20:49, 7F

12/18 20:49, 5年前 , 8F
你要的
12/18 20:49, 8F

12/18 20:53, 5年前 , 9F
12/18 20:53, 9F
感謝s大及p大的觀念指正! 也謝謝p大的教學~ ※ 編輯: a0981314780 (36.227.50.224), 12/27/2018 17:41:49
文章代碼(AID): #1S60mSji (MATLAB)
文章代碼(AID): #1S60mSji (MATLAB)