我正在尝试使用版本Boost boost_1_37_0和MTL mtl4-alpha-1-r6418来反转矩阵。我似乎无法找到矩阵反转代码。我用谷歌搜索了一些例子,它们似乎引用了上面版本中似乎缺失的lu.h。任何提示?
@Matt建议复制lu.h,但这似乎来自MTL2而不是MTL4。我在使用VS05或更高版本的MTL2进行编译时遇到问题。
那么,有没有想过如何在MTL4中进行矩阵求逆?
更新:我认为我更了解马特,我正在向前迈进this ITL path。
答案 0 :(得分:4)
您似乎使用lu_factor
,然后使用lu_inverse
。不过,我不记得你与枢轴有什么关系。来自documentation。
是的,就像你说的那样,看起来他们的文件说你需要lu.h,不知何故:
如何反转矩阵?
你应该问的第一个问题 你自己是否真的想要 计算矩阵的倒数或if 你真的想解决一个线性问题 系统。用于求解线性系统 方程式,没有必要 明确计算矩阵逆。 相反,它更有效率 计算三角因子 矩阵,然后执行前进和 向后三角形解决了 因素。更多关于解决线性问题 系统如下。如果你真的 想要反转矩阵,有一个 函数
lu_inverse()
在mtl / lu.h中。
如果不出意外,您可以查看lu.h on their site。
答案 1 :(得分:0)
我从未使用过boost或MTL进行矩阵数学运算,但我使用了JAMA / TNT。
此页面http://wiki.cs.princeton.edu/index.php/TNT显示了如何采用矩阵求逆。基本方法是独立于库的:
因子矩阵M进入XY,其中X和Y是适当的因子分解(LU可以,但是对于数值稳定性,我认为你会想要使用QR或者SVD)。
解决I = MN =(XY)N为N,前提是M已被分解;图书馆应该有一个常规。
答案 2 :(得分:0)