10

如何在MATLAB中求解 x 的(非平凡的)解 Ax = 0 ?

A = matrix
x = matrix trying to solve for

我试过 solve('A * x = 0', 'x') 但我只得到 0 作为答案。

4

4 回答 4

14

请注意,null(A) 的作用与以下相同(对于秩亏矩阵),但这是使用svd(A)MATLAB 中的函数(正如我在评论中提到的null(A)那样)。

[U S V] = svd(A);
x = V(:,end)

有关此的更多信息,这是与此相关的链接(由于公式,无法将其发布到此处)。

如果您想更直观地了解奇异值和特征值分解,请查看eigshowMATLAB。

于 2009-10-05T14:56:07.493 回答
10

您可以使用N = null(A)来获取矩阵N。的任何列N(或者,实际上,任何列的线性组合N)都将满足Ax = 0. 这描述了所有可能的情况x——您刚刚找到了A.

注意:您只能找到这样的xifA具有非平凡的空空间。如果rank(A) < #cols of A.

于 2009-10-04T01:13:05.650 回答
1

您可以查看 MATLAB 在其工具箱中是否有奇异值分解。这将为您提供向量的零空间。

于 2009-10-04T02:02:39.243 回答
0

null(A)会给你直接的答案。如果您需要一个重要的解决方案,请尝试简化行梯形并参考 pdf 的第一页。

R = rref(A)

http://www.math.colostate.edu/~gerhard/M345/CHP/ch7_4.pdf

于 2016-05-04T15:38:06.977 回答