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

如何使用SymPy将数值集合代入符号化求和运算完成累加?

SymPy将数值集合代入符号化求和式的方法

你可以通过两步替换实现需求,完整可运行代码如下:

from sympy import *

# 待代入的数值集合
items = [0, 5, 6, 2, 7]

# 声明SymPy变量与求和式
i, n = symbols('i n')
x = symbols('x', cls=Function)
f = Sum(x(i), (i, 0, n))

# 执行替换并计算结果
result = f.subs({
    # 替换求和上限n为集合长度减1,对齐下标
    n: len(items) - 1,
    # 生成x(i)到集合对应下标的映射关系
    **{x(idx): val for idx, val in enumerate(items)}
}).doit()

print(result) # 输出:20,即0+5+6+2+7的累加结果

相关要点说明:

  • subs方法支持传入字典批量完成替换,用**可以把字典推导式生成的映射关系解包到参数字典中。
  • 最后必须调用doit()方法才能让SymPy执行实际的求和运算,否则返回的仍然是未计算的求和表达式对象。
  • 注意:如果你的集合下标不是从0开始,只需要同步调整求和式的起始下标、enumerate的start参数,以及求和上限的替换逻辑即可。

内容的提问来源于stack exchange,提问作者tmn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:27:05