如何用SymPy积分分段函数获取瑞利分布CDF
积分瑞利分布PDF求CDF的问题
基础信息
- 瑞利分布PDF:分段函数,当$s>0$时,$f(s) = s e{-\frac{s2}{2}}$;当$s \leq 0$时,$f(s)=0$
- CDF计算公式:$F(x) = \int_{-\infty}^{x} f(s) ds$
- 预期CDF结果:分段函数,当$x \leq 0$时,$F(x)=0$;当$x>0$时,$F(x)=1 - e{-\frac{x2}{2}}$
尝试的代码及错误结果
代码1:分段函数方式
import sympy as smp x, s, y, z, u, v, w = smp.symbols('x, s, y, z, u, v, w', real=True) expr = smp.Piecewise((s*smp.E**((-s**2)/2), smp.StrictGreaterThan(s, 0)), (0, smp.LessThan(s, 0))) res = smp.integrate(expr, (s, -(smp.oo), x))
- 错误结果:得到的积分结果包含错误的分段逻辑,不符合预期的CDF形式
代码2:非分段函数方式
import sympy as smp x, s, y, z, u, v, w = smp.symbols('x, s, y, z, u, v, w', real=True) expr = s*smp.E**((-s**2)/2) res = smp.integrate(expr, (s, -(smp.oo), x), manual=True)
- 错误结果:积分结果为$e{-\frac{x2}{2}}$,与预期的$1 - e{-\frac{x2}{2}}$不符
疑问
如何用SymPy得到正确的瑞利分布CDF结果?
内容的提问来源于stack exchange,提问作者Omnia Vanitas
相关产品推荐
相关产品推荐

