Matlab错误求解A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -41];b=[1;0
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 14:13:43
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阶的矩阵算可以
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阶的矩阵算可以
再试一下:
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
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
matlab求解矩阵设三阶矩阵A,B,满足A(-1)BA=6A+BA,其中A=[1/3 0 0;0 1/4 0;0 0
如何用matlab软件求解矩阵方程组 已知U=[u1 u2;u3 u4],a=[1 2;3 4],b=[2 3;7 6]
matlab 求解1元2次方程
用matlab求解一个方程:arcsin(1/a)+1/a*sqrt(1-(1/a)^2)=pi/4
y'+y-y^(2/3)=0; x=0:0.1:1 怎么用matlab求解?
matlab循环求解b(0)=1;a(i)=b(i-1)+0.075;b(i)=∑a(i);y(i)=[∑(0.002-
matlab a = [1 2 3; 4 5 6; 7 8 9]; b=a>5
matlab隐函数求解:3*a^2*(1-D)^2-[0.5-(1/pi)*arcsin(a)-a*sqrt(1-a^2
Matlab求解方程 y=f(x);f(0)=0; y''=(1+y'^2)^(3/2); 求解区间[0,1] 解得好的
matlab不能矩阵相乘是什么原因,计算时,出现下面的错误: clear; >> a=[1,2,3;4,5,6;7,8,
Matlab运行结果A=[1,2:3,4];B=[-1,-2;2,1];S=3;A.*B A*B S.*A S*B
matlab求解:40*x+1-exp(x/2)=0.我用solve函数求解,只得出0解,哪位大神可以帮忙解决一下?谢谢