高斯消元法的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



 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值