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

如何用sympy.stats求解不同区间均匀变量和的PDF?

用SymPy.stats求解不同区间均匀分布变量和的PDF

可以通过SymPy.stats求解该问题,只是直接调用density(Z)(z)得到的结果用Heaviside阶跃函数表示,看起来复杂,只需对结果进行化简即可得到直观的分段形式。

具体步骤

  1. 定义随机变量与求和后的变量
  2. 获取密度函数后,使用piecewise_fold函数将Heaviside形式的表达式转化为标准分段函数

示例代码

from sympy import symbols, piecewise_fold
from sympy.stats import Uniform, density

# 定义服从不同区间均匀分布的随机变量
X1 = Uniform('X1', 0, 1)
X2 = Uniform('X2', 0, 2)
# 定义求和后的随机变量Z
Z = X1 + X2
z = symbols('z')

# 获取Z的概率密度函数并化简
raw_pdf = density(Z)(z)
simplified_pdf = piecewise_fold(raw_pdf)

# 输出化简后的分段PDF
print(simplified_pdf)

化简后的结果说明

化简后会得到分段形式的PDF,对应Z的不同取值区间:

  • 当 (0 \leq z < 1) 时,(f_Z(z) = \frac{z}{2})
  • 当 (1 \leq z < 2) 时,(f_Z(z) = \frac{1}{2})
  • 当 (2 \leq z < 3) 时,(f_Z(z) = \frac{3 - z}{2})
  • 其他区间,(f_Z(z) = 0)

这个结果和手动计算卷积得到的结论一致——两个均匀分布变量和的PDF本质是它们各自PDF的卷积,SymPy通过符号计算完成了这一过程,只是默认输出用了更通用的Heaviside函数表示分段行为,piecewise_fold函数可以将其转化为更易读的分段表达式。

内容的提问来源于stack exchange,提问作者Erik Ross-Rønnow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:42:34