跪求高手帮我解数值计算题(用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

显然牛顿法的迭代次数最少。

我这有现成