MATLAB学习:不动点迭代法
取初值x0=0,用迭代公式x(k+1)=(2-e^(x(k))) /10 (k=0,1,2,...)求方程e^(x)+10x-2=0的近似根,要求误差不超过0.5*10^(-3)。实验结果:x5=0.09052。
·
取初值x0=0,用迭代公式x(k+1)=(2-e^(x(k))) /10 (k=0,1,2,...)求方程e^(x)+10x-2=0的近似根,要求误差不超过0.5*10^(-3)。
实验结果:x5=0.09052
代码示例:
function x = agui_fixed(fname,x0,e)
% 不动点迭代法
N=100;
syms x;
df=diff(fname(x));
pretty(df)
L=abs(double(subs(df,x0)));
x=x0;
x0=feval(fname,x0);
k=0;
while abs(x0-x)>L/(1-L)*e && k<N
if L >= 1
warning('函数不收敛,不可迭代')
break;
end
k=k+1
x0=x;
x=feval(fname,x0);
disp(x)
end
if k == N
warning('已达最大迭代次数');
end
运算结果:

更多推荐



所有评论(0)