2017-09-23 66 views
2

在sympy中,如何定義兩個隨機變量X和Y,這些隨機變量取決於常見條件?例如,我如何解決如下問題:定義依賴於單個條件的兩個隨機變量

  • 我們扔骰子。如果它落在1上,則X = 1且Y = 0。如果它落在2上,那麼X = 0和Y = 1。否則,X = Y = 0。 X,Y的協方差是多少?

回答

2

如果X和Y是某個Z的函數,則創建Z並通過它定義X,Y. Piecewise有助於此:

from sympy.stats import * 
Z = Die("Z", 6) 
X = Piecewise((1, Eq(Z, 1)), (0, True)) 
Y = Piecewise((1, Eq(Z, 2)), (0, True)) 
print(covariance(X, Y)) # -1/36 

旁白:如果Y是X的函數,那麼首先創建X,然後在它來定義ÿ。

from sympy.stats import Bernoulli, covariance 
X = Bernoulli("X", 1/6) 
Y = 1 - X 
print(covariance(X, Y)) 

返回-0.138888888888889。

+0

我更新了答案; SymPy現在更適合這些計算,因此不需要使用interpolating_poly的解決方法。 – FTP

+0

很高興知道,謝謝。 –