用MATLAB求解国产化系统
MATLAB中A*x=b的通解由下式给出:用MATLAB求解国产化系统,matlab,Matlab,MATLAB中A*x=b的通解由下式给出: x=A\b 比如说 A = [2 -1 1; 1 2 3; 3 0 -1] A = 2 -1 1 1 2 3 3 0 -1 b = [8; 9; 3] b = 8 9 3 x = A\b x = 2.0000 -1.0000 3.0000 系统A*x=0的解决方案如何?请帮助我 奇异矩阵的检验 A=[1 2
x=A\b
比如说
A = [2 -1 1; 1 2 3; 3 0 -1]
A =
2 -1 1
1 2 3
3 0 -1
b = [8; 9; 3]
b =
8
9
3
x = A\b
x =
2.0000
-1.0000
3.0000
系统A*x=0
的解决方案如何?请帮助我
奇异矩阵的检验
A=[1 2 3;2 1 4;3 3 7]
A =
1 2 3
2 1 4
3 3 7
>> det(A)
ans =
0
b=[0;0;0];
>> linsolve(A,b)
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.903239e-017.
ans =
0
0
0
@罗伯特p
这是正确的吗
A=[2 3 1;-1 3 1;1 6 2]
A =
2 3 1
-1 3 1
1 6 2
>> det(A);
>> det(A)
ans =
0
>> [U S V]=svd(A);
>> x=V(:,end);
>> A*x
ans =
1.0e-015 *
0.2220
0.2220
0.4441
假设“0”代表零向量,而不是标量。在您的情况下,可以:
>> A = [2 -1 1; 1 2 3; 3 0 -1]
A =
2 -1 1
1 2 3
3 0 -1
>> b = [0; 0; 0]
b =
0
0
0
>> x = A\b
x =
0
0
0
或者您可以使用linsolve
:
>> linsolve(A,b)
ans =
0
0
0
但是如果
det(A==0)
你应该使用对应于零特征值的特征向量,类似于:
>> A = [2 -1 1; 1 2 3; 3 0 -1]
A =
2 -1 1
1 2 3
3 0 -1
>> b = [0; 0; 0]
b =
0
0
0
>> [v m] = eig(A)
v =
1.0000 0.4472 0
0 0.8944 0
0 0 1.0000
m =
0 0 0
0 2 0
0 0 3
您将有无限多个解,与[1 0 0]
平行的每个向量都将是一个解 如果存在非平凡的解决方案,您可以使用获得满足Ax=0
的x
:
A = [2 -1 1; 2 -1 1; 3 2 1];
[U S V] = svd(A);
x = V(:,end)
x =
-0.39057
0.13019
0.91132
A*x =
0
0
0
如果A的行列式为零?是的,但如果行列式为零,那么它必须给出非零解,对吗?不,它有无穷多的解,请阅读我的上一次修订。我有一些网络问题。现在它完成了,希望我知道,我知道它有无限解,我想感谢muchi已经测试并得到了以下结果如果矩阵的行列式为零,那么解又是零向量为什么?在你的第二个
A
中,显然有第3行=第1行+第2行,因此是一个奇异矩阵。@dato:是的,这是正确的!=)正如我在对我的答案的评论中所说的,由于浮点运算,你不能假设一个计算机程序将返回零。答案基本上是零。我应该用长格式直接显示零还是?因为它只是一个很小的数字,但不是零。你想对答案做什么?写在屏幕上就行了?不,没有,一切都是正确的
A = [2 -1 1; 2 -1 1; 3 2 1];
[U S V] = svd(A);
x = V(:,end)
x =
-0.39057
0.13019
0.91132
A*x =
0
0
0