2011-02-14 89 views
0

我對C#相對陌生,並且使用蒙特卡羅仿真來做項目。基本上我的問題是以下。我有兩個不確定的變量輸入A和B,他們將通過一個模型並給出一個輸出C.所以C = f(A,B)。我知道A的概率分佈(三角形)和B的概率分佈(離散)。我怎樣才能得到C的概率分佈?C#蒙特卡洛仿真包需要

我現在所做的是我可以根據A的三角形分佈和B的離散分佈生成隨機數。每對隨機生成的A和B給出了一個結果C.我運行這個模型1000次,因此我可以得到1000個可能的C值。難度是獲得C的每個值的相應概率。顯然它不是1/1000,除非C是均勻分佈的。有什麼可以使用的蒙特卡羅模擬軟件包/庫嗎?

+1

聞起來像一個功課問題。無論如何,你不需要一個包,你需要一本書abuot統計和蒙特卡羅,因爲你有數學問題。 – TomTom 2011-02-14 08:35:09

回答

2

將它們放在直方圖中。

例如,創建1000個分箱,每個分箱對應一個小間隔。然後運行模型TotalN = 1000000次並計算每個區間中有多少個值。

然後計算n[i]/TotalN/WidthOfBin以獲得該區間內的近似概率密度。

0

要直觀瞭解問題中涵蓋的概念,請閱讀Sam Savage的「平均缺陷」。它提供了示例代碼,演示項目和電子表格,展示瞭如何對上述問題建模。