
A=input('输入增广矩阵');
n=size(A,1);
%下面是消元过程,先选出主元然后再进行消元
for k=1:n-1
[ma,p]=max(abs(A(k:n,k))); %p记录A(k:n,k)的最大值对应的行号
if abs(ma)<10^-8 %系数矩阵奇异,不能求解,结束程序
disp('求解失败! ')
return
end
%下面交换主元所在的行和A的第k行,注意主元在A(k:n,k)中的行号和在A中的行号不一致,需转化
B=A(k,:);A(k,:)=A(k+p-1,:);A(k+p-1,:)=B;
%下面进行消元
A(k+1:n,k)=A(k+1:n,k)/A(k,k);
A(k+1:n,k+1:n+1)=A(k+1:n,k+1:n+1)-A(k+1:n,k)*A(k,k+1:n+1);
end
%下面是回带求方程组的解的过程
x(n)=A(n,n+1)/A(n,n); %先单独算出x(n)
for i=n-1:-1:1
S=0;
for j=i+1:n
S=S+A(i,j)*x(j);
%S用来存放x(i+1)至x(n)与对应的系数的乘积的和
end
x(i)=(A(i,n+1)-S)/A(i,i);
end
A,x
上面是完整的高斯列住院程序