高斯消元法的MATLAB代码

 

高斯消元法的原理详见于线性代数课本,其MATLAB代码如下:

function[x]=gauss_elim(A,b)
% A为系数矩阵且必须为方阵
% b为常数项向量
n=size(A,1);
x=zeros(1,n);
j=0;
for i=1:n-1
    if(A(i,j)==0)
        t=min(find(A(i+1:n,1)~=0+i);
        if(isempty(t))
            disp('Gauss_elim error:A matrix is signular');
            return
        end;
        temp=A(i,:);tb=b(i);
        A(i,:)=A(t,:);b(i)=b(t);
        A(t,:)=temp;b(t)=tb;
    end;
    for j=i+1:n
        m=-A(j,i)/A(i,i);
        A(j,i)=0;
        A(j,i+1:n)=A(j,i+1:n)+m*A(i,i+1;n);
        b(j)=b(j)+m*b(i);
    end
end
x(n)=b(n)/A(n,n);
for i=n-1:-1:1
    x(i)=(b(i)-sum(x(i+1:n).*A(i,i+1:n)))/A(i,i);
end



 

你可能感兴趣的:(Matlab)