作者tom20417 (嗨你好)
看板MATLAB
标题[问题] 以fzero求解非线性方程式只有一解
时间Wed Jun 3 15:29:39 2015
我想解一非线性方程式
利用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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1433316582.A.C4D.html
※ 编辑: tom20417 (140.124.249.117), 06/03/2015 15:42:45
1F:→ sherees: 适当改变起始值就可以得到另一点了吧 06/04 00:09
2F:推 JamesChen: 你要先了解他的演算法 06/06 20:39