c ++ armadillo - 计算零空间

时间:2013-11-09 20:50:11

标签: c++ armadillo

这是我在这里发表的第一篇文章......

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

我已经尝试过使用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()方法并得到了完美的结果,但在这个简单的例子中似乎没有用。这是因为等式有多种解决方案吗?如果是这样,是否有任何解决方法,我可以在null空间中获得向量的任何其他方式?

任何帮助将不胜感激。

编辑:

我尝试了svd(mat U,vec s,mat V,mat X,method =“standard”)方法,我从V列中获得了X的零空间。我只是想知道是否有任何方法提高答案的准确性 谢谢!

1 个答案:

答案 0 :(得分:4)

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