0% found this document useful (0 votes)
11 views

Monte Carlo Simulation-Project

Monte Carlo simulation is a numerical method that uses random numbers to perform simulations. It can be used to analyze complex systems. The key steps are: 1) Constructing a model of the system being analyzed. 2) Generating random numbers as inputs to simulate the system based on the model. 3) Analyzing the outputs to make inferences about the behavior and performance of the system. Some common Monte Carlo techniques include basic sampling, importance sampling, and Markov chain Monte Carlo. They allow estimating integrals and values like pi by simulating random processes.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Monte Carlo Simulation-Project

Monte Carlo simulation is a numerical method that uses random numbers to perform simulations. It can be used to analyze complex systems. The key steps are: 1) Constructing a model of the system being analyzed. 2) Generating random numbers as inputs to simulate the system based on the model. 3) Analyzing the outputs to make inferences about the behavior and performance of the system. Some common Monte Carlo techniques include basic sampling, importance sampling, and Markov chain Monte Carlo. They allow estimating integrals and values like pi by simulating random processes.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 33

Monte Carlo

Simulation
Fawaz
Dr. A. obeidat
hrahsheh
Departmen
t of physics
just
History
What is Monte Carlo (MC) method ?

The Monte Carlo method :is a numerical method


for statistical simulation which utilizes sequences
of random numbers to perform the simulation
What the meaning of MC
simulation?
●MC simulation is a versatile tool to analyse
and evaluate complex measurements
● Constructing a model of a system.
●Experimenting with the model to
draw inferences of the system’s behavior
A simulation model

Inputs outputs
Measures of
Decision and
Simulation performance or
uncontrollable
model behaviour of the
variables
system
A simulation model cont..
• Model inputs capture the environment of the problem
• The simulation model
– Conceptual model: set of assumptions that define the
system
– Computer code: the implementation of the conceptual
model
• Outputs describe the aspects of system behaviour that we
are interested in
Random numbers

• Uniform Random numbers or pseudo-random


numbers (PRN) are essentially independent
random variables uniformly Distributed over the
unit interval (0,1).

●The PRNs are good if they are uniformly


distributed,
statistically independent and reproducible.
Linear congruential generator
• Generating a random sequence of numbers {X1,X2,
…….,Xk} of length M over the interval [0,M-1]
Xi=mod(AXi-1+C,M)
R=Xi/M
♠♠♠ mod(b,M)=b-int(b/M)*M
● Starting value X0 is called “seed”

●M,A and C are nonnegative integers known

Modulus, multiplier and increment, respectively


●M is must be prime number(2³¹-1,2-1,…..)
Fortran program
program random_num
implicit none
integer,parameter::m=2**21,a=17,c=43
integer::i,n,s
real(8)::R,Xo
read*,n
!n is the number of random points
Xo=27.0d0
!------------------------
do i=1,n
s=A*Xo+c
Xo=mod(s,m)
R=Xo/m
write(*,*) R
end do
!------------------------
end program random_num
Classic Example
Find the value of ?
Use the reject and accept method
Or hit and miss method
The area of square=(2r)²
The area of circle = r²
area  of  square 4r 4
2

 
area  of  circle r 
2

area  of  circle
  4*
area  of  square
Cont..
area.of .circle

..of .dots.inside.circle
#.
area.of .square total .number .of .dots

Hit and miss algorithm


♣ Generate two sequences of N of PRN :: Ri,,Rj
♣ Xi=-1+2R i
♣ Yj=-1+2R j
♣ Start from s=zero
♣ If (X²+Y²<1) s=s+1
♣ # of dots inside circle=s
♣ total number of dots=N
  4*S / N
Fortran program
PROGRAM Pi
implicit none
integer,parameter::mm=(2**17)-1,aa=(2**7)-1
REAL(8)::X, Y, Pi
Real(8),dimension(:),allocatable::R
INTEGER::I,N
Pi = 0.0d0
READ*, N
allocate(R(n))
DO I = 1,N
CALL RANDOM_NUMBER(R(n))
CALL RANDOM_NUMBER(R(n+1))
X =-1.0d0+2.0d0*R(n)
Y=-1.0d0+2.0d0*R(N+1)
IF (X*X+Y*Y<1.0d0) Pi=Pi+1.0d0
END DO
Pi=4*Pi/N
PRINT*,Pi
END program pi
Monte Carlo Integration
♥ Hit and miss
method
♥importance
Sample mean
sampled method
method
Hit and Miss method
b

I   f ( x ) dx a, b  R
a

Generate two sequence of N of PRN (Ri,Ri&


j) j=1,2,….,N

♦0 ≤f(x) ≤Ymax ,for X Є


♦ Xi=a+Ri(a,b)
(b-a)
♦ Yi=Ymax R j
♦ start from s=0
♦ if Yj<f(x) s=s+1
♦ I=Ymax(b-a) S/N
program Hit_miss
implicit none
real(8),dimension(:),allocatable::R
real(8)::X,Y,m,a,b,integ
integer::i,N,s
read*,a !the lower value of the interval
read*,b !the upper value of the interval
M=f(b)
if (dabs(f(a))>dabs(f(b))) M=f(a)
read*,N !the number of random numbers
allocate(R(n))
s=0
do i=1,N
call random_number(R(n))
call random_number(R(n+1))
X=a+R(n)*(b-a)
Y=M*R(n+1)
if (y<f(x)) s=s+1
end do
INTEG=M*(b-a)*s/N
print*,integ
contains
real(8) function F(X)
real(8),intent(in)::X
F=2.0*X+1.0
end function F
end program Hit_miss
Cont….
If there is a part of the function under X-axis
b

s area.under.curve  f ( x)dx
  a

N Total .area ( M  R)(b  a )


b
s
 f ( x)dx  ( M  R)(b  a)
a N
s must now be corrected for the fact that the line y = -R h
en used as the baseline for the integral instead of the line
= 0. This is accomplished by subtracting the rectangular
a R(b-a). b
s
then  f ( x)dx  ( M  R)(b  a)  R(b  a)
a N
Types of distribution

Uniform distribution Gaussian or normal distribution


Sample Mean method
b a
Rewrite I   f ( x ) dx By I   h( x) ( x)dx

a
a
Where is p.d.f
b

 ( x)  0   ( x ) dx  1
a

h( x )  f ( x )  ( x )
Theorem….
If x1,x2,x3,…..,xN are i,i,d uniformly distributed on
[a,b],then  f   1 f ( x )
I   f ( x)dx  (b  a) f  ,
b N


N
i
i 1
a
Cont… 1
From the theorem choose ( x)  b  a andh( x)  (b  a) f ( x)
Then an estimate of I is
ˆ (b  a ) N
I   f (x )
N
i
i 1

You can calculate the value of error from the variance


error  var(Iˆ) F(x)

var( Iˆ) 
(b  a )
var( f )
2
f
N
var( f )   f    f 
2 2

1 N 1 N
  f ( x )  [  f ( x )]
2 2
x
N N
i i
i 1 i 1
a b
Sample Mean MC algorithm
♠ Generate sequence of N of PRN : Ri
♠Compute Xi=a+Ri (b-a)
♠ compute f(Xi) , i=1,2,3,….,N
♠ use Iˆ  (b  a )  f ( x )
N

N
i
i 1

♠ note:: if f(x) is not square integrable ,then the M


Estimate Î will still converge to the true value, but
The error estimate becomes unreliable.
program Sampled_Mean
implicit none
real(8),dimension(:),allocatable::R
real(8)::a,b,sum,integ,X
integer::i,N
read*,a ! Lower value
read*,b ! upper value
read*,n ! number of random points
allocate(R(n))
sum=0.0d0
do i=1,n
call random_number(R(n))
call random_number(R(n+1))
X=a+R(n)*(b-a)
sum=sum+f(x)
int=((b-a)/N)*sum
end do
write(*,*) "integ=",integ
contains
real(8) function F(X)
real(8),intent(in)::X
F=2*X+1.0d0
end function F
end program Sampled_Mean
Generalization to multidimensional cases
Rewrite d-dimension integral
I   f ( x ) dx by I  h( x ) ( x ) dx

Because the uniform distribution ,choose


1 1
 ( x)  d 
 (b  a ) V i i
i 1
d
h( x)  [ (b  a )] f ( x )  Vf ( x )
i i i i
i 1

 ( x)  0 and   ( x ) dx  1 

The estimate of I is
ˆ 1 N V N
I   h( x )   f ( X )
N N
i i
i 1 i 1
Importance Sampled method
is quite obvious that most of the integral comes from the
egion of the peak. But if we generate points evenly in the
nterval [a, b], most points won’t be in the peak area ,and
their contribution to the total will be relatively small….
●The idea behind importance sampling is to
f(x) into another, flatter
transform
function
which is then MC integrated
of
course there has to be
a back-transformation
to give the original integral
mportant properties of continuous and discrete pdf
Steps of Importance Sampled method
b

rewrite I   f ( x ) dx by I   h( x ) g ( x ) dx
b

a a
f ( x)
where h( x ) 
g ( x)
b x
I   h( x ) dG ( x ) where G ( x )   g ( x ) dx
a
0

Now make a variable change


u  G (x) and du  dG (x)
x  G (u ) Then
1

f (G (u ))
G (b) 1

I  du
g (G (u ))
G(a)
1
Cont….
now the value of the integration equal to the average valu
1 f (G (u ))
N
1

I   i

N g (G (u ))
i 1
1
i

he error calculated by variance method


1 f
error  var(I ) var(I )  var( )
N g
f f f
2
1 f 2
f
var( )       2
var(I )  [     ]
2

g g g
2
N g g
2

♠♠♠ note that, the function G (x) must be invertible


Example (Importance-Sampled method )
1

find I   e dx
 x2

In this region, the function decreases from 1 to


1/e. The simple exponentiale function
x
does
the same, so let’s use that for g(x) . We first
calculate have to normalize g , so we
1
1 e 1
 e dx  1 
x

0 e e
Then our normalized weighting function is
e e x

g ( x) 
e 1
Cont....
x
e x
1 x

G ( x)   g ( x)dx   dx
0 e 1 0

(1  e )e
x

G ( x) 
e 1
let u  G (x)
e 1
x  G (u )   log (1  u
1
)
e
e

Then
e 1
G (u )   log (1  u
1
)
e
i e i
Cont…
♣♣♣ note:: from the last result we redistribute the PRN
according to the pdf (g(x)) , then the new values
(i.e., G (u )) are uniform random numbers used
1
i

To find the value of


1 f (G (u ))
N
1

I  i

N g (G (u ))
i 1
1
i

on the interval of integration ,where the average


value is the estimator value for the original
integral.
program important_sample
implicit none
real(8)::sum,u,R,integ
integer::i,N
read*,N
sum=0.0
do i=1,N
call random_number(R)
u=G_inv(R)
sum=sum+f(u)/g(u)
end do
integ=sum/N
write(*,*) integ
contains
real(8) function F(x)
real(8),intent(in)::x
F=dexp(-x**2)
end function F
real(8) function g(x)
real(8),intent(in)::x
g=dexp(-x)
end function g
real(8) function G_inv(x)
real(8),intent(in)::x
G_inv=-dlog(1-x*1.718d0/2.718d0)
end function G_inv
end program important_sample
Why monte carlo ?
Method Conv.rate in Conv.rate in d-dim
one dim
1 1
Basic MC N 2
N 2

Trapezoidal rule N 2
N
2
d

Simpson’s rule N 4
N
4
d

MC is from the best methods to find the partition function


merically , then you can solve the stochastic processes.
uppose we want to solve the following integral Using an
her numerical method ,(i.e. Trapezoidal or Simpson)

I   f ( x )dx
 i i
Where i=1,2,3,……,30

o we generate a grid in the domain of integration ,suppose


grid with 10 nodes on each coordinate axis in 30 dimension cube
0,1] ³º be chosen .in this case, we have 10³º abscissas.
uppose a time of 10 ‫־‬ second is necessary for calculating
ne value of the function . Therefore , a time of
0¹ years will be necessary for evaluating the integral.
Thank you

You might also like