如何使用sympy计算矩阵的迭代积分?

问题描述 投票:0回答:0

假设我有一个名为 `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

为什么第一个代码(定义所有要完成的集成,然后评估)不起作用,但第二个代码可以?或者,可以修改第一个代码吗?

sympy symbolic-math integral
© www.soinside.com 2019 - 2024. All rights reserved.