我正在使用 sympy
求逆矩阵。我有下一个问题。当我计算矩阵 A
的逆并且我想证明它时,我得到了一个带分数的矩阵;我是说
>> import sympy
>> from sympy import pprint
>> from sympy.abc import *
>> import sys
>> sys.displayhook = pprint
>> from sympy.matrices import *
>> A = Matrix([[a, b],[c, d]])
>> B = A.inv()
>> B
>> [1 b*c -b ]
>> [- + ------------ -----------]
>> [a 2 / b*c\ / b*c\]
>> [ a *|d - ---| a*|d - ---|]
>> [ \ a / \ a /]
>> [ ]
>> [ -c 1 ]
>> [ ----------- ------- ]
>> [ / b*c\ b*c ]
>> [ a*|d - ---| d - --- ]
>> [ \ a / a ]
>> B*A
>> [ /1 b*c \ b*c /1 b*c \ b*d ]
>> [a*|- + ------------| - ----------- b*|- + ------------| - -----------]
>> [ |a 2 / b*c\| / b*c\ |a 2 / b*c\| / b*c\]
>> [ | a *|d - ---|| a*|d - ---| | a *|d - ---|| a*|d - ---|]
>> [ \ \ a // \ a / \ \ a // \ a /]
>> [ ]
>> [ d b*c ]
>> [ 0 ------- - ----------- ]
>> [ b*c / b*c\ ]
>> [ d - --- a*|d - ---| ]
>> [ a \ a / ]
我想得到下一个矩阵
>> I = Matrix([
>> [1, 0],
>> [0, 1]])
我的问题是矩阵 A*B
或 B*A
。真的,我想简化矩阵 A*B
以获得 I
。我尝试了 simplify()
但没有用。
最佳答案
您可以使用applyfunc
将simplify
函数应用于矩阵的每个单元格,如下所示:
>>> (B*A).applyfunc(simplify)
[1 0]
[ ]
[0 1]
关于python - 如何用 sympy 简化矩阵中的分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916986/