Date: Jan 13, 2013 3:55 PM
Author: Derek Goring
Subject: Re: PDF to CDF in MATLAB

On Monday, January 14, 2013 8:40:09 AM UTC+13, Hemming  wrote:
> Hi!
>
> Im trying to extract a scattering angle for a photon using the Klein-Nishina scattering angle distribution (KN in the code) and for this I need the CDF (of KN) to be able to use the Monte Carlo method when that is achieved. All i've managed so far is to plot the PDF between 0 degrees and Pi to see that it looks alright, and that it has that "peanut shape". Ive tried to use the built in CDF function but it seems very slow.
>
>
>
> E_gamma=0.140;
>
> alpha=0.511;
>
> P=zeros(3142,1);
>
> KN_matrix=zeros(3142, 1);
>
>
>
> for k=1:3142
>
> j=(k-1)/1000;
>
> PE=1/(1+((E_gamma/alpha)*(1-cos(j))));
>
> KN=(PE^2*(PE+(1/PE)-1+(cos(j))^2))/2;
>
> KN_matrix(k,1)=(KN);
>
> plot(j,KN_matrix(k,1))
>
> hold on
>
> end
>
>
>
> Thanks!
>
> axis equal


Instead of plotting in a loop, define vectors:
j=[0:3141]'/1000;
PE=1/(1+((E_gamma/alpha)*(1-cos(j))));
KN_matrix=(PE.^2.*(PE+(1./PE)-1+(cos(j)).^2))/2;
plot(j,KN_matrix)

Notice the dots before the operators to get element-by-element multiplication, exponentiation, etc.