%函数 fx=x.^3-3.*x+1;
%收敛性判断
xl=0;
xr=1;
%不动点所在区间
x=xl:0.001:xr;
y=(x.^3+1)./3;%需要修改判断的方程
if max(y)>xr||min(y)<xl
disp('迭代方程不收敛,定理1不符合');
return
end
for x0=xl:0.001:xr
for y0=xl:0.001:xr
for L=0.001:0.001:0.999
if abs((x0.^3+1)./3-(y0.^3+1)./3)<=L*abs(x0-y0)
%需要修改判断的方程
disp('迭代方程收敛');
break
else
disp('迭代方程不收敛,定理2不符合')
return
end
end
break
end
break
end
%设置不动点方程 x=(x.^3+1)./3
%设置初始值x,最大迭代次数N,终止迭代条件p
k=0;
while k<N
k=k+1;
x0=(x.^3+1)./3;%迭代方程式
if abs(x0-x)<=p
break
end
x=x0;
end
if k>N
disp(['迭代次数= ',num2str(k),',算法超过最大迭代次数。']);
else
disp(['迭代次数= ',num2str(k)]);
end
不动点迭代方程收敛判据及MATLAB实现
最新推荐文章于 2024-02-06 21:25:59 发布