gaussjacobi.m

来自「matlab 多个计算方程租的算法汇集 主要讲的是一般方法 还有正定矩阵的解法」· M 代码 · 共 45 行

M
45
字号
function x=GaussJacobi(a,b)
% Gauss-Jacobi消去法
[n,m]=size(a);
nb=length(b);
x=zeros(n,1);
for k=1:n
    amax=0;% 选主元
    for i=k:n
        if abs(a(i,k))>amax
            amax=abs(a(i,k));r=i;
        end
    end
    if amax<1e-10
       return;
    end
    
    
    if r>k  %交换两行
        for j=k:n
            z=a(k,j);a(k,j)=a(r,j);a(r,j)=z;
        end
        z=b(k);b(k)=b(r);b(r)=z;
    end
     %进行消元
     b(k)=b(k)/a(k,k);
        for j=k+1:n
            a(k,j)=a(k,j)/a(k,k);
        end
        for i=1:n
            if i~=k
                for j=k+1:n
                    a(i,j)=a(i,j)-a(i,k)*a(k,j);
                end
                b(i)=b(i)-a(i,k)*b(k);
            end
        end
    end
    
    for i=1:n
        x(i)=b(i);
    end



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?