如何用SymPy和Python计算连续自定义PDF的期望与方差
解决方案
要在SymPy中基于自定义PDF定义随机变量并计算期望、方差,可通过ContinuousRV实现,以下是修正后的完整代码及说明:
修正后的代码
from sympy import symbols, Integral, Interval from sympy.stats import ContinuousRV, Expectation, Variance # 定义所需符号 x = symbols('x') mu = symbols("μ", positive=True) # 定义自定义PDF及定义域(0 < x < 4) pdf = (15/512)*(x**2)*((4-x)**2) X = ContinuousRV(x, pdf, set=Interval(0, 4)) # 指定随机变量的取值区间 # 计算X的方差 print('Var(X) =', Variance(X).doit()) # 计算E[(X-μ)²]并展开、求值 print('E[(X-μ)²]展开形式:', Expectation((X - mu)**2).expand()) print('E[(X-μ)²]计算结果:', Expectation((X - mu)**2).doit())
核心要点
- 补充必要导入:新增
Interval(用于指定变量取值范围)和ContinuousRV(用于创建自定义连续随机变量)的导入。 - 定义符号x:作为PDF的自变量,是构建随机变量的基础。
- 创建自定义随机变量:通过
ContinuousRV关联自变量、PDF和取值区间,确保后续积分计算的准确性。 - 执行计算:使用
.doit()方法触发积分运算,这是SymPy中执行符号积分的通用方式,替代原代码中的.evaluate_integral()。
内容的提问来源于stack exchange,提问作者Freya the Goddess
相关产品推荐
相关产品推荐

