【学习笔记】求解线性方程组的G-S迭代法

求解线性方程组的G-S迭代法

// 运行不成功啊

function [x,k,index]= Gau_Seid(A,b,ep,it_max)
% 求解线性方程组的G-S迭代法,其中
% A为方程组的系数矩阵
% b为方程组的右端项
% ep为精度要求,省缺为1e-5
% it_max为最大迭代次数,省缺为100
% x为方程组的解
% k为迭代次数
if nargin <4 it_max = 100; end
if nargin <3 ep = 1e-5; 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,j))<1e-10 | k==it_max
            index = 0;
            return;
        end
        z = z/A(i,j);
        x(i) = z;
    end
    if norm(y-x,inf)<ep
        break;
    end
    k = k+1;
end

matlab中调用上述函数结果显示:
【学习笔记】求解线性方程组的G-S迭代法_第1张图片
哪里出问题了啊?

你可能感兴趣的:(笔记,matlab,线性代数)