Re: [問題]Matlab找分段函數跟圓的交點與syms指令

看板MATLAB作者 (white)時間12年前 (2013/05/11 15:59), 編輯推噓0(0010)
留言10則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《leoking0106 (white)》之銘言: : ※ 引述《leoking0106 (white)》之銘言: : : 1. : : 我的分段函數是 : : y=0 ,-7<x<0 : : y=2/3*x ,0<x<9 : : y=6 ,9<x<12 : : 圓方程式是 : : (x-2.5).^2+(y-9.15).^2=9.5^2 : : 要如何用matlab找出兩函數的交點(0,0) (11.46,6) ?? : : 2. : : 例如這樣 : : syms x; : : y=-(9.5^2-(x-2.5).^2).^0.5+9.15; : : 我想要問這樣寫的話有沒有甚麼指令可以讓我直接得到y函數的值 : : 例如y(0)=0; y(11.46)=6 之類的 : : 還有如果我要畫x vs.y的曲線圖(像plot那樣的圖) : : 要用甚麼指令呢?? : : (或者有其他比較好的寫法但也能達到我想要的) : : 拜託網路上的matlab高手教我怎麼寫 : : 最好能提供code讓我比較好了解 : : 感激不盡~ : 感謝j大解惑 : 但我想請問Q2中為什麼你的@(X)我改成syms x就不能run了呢? : 還有Q1能不能教我怎麼寫分段函數跟圓方程式 : 我才剛接觸MATLAB沒多久很多東西都還不是很瞭 OK Q2已經弄懂了 但關於Q1分段函數的部分 我是這樣寫的 y1=@(x) 0; y2=@(x) 2/3*x; y3=@(x) 6; yy=@(x) (y1*(heaviside(x+7)-heaviside(x))+y2*(heaviside(x)-heaviside(x-9))+... y3*(heaviside(x-9)-heaviside(x-12))) x=[0:1.5:11.46 11.46] yy(x) 我想要抓出yy中對應x的函數值 他run出來的error是 ??? Undefined function or method 'mtimes' for input arguments of type 'function_handle'. Error in ==> @(x)(y1*(heaviside(x+7)-heaviside(x))+y2*(heaviside(x)-heaviside(x-9))+y3*(heaviside(x-9)-heaviside(x-12))) Error in ==> test7 at 11 yy(x) 可以幫我看看哪邊寫錯嗎? 還有如果我的函數都是用@(x)定的 還能用solve找交點嗎(因為我看 help那邊solve的函數都是用syms定的) 感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.67.131.230

05/11 16:11, , 1F
Undefined function 'mtimes' for input arguments of type '
05/11 16:11, 1F

05/11 16:12, , 2F
'function_handle'. 代表對這程式而言乘法沒有定義
05/11 16:12, 2F

05/11 16:16, , 3F
原因出自用Anonymous Functions yy沒辦法繼續看y1裡面是什麼
05/11 16:16, 3F

05/11 16:17, , 4F
另外也要注意要把*改成.* 你想要用元素乘法對吧
05/11 16:17, 4F

05/11 16:17, , 5F
所以解決辦法是, 把yy定義中y1, y2, y3改成原來定義的函式
05/11 16:17, 5F

05/11 16:18, , 6F
yy=@(x) (0.*(heaviside(x+7)-heaviside(x))+2/3*x.*(heavisi
05/11 16:18, 6F

05/11 16:18, , 7F
heaviside(x)-heaviside(x-9))+6.*(heaviside(x-9)-heaviside
05/11 16:18, 7F

05/11 16:19, , 8F
(x-12))); 用syms寫法也可以 但較複雜 請help solve, subs
05/11 16:19, 8F

05/11 16:21, , 9F
solve找焦點 建議是直接找圓跟三段線分別的焦點
05/11 16:21, 9F

05/11 16:21, , 10F
之後檢查解答是否落在合理的區域 會比用heaviside簡單許多
05/11 16:21, 10F
文章代碼(AID): #1HZVfHuG (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1HZVfHuG (MATLAB)