Generating random numbers from Alpha-stable pdf which expends in time (in a loop)
Ältere Kommentare anzeigen
I asked first on another site, decided to ask here because I go no answers.
The following line of Matlab 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))?
4 Kommentare
Jeff Miller
am 14 Apr. 2020
It isn't clear what you are trying to do. Is the idea to use a different value of alpha for each t, and then generate one random value with that alpha, something like this?
for t=1:1000
alpha = f(t); % not sure what function you have in mind
Rand(t) = random('Stable',alpha,0,1,0,[1,1]);
end
Erez
am 15 Apr. 2020
Erez
am 15 Apr. 2020
Jeff Miller
am 16 Apr. 2020
Sorry, I don't really understand this distribution, so I don't have anything useful to contribute. It just seems that if you want a random number from the stable distribution at each t, then your only option is to adjust the stable's parameter values to be whatever you want for each t.
Antworten (0)
Kategorien
Mehr zu Random Number Generation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!