Sympy - 仅在特定位置找到矩阵的逆?

Sympy - find inverse of matrix only at a particular location?

我在 Sympy 中有一个 8 x 8 矩阵。反转整个矩阵需要很长时间,因为在我的例子中矩阵中每个单元格的符号表达式都相当复杂。此外,我只对单个单元格(第一行和第一列)的矩阵的逆值感兴趣。有没有办法只在一个位置计算逆,而不是计算矩阵所有 64 个位置的值?

谢谢!

逆的一般公式是根据转置矩阵的余数和行列式计算的

In [8]: M = Matrix([[1, 4, 7], [3, 0, 5], [-1, 9, 11]])                                                                           

In [9]: M                                                                                                                         
Out[9]: 
⎡1   4  7 ⎤
⎢         ⎥
⎢3   0  5 ⎥
⎢         ⎥
⎣-1  9  11⎦

In [10]: M.inv()                                                                                                                  
Out[10]: 
⎡45/8   -19/8  -5/2⎤
⎢                  ⎥
⎢19/4   -9/4    -2 ⎥
⎢                  ⎥
⎣-27/8  13/8   3/2 ⎦

In [11]: M.cofactor(0, 0) / M.det()                                                                                               
Out[11]: 45/8

这需要计算两个行列式:一个用于整个矩阵,一个用于余因子。在 big-O 术语中,这是 O(n**3)(与逆运算相同)但它可能比计算逆运算更快。

如果问题是表达式爆炸,那么我认为使用余因子和行列式将无济于事,因为行列式计算仍然很慢。在那种情况下,您需要给出一个示例表达式来说明问题。