C ++:使用反向替换算法求解方程组的数学库

时间:2010-03-22 03:10:48

标签: c++ math matrix

如果我有这个:

A * f = g;
A: upper triangular matrix (n x n)
f: (n x 1)
g: (n x 1)

需要使用反向替换算法求解f。我会说自己写一个并不难,但是哦,如果那里有一个库,那么为什么不呢。

4 个答案:

答案 0 :(得分:3)

使用LAPACK。它已经安装在许多系统上,并且有许多实现可用于没有它的系统。

具体来说,您需要的例程是dtrtrsstrtrs,具体取决于您的数据是双精度还是单精度。

答案 1 :(得分:3)

提升uBlas应该有用。至少如果我正确理解您的问题,您可能需要先查看lu_substitute()inplace_solve()

答案 2 :(得分:0)

这是其中之一吗?我之前没有听说过用“反向替换”求解线性方程组。为什么必须重新替换?

http://eigen.tuxfamily.org/dox/TutorialAdvancedLinearAlgebra.html

答案 3 :(得分:0)

为简单而且如果没有依赖关系,我会选择JAMA+TNT并使用LU class进行因子分解及其solve()方法。似乎没有办法用一个预先存在的上三角矩阵来初始化LU(LU的构造函数没有假设,只是开始分解)但我认为你可以按原样使用它,并且与性能命中一起生活冗余因子分解,或者只是采取解决方法并根据您的需要进行调整。