matlab的函数和运行后的样子,但是还是和书上的不一样,X = 10.0000 1.0000 应该在后面,怎么回事?

%用按比例主元消去法解线性方程组Ax=b%RA,RB分别表示系数矩阵A和增广矩阵B的秩%N表示向量b的维数,X是解向量function[RA,RB,N,X]=Ratio(... %用按比例主元消去法解线性方程组Ax=b
%RA,RB分别表示系数矩阵A和增广矩阵B的秩
%N表示向量b的维数,X是解向量
function[RA,RB,N,X]=Ratio(A,b)
B=[A b];
N=length(b);
RA=rank(A);
RB=rank(B);
RDiff=RB-RA;
if RDiff>0
disp('因为RA~=RB,所以此方程组无解.')
return
end
if RA==RB
if RA==N
disp('因为RA=RB=n,所以此方程组有唯一解.')
X=zeros(N,1);
C=zeros(1,N+1);
T=0;
D=B';
s=max(abs(D(1:N,:)));
S=s';
for i=1:N-1
[Y k]=max((abs(B(i:N,i)))./S(i:N));
K=min(k);
C=B(i,:);
B(i,:)=B(K+i-1,:);
B(K+i-1,:)=C;
T=S(i);
S(i)=S(K+i-1);
S(K+i-1)=T;
for j=i+1:N
m=B(j,i)/B(i,i);
B(j,i:N+1)=B(k,i:N+1)-m*B(i,i:N+1);
end
end
b=B(1:N,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('请注意:因为RA=RB<n,所以此方程组有无穷多解.')
end
X=X'
end

老师说是和书上的缩进不同,但是我又找不出来。。。
展开
 我来答
我行我素850915
2015-03-23 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1757万
展开全部
function[RA,RB,N,X]=Ratio(A,b)
%用按比例主元消去法解线性方程组Ax=b
%RA,RB分别表示系数矩阵A和增广矩阵B的秩
%N表示向量b的长度,X是解向量
%{
试验用
A=[1 3 5;3 6 9;5 9 3];b=[6 19 35]';
[RA,RB,N,X]=Ratio(A,b)
A=[1 2 3;4 5 6;7 8 9];b=[6 19 35]';
[RA,RB,N,X]=Ratio(A,b)
%}
B=[A b];
N=length(b);
RA=rank(A);
RB=rank(B);
RDiff=RB-RA;
if RDiff>0
disp('因为RA~=RB,所以此方程组无解.')
return
elseif RA==RB
if RA==N
disp('因为RA=RB=n,所以此方程组有唯一解.')
X=zeros(N,1);
%C=zeros(1,N+1);
%T=0;
D=B';
s=max(abs(D(1:N,:)));
S=s';
for i=1:N-1
[~, k]=max((abs(B(i:N,i)))./S(i:N));
K=min(k);
C=B(i,:);
B(i,:)=B(K+i-1,:);
B(K+i-1,:)=C;
T=S(i);
S(i)=S(K+i-1);
S(K+i-1)=T;
for j=i+1:N
m=B(j,i)/B(i,i);
B(j,i:N+1)=B(k,i:N+1)-m*B(i,i:N+1);
end
end
b=B(1:N,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('请注意:因为RA=RB<n,所以此方程组有无穷多解.')
end
X=X';
end
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式