跪求高手帮我解数值计算题(用MATLAB或其它程序)
来源:百度知道 编辑:UC知道 时间:2024/06/18 07:16:25
用二分法、一般迭代法和牛顿法求方程x=e的(-x)次方根x=0.5附近的一个根p,要求精度为10的(-5)次方根。考虑加分,请速帮我解答。
牛顿法就是牛顿迭代法~~
牛顿法就是牛顿迭代法~~
clc;clear
format long
%二分法
a=0;b=1;fc=10;it1=0;
while abs(fc)>10e-5
fa=subs('x-exp(-x)','x',a);
fb=subs('x-exp(-x)','x',b);
c=(a+b)/2;
fc=subs('x-exp(-x)','x',c);
if fa*fc>0
a=c;
fa=fc;
else
b=c;
fb=fc;
end
x=c;
it1=it1+1;
end
it1,x
%一般迭代
x=0;m=1;it2=0;
while m>10e-5
temp=x;
x=exp(-x);
m=abs(temp-x);
it2=it2+1;
end
it2, x
%牛顿
x=0;it3=0;n=1;
while n>10e-5
temp=x;
x=x-(x-exp(-x))/(1+exp(-x));
n=abs(temp-x);
it3=it3+1;
end
it3,x
%精确解
xx=eval(solve('x-exp(-x)'))
结果:
it1 = 12
x = 0.567138671875000
it2 = 18
x = 0.567119040057215
it3 = 4
x = 0.567143290409781
xx = 0.567143290409784
显然牛顿法的迭代次数最少。
我这有现成