高斯消元Gaussian Elimination with Backward Substitution

这段代码实现了一个高斯消元算法,用于求解给定的n×n系数矩阵A和n维列向量b表示的线性方程组。它通过一系列步骤找到解或检查是否存在唯一解。
摘要由CSDN通过智能技术生成

function x=GaussianElimination(A,b) %高斯消元
%inputs   A:系数矩阵n×n维方阵;b:n×1维矩阵       
%outputs  x的n个解或不存在唯一解
[n,m]=size(A);
if n~=m
    error('A must be square');    
end
if n~=size(b)
    error('The size of b must be equal to the number of rows of A'); 
end
Aug=[A,b];   
for i=1:n-1   %step1
    p=i;  
    while p<=n && Aug(p,i)==0    
        p=p+1;
    end
    if p>n   %若n行中不存在非零元,无唯一解
         error('no unique solution exist');
    end
    if p~=i
        Aug([i,p],:)=Aug([p,i],:); %step3 换行
    end
    for j=i+1:n  
        m(j,i)=Aug(j,i)/Aug(i,i);  
        Aug(j,i:n+1)=Aug(j,i:n+1)-m(j,i)* Aug(i,i:n+1);  
    end
end
if Aug(n,n)==0  
    error('no unique solution exist');
end
x=zeros(n,1);
x(n)=Aug(n,n+1)/Aug(n,n);  
for i=n-1:-1:1    
    s=Aug(i,i+1:n)*x(i+1:n);
    x(i)=(Aug(i,n+1)-s)/Aug(i,i);
end
disp(x);    
end

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值