如何在MATLAB中求解 x 的(非平凡的)解 Ax = 0 ?
A = matrix
x = matrix trying to solve for
我试过 solve('A * x = 0', 'x') 但我只得到 0 作为答案。
如何在MATLAB中求解 x 的(非平凡的)解 Ax = 0 ?
A = matrix
x = matrix trying to solve for
我试过 solve('A * x = 0', 'x') 但我只得到 0 作为答案。
请注意,null(A) 的作用与以下相同(对于秩亏矩阵),但这是使用svd(A)
MATLAB 中的函数(正如我在评论中提到的null(A)
那样)。
[U S V] = svd(A);
x = V(:,end)
有关此的更多信息,这是与此相关的链接(由于公式,无法将其发布到此处)。
如果您想更直观地了解奇异值和特征值分解,请查看eigshow
MATLAB。
您可以使用N = null(A)
来获取矩阵N
。的任何列N
(或者,实际上,任何列的线性组合N
)都将满足Ax = 0
. 这描述了所有可能的情况x
——您刚刚找到了A
.
注意:您只能找到这样的x
ifA
具有非平凡的空空间。如果rank(A) < #cols of A
.
您可以查看 MATLAB 在其工具箱中是否有奇异值分解。这将为您提供向量的零空间。
null(A)
会给你直接的答案。如果您需要一个重要的解决方案,请尝试简化行梯形并参考 pdf 的第一页。
R = rref(A)