C++ 计算空空间

c++ calculating null space

本文关键字:空间 计算 C++      更新时间:2023-10-16

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

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

我已经尝试使用 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 的零空间。我只是想知道是否有任何方法可以提高答案的准确性。
谢谢!

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