[问题] 以fzero求解非线性方程式只有一解

楼主: tom20417 (嗨你好)   2015-06-03 15:29:39
我想解一非线性方程式
利用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
都只有一解!?
作者: sherees (ShaunTheSheep)   2015-06-04 00:09:00
适当改变起始值就可以得到另一点了吧
作者: JamesChen (James)   2015-06-06 20:39:00
你要先了解他的算法

Links booklink

Contact Us: admin [ a t ] ucptt.com