colgauss.m

来自「简要的Gauss列主元消去法」· M 代码 · 共 42 行

M
42
字号
%Gauss列主元消元法
function x=colgauss(n,A,b)
x(n)=0;
a=A;
mt=0;
%消元过程
for k=1:(n-1)
    mt=abs(a(k,k));m=k;
    for i=(k+1):n
        if abs(a(i,k))>mt
            m=i;mt=abs(a(i,k));
        end
    end
    if a(m,k)==0
        fprintf('main element equal to zero!Error!');
        return;
    else
        if m~=k
            t=a(k,:);tb=b(k);
            a(k,:)=a(m,:);b(k)=b(m);
            a(m,:)=t;b(m)=tb;
        end
        for i=(k+1):n
            l=a(i,k)/a(k,k);
            a(i,:)=a(i,:)-l*a(k,:);
            b(i)=b(i)-l*b(k);
        end
    end
end
%回代过程
if a(n,n)==0
    fprintf('matrix is odd!');
    return;
end
x(n)=b(n)/a(n,n);
for k=2:n
    l=0;
    for j=(n+2-k):n
        l=l+a(n+1-k,j)*x(j);
    end
    x(n+1-k)=(b(n+1-k)-l)/a(n+1-k,n+1-k);
end

⌨️ 快捷键说明

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