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.