mercredi 8 avril 2020

In Matlab: Generating random numbers from Alpha-stable pdf which expends in time (in a loop)

In Matlab, the following line of code generates 100000 random numbers from an Alpha-stable pdf (here Alpha=0.5):

 Rand = random('Stable',0.5,0,1,0,[1,100000]);  

The distribution of Rand exactly matches the the 'theoretical' curve generated by

 PDF = makedist('Stable','alpha',0.5,'beta',0,'gam',1,'delta',0);
 x = -5:.1:5;
 PDF = pdf(PDF,x);
 figure
 plot(x,PDF,'r-.');

(to check, use, e.g.:)

 Data=Rand;
 Middle=0.01; 
 PosBinsUP=10.^(log10(Middle):0.05:log10(max(abs(Data))));
 PosBinsDown=10.^(log10(Middle):0.05:log10(abs(min(Data))));
 xbins=[-flip(PosBinsDown) -Middle:0.2:Middle PosBinsUP];
 [xpdf ypdf]= plotpdfc(Data, xbins);
 plot(xpdf(1:end-1),ypdf(1:end-1),'Or');
 xlim([-5,5]); 

My question is:

How do I generate these Rands in a loop over 't', such that their distribution will expand in time, namely P(Rand) = t^(-1/Alpha) W(Rand/ t^(1/Alpha))?




Aucun commentaire:

Enregistrer un commentaire