Someone please help me, I have probability mass function as follwing, How can generate 100 random values of j from this probability mass function?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
mohammed elmenshawy
am 20 Aug. 2020
Bearbeitet: Bruno Luong
am 21 Aug. 2020
Note: λ>0 and 0≤α≤1/2 and 0≤P(X=j)≤1. (Take initial valus for λ, α and p(X=j) from thir domain as you like as example)
I want to generate randomly 100 numbers (values for j) with this probability mass function . But I really have no idea how and where to start.
Can somebody help me?
Thank you in advance
0 Kommentare
Akzeptierte Antwort
Jeff Miller
am 21 Aug. 2020
If you would like to generate 100 random j values, use the function KSSV gave you to generate the f values for the probability masses (they are not all 0's after the for loop, only before it). Then:
sump = cumsum(f);
r_unif = rand(100,1);
r_j = zeros(100,1);
for i=1:100
r_j(i) = find(sump>r_unif(i),1);
end
figure;
histogram(r_j)
Weitere Antworten (2)
KSSV
am 20 Aug. 2020
- DEfine alpha and lambda values.
- DEfine j value.
- WRite your formula and substitute those values.
6 Kommentare
Bruno Luong
am 21 Aug. 2020
Bearbeitet: Bruno Luong
am 21 Aug. 2020
alpha=0.01; lambda=0.99;
f=@(j) ((1-alpha).^j-(-alpha).^j).*lambda.^j*exp(lambda*alpha)./(factorial(j)*(exp(lambda)-1));
p=f(1:22); % f is practically 0 beyond 10
c=cumsum(p); c=c/c(end);
n = 100; % 1e6;
[~,j] = histc(rand(1,n),[0 c]);
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!