作者leoking0106 (white)
看板MATLAB
標題Re: [問題]Matlab找分段函數跟圓的交點與syms指令
時間Sun May 12 13:11:52 2013
※ 引述《leoking0106 (white)》之銘言:
: 找交點的部分我寫的code是這樣
: beta= 35;
: H=6;
: r=9.5;x0=2.5;y0=9.15;
: m=tan(beta*pi/180);
: xh=H/m;
: syms xx;
: y1=0;
: y2=m.*xx;
: y3=H;
: yup=(y1.*(heaviside(xx-(x0-r))-heaviside(xx))+...
: y2.*(heaviside(xx)-heaviside(xx-xh))+...
: y3.*(heaviside(xx-xh)-heaviside(xx-(x0+r))));
: ydown=-(r.^2-(xx-x0).^2).^0.5+y0;
: cc=solve(ydown-yup);
: plot(linspace(-1,12),subs(ydown,linspace(-1,12)),...
: linspace(-1,12),subs(yup,linspace(-1,12)))
: 我用plot確定我兩個函數是有交點的 但結果卻說沒有交點
: 能不能幫我看看是哪部分寫錯了呢?
: 還有我yup函數的最後一點yup(12)應該是6
: 但為什麼我用subs(yup,12)出來的值卻是3??
: 最後我想問用subs(y,x)可以找函數值
: 那有沒有甚麼指令是可以找反函數的呢?
: 拜託各位高手幫我看一下 debug好久好痛苦QQ
不好意思j大又來問你
你用我的code跑出來交點有值嗎?
我跑出來結果是
Warning: Explicit solution could not be found.
他還說錯誤出在solve那一行
我這樣寫的邏輯是對的嗎?
還是哪邊語法出錯誤呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.136.205.184
1F:→ jatj:我跑出來是有的 cc=32131^(1/2)/20 + 5/2,5/2-2611^(1/2)/20 05/12 15:01
2F:→ jatj:我的版本是R2013a 05/12 15:01
3F:→ leoking0106:我的版本是2010a 有沒有甚麼其他寫法可以找出焦點呢? 05/12 15:17
5F:→ leoking0106:2010a沒有vpasolve功能耶如果用fzero或fsolves能做嗎? 05/12 16:18
6F:→ jatj:yes, 但可能就要你自己找囉 05/12 16:30
7F:→ leoking0106:好怪 我發現m那邊不要用tan表示直接打一個斜率進去就 05/12 20:31
8F:→ leoking0106:可以run fsolve要先指定x0我好像也不適用QQ 05/12 20:32
9F:→ leoking0106:不過還是感謝你耐心幫我解答 05/12 20:33