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

如何在SymPy中对带索引的随机变量求和?

带索引的随机变量求和实现方案

直接用SymPy的sympy.stats.IndexedRV就能创建带索引的随机变量,再结合sympy.Sum就能实现你要的功能,具体代码示例如下:

import sympy as sp
import sympy.stats as ss

# 定义索引符号i(限定为整数)和分布参数
i = sp.symbols("i", integer=True)
mu, sigma = sp.symbols("mu sigma", real=True, positive=True)

# 创建带索引的随机变量X_i,这里以正态分布为例
X = ss.IndexedRV("X", i, ss.Normal(mu, sigma))

# 构建i从0到3的随机变量求和式
sum_rv = sp.Sum(X, (i, 0, 3))

# 展开求和式查看具体项
print(sum_rv.doit())  # 输出:X₀ + X₁ + X₂ + X₃

如果需要每个随机变量的分布参数随索引变化,比如让X_i的均值等于i,只需调整分布定义:

X = ss.IndexedRV("X", i, ss.Normal(i, sigma))
sum_rv = sp.Sum(X, (i, 0, 3))
print(sum_rv.doit())  # 输出:X₀ + X₁ + X₂ + X₃(每个X_i的均值分别为0,1,2,3)

另外,还可以直接对求和后的随机变量做统计计算,比如求期望、方差:

# 计算求和结果的期望
expectation = ss.E(sum_rv)
print(expectation.doit())  # 输出:4*mu(如果是固定均值的情况)

# 计算求和结果的方差(默认各随机变量独立)
variance = ss.Var(sum_rv)
print(variance.doit())  # 输出:4*sigma²

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:45:57