科学计算与数学建模实验报告 牛顿法求解非线性(2)
发布时间:2021-06-08
发布时间:2021-06-08
f2=subs(sym(f),findsym(sym(f)),b);
if(f1==0)
root=b;
end
if(f2==0)
root=b;
end
if(f1*f2>0)
disp(‘两端点函数值乘积大于0!’);
return;
else
tol=1;
fun=diff(sym(f));
fa=subs(sym(f),findsym(sym(f)),a);
fb=subs(sym(f),findsym(sym(f)),b);
dfa=subs(sym(fun),findsym(sym(fun)),a);
dfb=subs(sym(fun),findsym(sym(fun)),b);
if(dfa>dfb)
root=a-fa/dfa;
else
root=b-fb/dfb;
end
while(tol>eps)
r1=root;
fx=subs(sym(f),findsym(sym(f)),r1);
dfx=subs(sym(fun),findsym(sym(fun)),r1);
root=r1-fx/dfx;
tol=abs(root-r1);
end
end
(3)上机调试过程
>>r=NewtonRoot(‘sqrt(x)-x^3+2,0.5,2)
(4)实验结果
输出计算结果为:
r=
1.4759 由计算结果可知,x-x3 2 0的一个根为x=1.4759。
需要注意的是,初始值的选择不要使得其导数为0。
四、实验体会
下一篇:常见公文写作模板格式及实例