matlab求实根,用弦截法任意实数方程求实根 用matlab 语言编程
由于y=0是一個沒有意義的點,故從0.01開始。
輸入:
y=secant('0.15/y-y*sin(0.15^y)-1',0.01,5)
結果:
y =
0.1369
其中secant.m內容為:
function root=Secant(f,a,b,eps)
if(nargin==3)
eps=1.0e-6;
end
f1=subs(sym(f),findsym(sym(f)),a);
f2=subs(sym(f),findsym(sym(f)),b);
if(f1==0)
root=a;
end
if(f2==0)
root=b;
end
if(f1*f2>0)
disp('兩端點函數值乘積大于0!');
return;
else
tol=1;
fa=subs(sym(f),findsym(sym(f)),a);
fb=subs(sym(f),findsym(sym(f)),b);
root=a-(b-a)*fa/(fb-fa);
while(tol>eps)
r1=root;
fx=subs(sym(f),findsym(sym(f)),r1);
s=fx*fa;
if(s==0)
root=r1;
else
if(s>0)
root=b-(r1-b)*fb/(fx-fb);
else
root=a-(r1-a)*fa/(fx-fa);
end
end
tol=abs(root-r1);
end
end
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的matlab求实根,用弦截法任意实数方程求实根 用matlab 语言编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分酒问题matlab代码,matlab葡
- 下一篇: java异步调用数据库存储过程详解,ja