what is the problem of my code doing inverse Poisson cumulative distribution?
Mostrar comentarios más antiguos
Dear friends,
I write a code doing inverse Poisson cumulative distribution. However, the code get same results compared to icdf function when u>0.5. When u<0.5, the result is 1 less than the result from icdf.
function m = iPoisson(lambda,u)
p(1)=exp(-lambda)/factorial(0);
absolute=zeros(1,1000);
summation=p(1);
%u=0.6322;
%u=rand(1);
for k=2:1000
p(k)=lambda.^(k-1)*exp(-lambda)./factorial(k-1);
summation=summation+p(k);
distance(k-1)=abs(summation-u);
[a,b]=min(distance);
m=b;
end
end
2 comentarios
Torsten
el 18 de Oct. de 2022
Use a while-loop instead of a for loop for which you don't know when to stop it (do you know how large factorial(1000) is ?) .
Daniel Niu
el 18 de Oct. de 2022
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Statistics and Machine Learning Toolbox en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!