7

这是我第一次发帖...

有没有办法在另一个向量的零空间中计算一个向量?我不需要基础,只需零空间中的一个向量即可。

我已经尝试过使用 solve() 方法 -

colvec x(3);
x = solve(A,B);

其中 A 是 mat 类型的 3x3 矩阵 -

2 2 2
3 3 3
4 4 4

B 是 colvec 类型的零向量 -

0
0
0

但程序终止抛出以下错误 -

error: solve(): solution not found
terminate called after throwing an instance of 'std::runtime_error'
  what():

我之前用过solve()方法,得到了完美的结果,但在这种简单的情况下似乎不起作用。这是因为方程有多个解吗?如果是这样,是否有任何解决方法,我可以在零空间中获得向量的任何其他方式?

任何帮助,将不胜感激。

编辑 :

我尝试了 svd(mat U, vec s, mat V, mat X, method = "standard") 方法,我从 V 的列中得到了 X 的空空间。我只是想知道是否有任何方法可以改进答案的准确性。
谢谢!

4

1 回答 1

5

null()在最新版本的犰狳库中,您可以使用该函数找到矩阵零空间的正交基。请参阅http://arma.sourceforge.net/docs.html#null上的文档。该功能是在版本 5.400(2015 年 8 月)中添加的。

于 2015-10-18T21:20:49.107 回答