SymPy中符号概率的期望值

1 投票
1 回答
1460 浏览
提问于 2025-04-18 08:53

我想找到一个离散随机变量的期望值,但不想指定特定的分布,这样我可以在符号上操作整个表达式。

比如,我怎么能用sympy中的求和来得到下面期望值的右边部分呢?

http://www.texify.com/img/%5CLARGE%5C%21%5Csum_%7Bi%20%3D%201%7D%5E%7Bn%7D%20P%28a_i%29a_i%20%3D%20P%28a_1%29a_1%20%2B%20...%20%2B%20P%28a_n%29a_n%20.gif

1 个回答

1

如果你不知道 n 的值,你可以使用 summation

In [45]: i, n = symbols('i n', integer=True)

In [46]: p, a = symbols('p a', cls=Function)

In [47]: summation(p(a(i))*a(i), (i, 0, n))
Out[47]:
  n
 ___
 ╲
  ╲   a(i)⋅p(a(i))
  ╱
 ╱
 ‾‾‾
i = 0

如果你知道 n 的值,那你可能只想表示实际的总和:

In [48]: n = 10

In [49]: sum(p(a(i))*a(i) for i in range(1, n+1))
Out[49]: a(1)⋅p(a(1)) + a(2)⋅p(a(2)) + a(3)⋅p(a(3)) + a(4)⋅p(a(4)) + a(5)⋅p(a(5)) + a(6)⋅p(a(6)) + a(7)⋅p(a(7)) + a(8)⋅p(a(8)) + a(9)⋅p(a(9)) + a(10)⋅p(a(10))

撰写回答