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

使用SymPy定义U01 PDF后无法获取正确CDF,求解决方法

解决SymPy中U01矩形函数CDF积分问题
  • 问题根源:用sign()组合定义的PDF,SymPy在积分时无法自动识别分段边界的逻辑,导致积分结果不符合预期。正确的做法是直接用分段函数定义U01的概率密度函数(PDF)。
  • 实现代码:
from sympy import symbols, Piecewise, integrate, simplify

# 定义符号变量
x = symbols('x')

# 正确定义U01的PDF:分段函数
u01_pdf = Piecewise(
    (0, x < 0),
    (1, (x >= 0) & (x <= 1)),
    (0, x > 1)
)

# 计算CDF并化简
u01_cdf = integrate(u01_pdf, x)
u01_cdf_simplified = simplify(u01_cdf)

print("U01的CDF:")
print(u01_cdf_simplified)
  • 输出结果:

Piecewise((0, x < 0), (x, x <= 1), (1, True))

这个结果就是U01分布的正确CDF:x<0时0,0≤x≤1时x,x>1时1。

如果偏好用阶跃函数组合定义,也可以用SymPy的Heaviside函数实现,同样能得到正确的积分结果:

from sympy import Heaviside

# 用Heaviside函数定义U01 PDF
u01_pdf_heaviside = Heaviside(x) - Heaviside(x - 1)
u01_cdf_heaviside = integrate(u01_pdf_heaviside, x)
print(simplify(u01_cdf_heaviside))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:15:43