看板 MATLAB 關於我們 聯絡資訊
我想解一非線性方程式 利用fzero來解 以實際畫圖來看,應該會有兩個解 http://i.imgur.com/Czr83Ow.jpg 但經以下兩種方法運算出來卻只有一解 請問各位大大,是小弟我哪邊沒注意到還是做錯呢!? 1. 利用fzero function y=fname(f) L=12; X=0.86*1.72; CS=18.8715; y=((540.*(1+0.7./L).^-0.2)./1+12./X.*(1+f./3)).*f.*exp(-(0.3.*(1+100./L).^0.15).*f).*sqrt(1+0.06.*exp((0.3.*(1+100./L).^0.15).*f))-CS; x0=2; sol = fzero('fname',x0) 結果 sol = 0.0343 2. 利用solve sol = solve(((540.*(1+0.7./L).^-0.2)./1+12./X.*(1+f./3)).*f.*exp(-(0.3.*(1+100./L).^0.15).*f).*sqrt(1+0.06.*exp((0.3.*(1+100./L).^0.15).*f))-CS) 結果 sol = 0.034223012728613170972559442722555 都只有一解!? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.124.249.117 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1433316582.A.C4D.html ※ 編輯: tom20417 (140.124.249.117), 06/03/2015 15:42:45
sherees: 適當改變起始值就可以得到另一點了吧 06/04 00:09
JamesChen: 你要先了解他的演算法 06/06 20:39