boost有吗? 其中 A、y 和 x 分别是矩阵(稀疏且可以非常大)和 vector 。 y 或 x 可以是未知的。
我在这里找不到它: http://www.boost.org/doc/libs/1_39_0/libs/numeric/ublas/doc/index.htm
最佳答案
是的,您可以使用 boost 的 ublas 库求解线性方程。这是使用 LU 分解和反向代入获得逆的一种简短方法:
using namespace boost::ublas;
Ainv = identity_matrix<float>(A.size1());
permutation_matrix<size_t> pm(A.size1());
lu_factorize(A,pm)
lu_substitute(A, pm, Ainv);
因此,要求解线性方程组 Ax=y,您需要求解方程式 trans(A)Ax=trans(A)y,方法是取 (trans(A)A)^-1 的倒数得到 x:x = (反式(A)A)^-1Ay。
关于c++ - Boost 的 y=Ax 的线性代数解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225411/