[問題] 以fzero求解非線性方程式只有一解

看板MATLAB作者 (嗨你好)時間10年前發表 (2015/06/03 07:29), 10年前編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
我想解一非線性方程式 利用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

06/04 00:09, , 1F
適當改變起始值就可以得到另一點了吧
06/04 00:09, 1F

06/06 20:39, , 2F
你要先了解他的演算法
06/06 20:39, 2F
文章代碼(AID): #1LRgpcnD (MATLAB)