Q中的精确矩阵求逆

时间:2017-05-16 15:42:42

标签: algorithm linear-algebra symbolic-math markov-chains matrix-inverse

给定理论Q上的可逆矩阵M,逆矩阵M ^( - 1)再次是Q上的矩阵。它们的(有效)库是否精确计算逆?

我知道高性能线性代数库,例如BLAS / LAPACK,但这些库基于浮点运算,因此不适合计算精确(分析)解决方案。

动机:我想使用absorbing Markov chain来计算大fundamental matrix的吸收概率。我想这样做。

详细信息:我认为最好的情况是1000x1000矩阵,最坏情况下是数百万维矩阵。我可以进一步扩展事情。 (我意识到最糟糕的情况可能远非遥不可及。)

1 个答案:

答案 0 :(得分:1)

您可以使用Eigen matrix library,它可以轻松地处理任意标量类型。文档中有一个示例如何将其与GMP mpq_class from ctypes import POINTER, WINFUNCTYPE, windll from ctypes.wintypes import BOOL, HWND, RECT # get our window ID: hwnd = pygame.display.get_wm_info()["window"] # Jump through all the ctypes hoops: prototype = WINFUNCTYPE(BOOL, HWND, POINTER(RECT)) paramflags = (1, "hwnd"), (2, "lprect") GetWindowRect = prototype(("GetWindowRect", windll.user32), paramflags) # finally get our data! rect = GetWindowRect(hwnd) print "top, left, bottom, right: ", rect.top, rect.left, rect.bottom, rect.right # bottom, top, left, right: 644 98 124 644 一起使用:http://eigen.tuxfamily.org/dox/TopicCustomizing_CustomScalar.html

当然,正如@btilly指出的那样,大多数时候你不应该计算逆,而是计算矩阵分解并用它来求解方程组。对于有理数,您可以使用任何LU分解,或者如果矩阵是对称的,则使用LDLt分解。请点击此处查看catalogue of decompositions