问题:
1.计算结果中“abs=4”如何删除;
2.计算结果不正确,代码中哪一处出了问题(A=[1,0,2,0;0,1,0,1;1,2,4,3;0,2,0,3];b=[5,3,17,7]';X=[1 1 2 2]).
function [RA,RB,N,X] =Gauss(A,b)
%UNTITLED 此处显示有关此函数的摘要
% 此处显示详细说明
B=[A,b];
N=length(b);
RA=rank(A);
RB=rank(B);
Diff=RA-RB;
if Diff~=0;
disp('无解.');
return
else
if RA==N
X=zeros(N,1);
C=zeros(1,N+1);
for i=1:(N-1)
[Y K]=max(abs(B(i:N,i)));
C=B(i,:);
B(i,:)=B(i+K-1,:);
B(i+K-1,:)=C;
for j=(i+1):N
B(j,i:N+1)=B(j,i:N+1)-B(i,i:N+1)*B(j,i)/B(i,i);
end
end
b=B(:,N+1);
A=B(1:N,1:N);
X(N)=b(N)/A(N,N);
for i=(N-1):(-1):1
X(i)=(b(i)-sum(A(i,i+1:N)*X(i+1:N)))/A(i,i);
end
else
disp('无穷多解.')
end
end
X=X';
RA
RB
N
X