python 无法将求和与渐近积分

n8ghc7c1  于 2023-02-15  发布在  Python
关注(0)|答案(1)|浏览(115)

我想计算求和的积分:

import sympy as sp
t = sp.Symbol("t")
n = sp.Symbol("n", integer=True, positive=True)
sum_term = sp.Sum(sp.exp(-(n*sp.pi)**2 * t), (n, 1, sp.oo))
sp.integrate(sum_term, (t, 0, t)).doit()

但是,这并不计算积分:Integral(Sum(exp(-pi**2*n**2*t), (n, 1, oo)), (t, 0, t))

u3r8eeie

u3r8eeie1#

我不知道为什么这不工作,但如果你交换的顺序和积分它的工作:

In [5]: import sympy as sym

In [6]: t, n = sym.symbols('t, n')

In [7]: f = sym.exp(-(n*sym.pi)**2 * t)

In [8]: f
Out[8]: exp(-pi**2*n**2*t)

In [11]: e1 = sym.Integral(sym.Sum(f, (n, 1, sym.oo)), (t, 0, sym.oo))

In [12]: e2 = sym.Sum(sym.Integral(f, (t, 0, sym.oo)), (n, 1, sym.oo))

In [13]: e1
Out[13]: Integral(Sum(exp(-pi**2*n**2*t), (n, 1, oo)), (t, 0, oo))

In [14]: e2
Out[14]: Sum(Integral(exp(-pi**2*n**2*t), (t, 0, oo)), (n, 1, oo))

In [15]: e1.doit()
Out[15]: Integral(Sum(exp(-pi**2*n**2*t), (n, 1, oo)), (t, 0, oo))

In [17]: e2.doit()
Out[17]: 1/6

相关问题