高斯列主元消去法(matlab两种实现方法)

05-09 1977阅读

function x=LGauss(A,b)
%高斯列主元消去法
%A:系数矩阵
%b:非齐次项
[n,m]=size(A);
x=zeros(n,1);
for k=1:n-1%选定列主元
    max=0;
    for i=k:n
        if abs(A(i,k))>max
            max=abs(A(i,k));
            r=i;
        end
    end
    if maxk%交换两行位置
        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
%消元
for i=k+1:n
    m1=A(i,k)/A(k,k);
    for j=k+1:n
        A(i,j)=A(i,j)-m1*A(k,j);
    end
    b(i)=b(i)-m1*b(k);
end
end
for k=n:-1:1
    for j=k+1:n
        b(k)=b(k)-A(k,j)*x(j);
    end
    x(k)=b(k)/A(k,k);
end
end
function [X,det]=LGauss_new(A,b)
%input
%A:nxn非奇异系数矩阵,b是列向量
%output:
%X:AX=b的解
%det:A的行列式
[n,n]=size(A);
det=1;
for k=1:n-1
    %寻找列主元
    [T,i]=max(abs(A(k:n,k)));ik=i+k-1;
    %判断矩阵的奇异性
    if T

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]