我想使用sympy
简化基于C和D的计算。但是,我不知道如何通过C*DT
简化/ subs,... G
。例如,C(i,0)*DT(0,j)+C(i,1)*DT(1,j)
必须由G(i,j)
替换,即G=C*DT
。必须尽可能地应用此替换。
我的代码:
import sympy
from sympy import *
n, m = 4, 2
C = sympy.Matrix(n, m, lambda i, j: sympy.var('C%d_%d' % (i, j)))
D = sympy.Matrix(n, m, lambda i, j: sympy.var('D%d_%d' % (i, j)))
DT = D.transpose()
CDT = C * DT
G = sympy.Matrix(n, n, lambda i, j: sympy.var('G%d_%d' % (i, j)))
# does not work, no change in CDT
# CDT.subs(CDT,G)