You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用Sympy计算无穷求和式积分失败的问题

解决Sympy无法计算求和式积分的问题

问题原因

你的代码存在两个关键问题:

  1. 变量名冲突:积分上限使用了符号变量t,和积分变量t重名,导致Sympy无法正确解析积分上下限。
  2. 未手动交换求和与积分顺序:Sympy默认不会自动处理无穷级数与积分的顺序交换(需满足收敛条件),直接对求和式积分会返回未计算的原始表达式。

解决方案

步骤1:修正变量名冲突

将积分上限改为独立符号(比如T),避免与积分变量t混淆。

步骤2:交换求和与积分顺序

由于被积函数是正项无穷级数,满足单调收敛定理,可安全交换求和与积分顺序:先对级数的每一项单独积分,再对积分结果求和。

修正后的代码

import sympy as sp

# 定义符号:t为积分变量,n为正整数求和变量,T为积分上限
t = sp.Symbol("t")
n = sp.Symbol("n", integer=True, positive=True)
T = sp.Symbol("T", positive=True)

# 定义原无穷求和式
sum_term = sp.Sum(sp.exp(-(n*sp.pi)**2 * t), (n, 1, sp.oo))

# 先对级数的每一项积分,再求和
integrated_sum = sp.Sum(
    sp.integrate(sp.exp(-(n*sp.pi)**2 * t), (t, 0, T)),
    (n, 1, sp.oo)
).doit()

# 可选:化简结果
simplified_result = sp.simplify(integrated_sum)
print(simplified_result)

结果说明

运行代码后,Sympy会返回用椭圆theta函数表示的解析结果:
$$\frac{T}{2} - \frac{1}{2} + \frac{\theta_3(0, e{-\pi2 T})}{4}$$
其中$\theta_3$是雅可比theta函数,用于表示这类无穷级数的闭合形式。

内容的提问来源于stack exchange,提问作者Rémi Delaporte-Mathurin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:15:59