Python包Sympy:如何强制单位矩阵的伴随必须等于单位矩阵

Python包Sympy:如何强制单位矩阵的伴随必须等于单位矩阵,python,sympy,Python,Sympy,当我运行此代码时 import sympy as sp sp.init_printing(pretty_print=False) I = sp.Identity(3) A = sp.MatrixSymbol('A',3,3) A*I I*A sp.adjoint(A)*I I*sp.adjoint(A) 我得到了预期的结果 A A Adjoint(A) Adjoint(A) 但是如果我跑 sp.adjoint(I)*A 我明白了 为什么不将伴随(I)替换为I?伴随(MatrixExpr)不

当我运行此代码时

import sympy as sp
sp.init_printing(pretty_print=False)
I = sp.Identity(3)
A = sp.MatrixSymbol('A',3,3)
A*I
I*A
sp.adjoint(A)*I
I*sp.adjoint(A)
我得到了预期的结果

A
A
Adjoint(A)
Adjoint(A)
但是如果我跑

sp.adjoint(I)*A
我明白了

为什么不将伴随(I)替换为I?

伴随(MatrixExpr)不计算,它只是一个符号对象:

所以我假设伴随(I)在任何矩阵上使用延迟加载来节省计算量,直到实际需要为止。一旦对函数求值,则计算伴随并将其设置为I

也许
I.adjunct()
做了您所期望的。

adjunct(MatrixExpr)
不计算,它只是一个符号对象:

所以我假设伴随(I)在任何矩阵上使用延迟加载来节省计算量,直到实际需要为止。一旦对函数求值,则计算伴随并将其设置为I

也许,
I.adjuncit()
做了您所期望的事情

Adjoint(I)*A