N个随机变量和的符号期望

2024-04-25 17:42:52 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码从https://docs.sympy.org/latest/modules/stats.html#examples计算两个骰子之和的期望值

from sympy.stats import P, E, variance, Die, Normal
from sympy import Eq, simplify, symbols
X, Y = Die('X', 6), Die('Y', 6) # Define two six sided dice
E(X+Y) # Expectation of the sum of two dice

但是,我想计算N个骰子之和的期望值,其中N是一个符号,如

N = symbols('N')

这可能吗

我想要的是符号化的结果,而不是通过蒙特卡罗模拟计算出来的结果

编辑:N未知,因此应在结果中将其视为变量


Tags: of代码fromhttpsorgimportdocsstats
2条回答

n是给定常数的情况下,这里有一种求n骰子和的方法。正如其他地方提到的,期望值非常简单:n乘以一个骰子的期望值(因此,7*n/2

计算density(概率质量函数)很快就会变得杂乱无章,而且速度非常慢。对于n=10,它在我的系统上造成内存溢出

from sympy.stats import Die, P, E, variance, density

def sympy_listsum(die_list):
    res =  die_list[0]
    for d in die_list[1:]:
        res += d
    return res

n = 5
X = sympy_listsum([ Die(f'Die_{k}', 6) for k in range(n)] )

print(X)
print(E(X))
print(P(X < 10))
print(variance(X))
print(density(X))

n=5的结果:

Die_0 + Die_1 + Die_2 + Die_3 + Die_4
35/2
7/432
175/12
{5: 1/7776, 6: 5/7776, 7: 5/2592, 8: 35/7776, 9: 35/3888, 10: 7/432, 11: 205/7776, 12: 305/7776, 13: 35/648, 14: 5/72, 15: 217/2592, 16: 245/2592, 17: 65/648, 18: 65/648, 19: 245/2592, 20: 217/2592, 21: 5/72, 22: 35/648, 23: 305/7776, 24: 205/7776, 25: 7/432, 26: 35/3888, 27: 35/7776, 28: 5/2592, 29: 5/7776, 30: 1/7776}

自变量之和的pmf/pdf是每个变量的pmf/pdf的卷积。对于离散变量,卷积只是pmf元素的有限和,对于dice,它更简单,因为元素都等于1/(面数)。最困难的部分是要使求和的极限正确,这是需要注意的

一旦你手头有总和,你就可以在上面尝试一些恒等式。我不确定那里有什么可能,但你肯定能走到至少那一步

编辑:我读得不够仔细。如果你只对求和的期望值感兴趣,那就简单多了。E[X+Y]=E[X]+E[Y],因此问题归结为计算一个模具的期望值。这也是一个求和,比卷积更简单

尽管如此,再仔细考虑一下,一个骰子和的pmf的符号解可能会非常混乱。几年前,我算出了一个统一连续变量和的pdf,结果是一个分段多项式,随着骰子数的增加,碎片数也随之增加(我似乎记得它是m,其中m是骰子数)。我怀疑骰子的总数也会有类似的结果

相关问题 更多 >