clc;clear
err=1;
k=1;
y=0.5;
format long
while abs(err)>10e-8
y=exp(-y);
err=y-exp(-y);
k=k+1;
end
k
y
err
%(2)用加快收斂的叠代格式 x(n+1)=a*y[x(n)]+(1-a)*x(n) , a=0.625計算
a=0.625;
err1=1;kk=1;yy=0.5;
while abs(err1)>10e-8
%for kk=1:10
yy=exp(-yy);
yy1=a*yy+(1-a)*exp(-yy);%x(n+1)=a*y[x(n)]+(1-a)*x(n)
err1=yy1-yy;
kk=kk+1;
end
kk
yy
err1
運行結果:
k = 26
y = 0.56714333810549
err = 7.474599861279074e-008
kk = 24
yy = 0.56714343869357
err1 = -8.714322441427669e-008
精確解:
>> x=eval(solve('x=exp(-x)'))
x = 0.56714329040978