注册 登录
编程论坛 Matlab

怎样修改下面的MATLAB程序实现每一步迭代结果都显示并且迭代次数也显示

冰越 发布于 2016-03-26 16:24, 4882 次点击
逐次松弛迭代法
跪求大神们
怎样修改下面的MATLAB程序实现每一步迭代结果都显示并且迭代次数也显示
function [ x , k ,index] = SOR( A ,b ,ep ,w,it_max);
A=[8 -3 2;4 11 -1;2 1 4];
b=[20 33 12]';
ep=1e-5
if nargin<5
    it_max=100;
end
if nargin<4
    w=1.25;
end
if nargin<3
    ep=1e-10;
end
n=length(A);
k=0;
x=zeros(n,1);
y=zeros(n,1);
index=1;
while 1
    y=x;
    for i=1:n
        z=b(i);
        for j=1:n
            if j~=i
                z=z-A(i,j)*x(j);
            end
        end
        if abs(A(i,i))<1e-10|k==it_max
            index=0;
            return;
        end
        z=z/A(i,i);
        x(i)=(1-w)*x(i)+w*z;
    end
    if norm(y-x,inf)<ep
        break;
    end
    k=k+1;
end
0 回复
1