% 解上三角形线性方程组 AX=B 的matlab程序
% 输入的量:系数矩阵 A 和常系数向量 b ;
% 运行后的结果:系数矩阵 A 和增广矩阵 B 的秩 RA,RB ,方程组中未知量的个数 n
% 和方程组解 X 及其解的信息.
function [RA,RB,n,X]=shangsan(A,b)
B=[A b];n=length(b); RA=rank(A);RB=rank(B); zhica=RB-RA;
if zhica>0
disp('请注意:因为 RA~=RB,所以此方程组无解.')
return,warning off MATLAB;return_outside_of_loop
end
if RA==RB
if RA==n
disp('请注意:因为 RA=RB=n,所以此方程组有唯一解.')
X=zeros(n,1);X(n)=b(n)/A(n,n);
for k=n-1:-1:1
X(k)=(b(k)-sum(A(k,k+1:n)*X(k+1:n)))/A(k,k);
end
else
disp('请注意:因为 RA=RB<n ,所以此方程组有无穷多解.')
end
end |