%用不动点迭代法求方程x-e^x+4=0的正根与负根,误差限是10^-6%
disp('不动点迭代法');
n0=100;
p0=-5;
for i=1:n0
p=exp(p0)-4;
if abs(p-p0)<=10^(-6)
if p<0
disp('|p-p0|=')
disp(abs(p-p0))
disp('不动点迭代法求得方程的负根为:')
disp(p);
break;
else
disp('不动点迭代法无法求出方程的负根。')
end
else
p0=p;
end
end
if i==n0
disp(n0)
disp('次不动点迭代后无法求出方程的负根')
end
p1=1.7;
for i=1:n0
pp=exp(p1)-4;
if abs(pp-p1)<=10^(-6)
if pp>0
disp('|p-p1|=')
disp(abs(pp-p1))
disp('用不动点迭代法求得方程的正根为')
disp(pp);
else
disp('用不动点迭代法无法求出方程的正根');
end
break;
else
p1=pp;
end
end
if i==n0
disp(n0)
disp('次不动点迭代后无法求出方程的正根')
end
disp('不动点迭代法');
n0=100;
p0=-5;
for i=1:n0
p=exp(p0)-4;
if abs(p-p0)<=10^(-6)
if p<0
disp('|p-p0|=')
disp(abs(p-p0))
disp('不动点迭代法求得方程的负根为:')
disp(p);
break;
else
disp('不动点迭代法无法求出方程的负根。')
end
else
p0=p;
end
end
if i==n0
disp(n0)
disp('次不动点迭代后无法求出方程的负根')
end
p1=1.7;
for i=1:n0
pp=exp(p1)-4;
if abs(pp-p1)<=10^(-6)
if pp>0
disp('|p-p1|=')
disp(abs(pp-p1))
disp('用不动点迭代法求得方程的正根为')
disp(pp);
else
disp('用不动点迭代法无法求出方程的正根');
end
break;
else
p1=pp;
end
end
if i==n0
disp(n0)
disp('次不动点迭代后无法求出方程的正根')
end