內置功能NProbability
也快:
NProbability[ x^2 + y^2 <= 1, {x, y} \[Distributed]
BinormalDistribution[{0, 0}, {1, 1}, 0]] // Timing
或
NProbability[x^2 + y^2 <= 1, x \[Distributed]
NormalDistribution[0, 1] && y \[Distributed]
NormalDistribution[0, 1] ] // Timing
既給{0.031, 0.393469}
。
由於n
標準法線平方和分佈ChiSquare[n]
,你會得到一個更精簡的表達NProbability[z < 1, z \[Distributed] ChiSquareDistribution[2]]
其中z=x^2+y^2
和x
和y
分佈NormalDistribution[0,1]
。時間與上述相同:{0.031, 0.393469}
。
編輯:計時器爲Vista 64位Core2雙核T9600 2.80GHz機器與8G內存(MMA 8.0.4)。 Yoda在這臺機器上的解決方案的計時時間爲{0.031, 0.393469}
。
編輯2:使用ChiSquareDistribution[2]
仿真可以做如下:
(data = RandomVariate[ChiSquareDistribution[2], 10^5];
Probability[w <= 1, w \[Distributed] data] // N) // Timing
產生{0.031, 0.3946}
。
編輯3:計時更多細節:
對於
[email protected]@Table[[email protected]
NProbability[x^2 + y^2 <= 1, {x, y} \[Distributed]
BinormalDistribution[{0, 0}, {1, 1}, 0]], {10}]
我得到{0.047, 0.031, 0.031, 0.031, 0.031, 0.016, 0.016, 0.031, 0.015, 0.016}
對於
[email protected]@Table[[email protected]
NProbability[x^2 + y^2 <= 1,
x \[Distributed] NormalDistribution[0, 1] &&
y \[Distributed] NormalDistribution[0, 1] ], {10}]
我得到{0.047, 0.031, 0.032, 0.031, 0.031, 0.016, 0.031, 0.015, 0.016, 0.031}
。
對於
[email protected]@Table[[email protected]
NProbability[z < 1,
z \[Distributed] ChiSquareDistribution[2]], {10}]
我得到{0.047, 0.015, 0.016, 0.016, 0.031, 0.015, 0.016, 0.016, 0.015, 0.}
。
對於Yoda的
[email protected]@Table[[email protected](JointDistrbution =
1/(2 \[Pi] \[Sigma]^2) E^(-((x^2 + y^2)/(2 \[Sigma]^2)));
NIntegrate[
JointDistrbution /. \[Sigma] -> 1, {y, -1,
1}, {x, -Sqrt[1 - y^2], Sqrt[1 - y^2]}]), {10}]
我得到{0.031, 0.032, 0.015, 0., 0.016, 0., 0.015, 0.016, 0.016, 0.}
。
對於經驗估計
[email protected]@Table[[email protected](Probability[w <= 1,
w \[Distributed] data] // N), {10}]
我{0.031, 0.016, 0.016, 0., 0.015, 0.016, 0.015, 0., 0.016, 0.016}
。
我發現有趣的是,Mathematica也能夠'集成[]'JointDistribution。 – 2011-12-21 12:36:43