2013-10-10 27 views
0

我的點的x∈[0,R]的密度指數:ρ(x)的〜E 1 X 如何從那裏取樣的N個點?如何在0和R之間採樣N個點,如果它們按指數分佈的話?

感謝,

+0

這比一個編程問題一個統計問題。你想從一個隨機函數(drand48)中獲得均勻分佈,並將該均勻分佈轉化爲指數分佈。 – ChuckCottrill

+1

,你可能會認爲一對夫婦的意見吹毛求疵,但使答案是什麼巨大的差別:1)什麼是俗稱的指數分佈密度已經'EXP(-Lambda * X)/ lambda',其中'拉姆達> 0'。這個減號非常重要! 2)指數分佈的範圍是'[0,\ infty]',如果你有一個上限'R'你有一個截斷的指數,改變了生成的方法。 3)如果你的意思是你所說的,密度與'exp(x)'成比例,你必須調整它以得到1的面積。那麼你真正想要的是什麼? – pjs

回答

1

以你面值的要求,如果你想,對於X∈呈指數級增長的密度函數[0,R]累積分佈函數原來是(exp(x) - 1)/(exp(R) - 1)。要通過反演生成此,設置CDF等於Uniform(0,1)並求解x。反轉結果是:

ln(1 + (exp(R) - 1) * U) 

其中U表示對統一(0,1)PRNG的調用。

如果你真正想要的是大多數概率人所知道的指數分佈的截斷形式,我們需要確定一個對應於你的截斷點R的隨機數的上限。在這種情況下,反轉是:

-ln(1 - [1 - exp(-lambda * R)] * U)/lambda 

如前所述,U表示對統一(0,1)PRNG的調用。這將產生在速度lambda指數,在R一個最大截斷。

1

使用inverse sampling:你生成均勻分佈的值,並將它們映射到您分配的CDF的輸出。

+1

要對此案例進行拼寫:在0-1中生成一個均勻分佈的值並取其對數。 – Joni

+0

@Joni這不會做到這一點。如果密度呈指數增長,則需要調整均勻度以使其保持在[0,R]的範圍內。如果指數衰減,則需要對數的負數和額外的比例以保持在指定的範圍內。 – pjs

相關問題