function x=GaussJordan(A,b)
% 用Gauss-Jordan消去法求线性方程组的解
% A为系数矩阵(要求解惟一,则必须为满秩方阵 n*n),b为右值 n*1
% x为所求的根
%作者:野渡无人
% 最后修改日期:2008.3.27
% 例如教材45页例3.1:
% A=[1 4 -5;1 3 -2;6 -1 18], b=[3 2 2]'
% x=GaussJordan(A,b)
% 结果为:
% 1 4 -5 3
% 1 3 -2 2
% 6 -1 18 2
%
% 1 4 -5 3
% 0 -1 3 -1
% 0 0 -27 9
% x =
%
% 1.3333
% 0
% -0.3333
[m,n]=size(A);
if m~=n
error('请输入方阵!');
end
rankA=rank(A);
if rankA~=m
error('输入的矩阵不是满秩矩阵,请重新输入!');
end
AA=[A,b] % AA为增广矩阵,以下的求根操作是在增广矩阵上进行
n=n+1;
% 注意以下的 n=m+1 其中m为矩阵的秩
for i=1:m
first=AA(i,i);
if first=