【发布时间】:2010-07-28 20:24:13
【问题描述】:
您好,我一直在做一些关于矩阵求逆(线性代数)的研究,我想使用 C++ 模板编程算法,我发现有很多方法,例如:Gauss-Jordan Elimination 或 LU Decomposition我找到了函数 LU_factorize (c++ boost library)
从程序员或数学家的角度,我想知道是否还有其他方法,哪个更好(优点/缺点)?
如果没有其他更快的方法,boost 库中是否已经存在(矩阵)反转函数? ,因为我搜索了很多,没有找到。
【问题讨论】:
-
看看 wolfram 不得不说:mathworld.wolfram.com/MatrixInverse.html Max.
-
它是通用矩阵还是有特殊结构(例如三角形、正交、稀疏/密集)?
-
此外,Boost.ublas 对于除相当小的矩阵之外的任何东西都是 SLOW。正如 Vitor Py 所说,如果你想要一个快速的仅限 C++ 的线性代数库,请查看 Eigen。
-
@Staffan:不是一般矩阵,为什么你认为uBlas很慢?
-
应该对哪些方面进行模板化?我在这里的数字类型上有代码模板:github.com/victorliu/RNP/blob/master/inc/LinearSolve.h
标签: c++ algorithm math linear-algebra matrix-inverse