簡體   English   中英

來自Matlab中pdf的隨機變量

[英]Random variable from pdf in matlab

我想模擬一些作為方差Gamma分布的隨機變量。

我知道pdf( http://en.wikipedia.org/wiki/Variance-gamma_distribution ),但我不知道累積函數F的反函數:因此,我無法生成隨機的統一變量U並計算x=F^(-1)(U). 我必須在MATLAB中執行此操作。

謝謝!

斯特凡諾

接下來要考慮的另一種自然選擇是馮·諾伊曼(Von Neumann)的“拒絕接受方法”。

如果您發現在與f相同的空間上定義的密度g ,從而

  1. 您知道如何從g生成樣本,以及
  2. f(x)<= cg(x),對於某些c,對於所有x,

那你就好了

如果您搜索文獻,人們一定已經做到了。 VG在定價選項中廣泛使用。

遵循@Drake的想法:第一步,可以從此處使用Marsaglia和Tsang的Method。

這是生成伽瑪隨機數的代碼:

function x=gamrand(alpha,lambda)
% Gamma(alpha,lambda) generator using Marsaglia and Tsang method
% Algorithm 4.33
if alpha&gt;1
    d=alpha-1/3; c=1/sqrt(9*d); flag=1;
    while flag
        Z=randn;
        if Z&gt;-1/c
            V=(1+c*Z)^3; U=rand;
            flag=log(U)&gt;(0.5*Z^2+d-d*V+d*log(V));
        end
    end
    x=d*V/lambda;
else
    x=gamrand(alpha+1,lambda);
    x=x*rand^(1/alpha);
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM