在MATLAB中找到均匀系统的解决方案

时间:2013-10-23 17:37:21

标签: 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 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

@Robert 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

3 个答案:

答案 0 :(得分:3)

如果有非平凡的解决方案,您可以使用Singular value decompositionsvd来获得满足x的{​​{1}}:

Ax=0

答案 1 :(得分:2)

A = [2 -1 1; 1 2 3; 3 0 -1]
b = [0; 0; 0]
x = A\b

假设“0”代表零向量而不是标量。

答案 2 :(得分:2)

好的,你的情况:

>> 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]平行的每个向量都将是一个解决方案。