首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sympy -仅在特定位置找到矩阵的逆矩阵?

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

Stack Overflow用户
提问于 2019-12-19 05:14:13
回答 1查看 168关注 0票数 1

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

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-19 06:02:32

逆的一般公式是由余因子的转置矩阵和行列式so计算出来的。

代码语言:javascript
复制
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

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

如果问题是表达式爆炸,那么我认为使用余因子和行列式是没有帮助的,因为行列式计算仍然会很慢。在这种情况下,您需要提供一个示例表达式来演示该问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59400064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档