C++ c++;犰狳-计算零空间

C++ c++;犰狳-计算零空间,c++,armadillo,C++,Armadillo,这是我在这里的第一篇帖子 有没有办法在另一个向量的零空间中计算一个向量?我不需要基,只要空空间中的一个向量就可以了 我已经尝试过使用solve()方法- 其中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_erro

这是我在这里的第一篇帖子

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

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

其中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的零空间。我只是想知道是否有任何方法可以提高答案的精度。

谢谢

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

是否有方法转换矩阵a以减少行梯队形式?那就相当simple@pyCthon不,我想要一个更直接的方法,这就是为什么我没有对整个过程进行编码,而是使用了库函数。我同意库应该支持这一点,我搜索了API,但我不确定如何计算空空间。我会联系开发者,看看他们有什么建议,@pyCthon谢谢,我会的that@pyCthon你对这个问题有什么更新吗?:)
error: solve(): solution not found
terminate called after throwing an instance of 'std::runtime_error'
  what():