Matlab错误求解A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -41];b=[1;0; -1;-1];B=[A b];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica~=0disp('该问题无解')returnendif RA==RBifRA==ndisp('只有一个解')X=zeros(n,1);forp= 1:n-1q=find(B(p:n,
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/16 14:48:07
![Matlab错误求解A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -41];b=[1;0; -1;-1];B=[A b];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica~=0disp('该问题无解')returnendif RA==RBifRA==ndisp('只有一个解')X=zeros(n,1);forp= 1:n-1q=find(B(p:n,](/uploads/image/z/6106484-20-4.jpg?t=Matlab%E9%94%99%E8%AF%AF%E6%B1%82%E8%A7%A3A%3D%5B1+-1+1+-3%3B+0+-1+-1+1%3B2+-2+-4+6%3B1+-2+-41%5D%3Bb%3D%5B1%3B0%3B+-1%3B-1%5D%3BB%3D%5BA+b%5D%3Bn%3Dlength%28b%29%3BRA%3Drank%28A%29%3BRB%3Drank%28B%29%3Bzhica%3DRB-RA%3Bif+zhica%7E%3D0disp%28%27%E8%AF%A5%E9%97%AE%E9%A2%98%E6%97%A0%E8%A7%A3%27%29returnendif+RA%3D%3DRBifRA%3D%3Dndisp%28%27%E5%8F%AA%E6%9C%89%E4%B8%80%E4%B8%AA%E8%A7%A3%27%29X%3Dzeros%28n%2C1%29%3Bforp%3D+1%3An-1q%3Dfind%28B%28p%3An%2C)
Matlab错误求解A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -41];b=[1;0; -1;-1];B=[A b];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica~=0disp('该问题无解')returnendif RA==RBifRA==ndisp('只有一个解')X=zeros(n,1);forp= 1:n-1q=find(B(p:n,
Matlab错误求解
A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -41];
b=[1;0; -1;-1];
B=[A b];
n=length(b);
RA=rank(A);
RB=rank(B);
zhica=RB-RA;
if zhica~=0
disp('该问题无解')
return
end
if RA==RB
ifRA==n
disp('只有一个解')
X=zeros(n,1);
forp= 1:n-1
q=find(B(p:n,p)==max(abs((B(p:n,p)))))+p-1;% In B q's address is q+p-1
t=B(p,p:end);
B(p,p:end)=B(q(1),p:end);
B(q(1),p:end)=t;
for k=p+1:n
m= B(k,p)/ B(p,p);
B(k,p:end)= B(k,p:end)-m* B(p,p:end);
end
end
b=B(:,n+1);
A=B(:,1:n);
X(n)=b(n)/A(n,n);
for q=n-1:-1:1
X(q)=(b(q)-sum(A(q,q+1:end)*X(q+1:end)))/A(q,q);
end
X
else
disp('问题的解无穷大 ')
end
end
为什么无法运行.之前我用一个3阶的矩阵算可以
Matlab错误求解A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -41];b=[1;0; -1;-1];B=[A b];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica~=0disp('该问题无解')returnendif RA==RBifRA==ndisp('只有一个解')X=zeros(n,1);forp= 1:n-1q=find(B(p:n,
再试一下:
clc,clear
A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1];
b=[1;0; -1;-1];
B=[A b];
n=length(b);
RA=rank(A);
RB=rank(B);
zhica=RB-RA;
if zhica~=0
disp('该问题无解')
return
end
if RA==RB
if RA==n
disp('只有一个解')
X=zeros(n,1);
for p=1:n-1
%%下面这句有个小问题
q=find(B(p:n,p)-max(abs(B(p:n,p))))+p-1;% In B q's address is q+p-1
t=B(p,p:end);
B(p,p:end)=B(q(1),p:end);
B(q(1),p:end)=t;
for k=p+1:n
m= B(k,p)/ B(p,p);
B(k,p:end)= B(k,p:end)-m* B(p,p:end);
end
end
b=B(:,n+1);
A=B(:,1:n);
X(n)=b(n)/A(n,n);
for q=n-1:-1:1
X(q)=(b(q)-sum(A(q,q+1:end)*X(q+1:end)))/A(q,q);
end
X
else
disp('问题的解无穷大 ')
end
end
输出结果:
只有一个解
X =
0
-0.5000
0.5000
0