gpt4 book ai didi

python - 在 SymPy 中,为什么两个随机变量相加会产生难以理解的结果?

转载 作者:行者123 更新时间:2023-12-01 01:47:18 24 4
gpt4 key购买 nike

考虑 SymPy 中 2 个高斯变量的求和:

from sympy import *
from sympy.stats import *

init_printing()

a = Normal('a', 0, Symbol('P', real=true))
b = Normal('b', 0, Symbol('Q', real=true))

ss = a + b

pprint(simplify(density(ss)))

我希望结果是具有更多方差的高斯 PDF。相反,结果如下所示:

    ⎧    ⎛               2  2                                                 
⎪ ⎜ z ⋅P
⎪ ⎜ ───────────────
⎪ ⎜ ⎛ 2 ⎞
⎪ ⎜ 4 ⎜ P 1⎟
⎪ ⎜ 4⋅Q ⋅⎜──── + ─⎟
⎪ ⎜ ⎜ 2 2⎟ 2
⎪ ⎜ ⎝2⋅Q ⎠ ⎛ z⋅P ⎞ z
⎪ ⎜ z⋅π⋅P⋅ℯ ⋅erf⎜─────────────────────⎟ ───────
⎪ ⎜ ⎜ __________⎟ ⎛
⎪ ⎜ ⎜ ╱ 2 ⎟ 4 ⎜
⎪ ⎜ ⎜ 2 ╱ P 1 ⎟ 4⋅Q ⋅⎜─
⎪ ⎜ ⎜2⋅Q ⋅ ╱ ──── + ─ ⎟ ⎜
⎪ ⎜ ⎜ ╱ 2 2 ⎟ ⎝2
⎪ ⎜ ⎝ ╲╱ 2⋅Q ⎠ z⋅π⋅P⋅ℯ
⎪ Q⋅⎜- ───────────────────────────────────────────────── - ──────────────
⎪ ⎜ __________ ___
⎪ ⎜ ╱ 2 ╱
⎪ ⎜ 2 ╱ P 1 2 ╱ P
z ↦ ⎨ ⎜ 2⋅Q ⋅ ╱ ──── + ─ 2⋅Q ⋅ ╱ ──
⎪ ⎜ ╱ 2 2 ╱
⎪ ⎝ ╲╱ 2⋅Q ╲╱ 2⋅
⎪- ───────────────────────────────────────────────────────────────────────
⎪ 3/2
⎪ 2⋅z⋅π ⋅P














... (426 lines in total)

⎞ ⎞
⎛ 1 ⎞│ π⎟ │ ⎛ 1 ⎞│ π⎟
t⎜──────────────, ∞⎟│ < ─⎟ ∨ │periodic_argument⎜──────────────, ∞⎟│ < ─⎟
⎜ 2 ⎟│ 2⎟ │ ⎜ 2 ⎟│ 2⎟
⎝polar_lift (P) ⎠│ ⎠ │ ⎝polar_lift (P) ⎠│ ⎠

为什么 SymPy 给出了如此奇怪的结果,我应该怎样做才能得到简洁的形式?

最佳答案

将第二个参数(标准差,“sigma”)声明为正数:

a = Normal('a', 0, Symbol('P', positive=True))
b = Normal('b', 0, Symbol('Q', positive=True))

那么结果就如预期了:

               2     
-z
───────────
2 2
2⋅P + 2⋅Q
√2⋅ℯ
z ↦ ─────────────────
_________
╱ 2 2
2⋅√π⋅╲╱ P + Q

在底层,SymPy 使用 Meijer G 函数计算不正确积分,这涉及将计算提升到某个黎曼曲面,并且 P 或 Q 为负数可能会导致采用另一个分支;因此,答案很复杂。从数学上讲,这对于计算来说应该没有多大影响,因为西格玛是指数的平方;但这对于算法的成功很重要。

如果 SymPy 只知道如何添加独立法线,那么所有这些都毫无意义,但它不知道;所有此类计算都是通过直接积分完成的,通常会扩展所实现的积分方法的限制。

备注:

  1. 您已使用 true(SymPy 真值对象),但符号创建方法需要 Python 的 True
  2. 最好避免组合使用 from sympy import *from sympy.stats import *,因为这会导致命名冲突:E 是 Euler 的SymPy 中的数字和 sympy.stats 中预期值的表示法。

关于python - 在 SymPy 中,为什么两个随机变量相加会产生难以理解的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51150699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com