【发布时间】:2012-07-19 16:57:28
【问题描述】:
我正在通过 Cholesky 分解使用不同的库计算方阵的逆。然而,我的结果并不像我预期的那样。我不是数学专家,但我希望能得到更接近的结果。
我正在使用 MLK、magma 和 CULA 库来计算 CPU 和 GPU 中矩阵的逆矩阵。
在对这些库进行计算后,我注意到结果总是在一个元素上有所不同。假设我要计算 A= [0.237306,0.000458;0.000458,0.238497] 的倒数:
A[0] = 0.237306
A[1] = 0.000458
A[2] = 0.000458
A[3] = 0.238497
我得到的结果是:
inv(A)[0] = 4.213983
inv(A)[1] = -0.008092
inv(A)[2] = 0.000458
inv(A)[3] = 4.192946
但是,正确的结果应该是
4.2139841 -0.0080924
-0.0080924 4.1929404
如您所见,inv(A)[3] 是不同的,尽管其余的都很好。 Cholesky Inversion 应该是这样工作的吗?这是一个正确/近似的结果还是我在这里做错了什么?
【问题讨论】:
-
要么提供所用库的信息,要么尝试math.stackexchange.com
-
您确定这些值都应该可用吗?通常对称矩阵库仅使用矩阵的一侧作为输出,依靠您通过对称另一侧来完成。请发布导致结果的代码大纲。
标签: math matrix linear-algebra matrix-inverse matrix-factorization