假设我有一个名为 `H_tau_1`` 的 2x2 矩阵对象
import sympy as sp
H_tau_1 = sp.Matrix(([H_11,H_12],
[H_21, H_22]
),commutative=False)
其中
H_11, H_12
等是 tau_1 的显式定义函数。
当我尝试使用以下代码评估积分时:
result = sp.Integral(H_tau_1, (tau_2,0,tau_1))
result = sp.Integral(result, (tau_1,0,t))
result.doit()
我得到一个错误,说:
ValueError: Invalid limits given: (((tau_2, 0, tau_1), (tau_1, 0, t)),)
但是,如果它们一个一个地完成,则评估积分没有问题:
result_1 = sp.Integral(Hamiltonians[0].subs(H_substitutions,simultaneous=True),(tau_2,0,tau_1))
result_1 = result_1.doit()
result_1 = sp.Integral(result_1,(tau_1,0,t))
result_1.doit() #no issue when doing integrals one by one
为什么第一个代码(定义所有要完成的集成,然后评估)不起作用,但第二个代码可以?或者,可以修改第一个代码吗?