* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Simulation of Random Walk
Survey
Document related concepts
Transcript
Simulation of Random Walk • How do we investigate this numerically? • Choose the step length to be a=1 • Use a computer to generate random numbers ri uniformly in the range [0,1] • if ri p then increase x by 1 => x=x+1 • otherwise decrease x by 1 => x=x-1 • calculate total x(N) after N steps • any value in the range -N< x < +N is possible • calculate <x(N)> and <x2(N)>-<x(N)>2 by repeated trials Two trials with N=5000 steps Monte Carlo Simulation of 1-d Random Walk Random Walk in 2 dimensions • Let the walker start at the origin and choose each of the four directions with equal probability (p=1/4) • at each step choose random number ri • if ri .25 x=x+1 • if .25< ri .5 x=x-1 • if .5 < ri .75 y=y+1 • if .75 < ri 1 y=y-1 Random walk in 2 dimensions x x g b p q 1/ 4 by y g x y 0 N 2 4 pqN 4 2 p( x , N ) p( x ) 1 2 2 2 2 e 2 p( y , N ) p( y ) 1 2 2 e p(r , )rdrd p( x ) p( y )dxdy 2 1 p( r , ) e 2 2 r 2 2 2 2 r p( r ) e N r2 2N Random Walk x y 0 N N x y (1 1 0 0) 4 2 2 2 2 r x y N 2 2 rrms r 2 1/ 2 N Walk2d simulation Monte Carlo Method • Perform many trials and calculate the average of any quantity <A> • calculate the variance [<A2>-<A>2] • error in <A> [(<A2>-<A>2)/ntrial]1/2 Random Walks and the Diffusion Equation P( x , t ) P( x , t ) D 2 t x 2 • This is the diffusion equation for the probability of finding a particle at position x at time t • what is the dependence of <x(t)> and <x2(t)> on t? • the average of any function f(x) is z f ( x, t ) f ( x) P( x, t )dx z x(t ) x P( x, t )dx Multiply the diffusion equation on both sides by x and integrate over x z z P( x, t ) 2 P( x , t ) x dx D x dx 2 t x Left side becomes x t P ( x , t ) 0 Right side is zero since Hence x 0 x 0 t P ( x , t ) x 0 x To calculate <x2(t)>, two integrations by parts are needed and we find 2 x (t ) 2 D t x (t ) 2 Dt 2 Random walk and diffusion equation have the same time dependence Monte Carlo Methods Consider the problem of integration in one dimension b F = f(x) dx a The classical methods of numerical integration are based on the geometrical interpretation of the integral as the area under the curve of f(x) from x=a to x=b Integration • For some choices of f(x) the integral can be evaluated analytically eg. cos(x) • classical methods of numerical integration are based on the geometrical interpretation of the integral as the ‘area’ under the curve of the function f(x) from x=a to x=b • divide the x-axis into n equal intervals of width x, where x=(b-a)/n Rectangular Approximation cos(x) an estimate of the area is n 1 Fn f ( xi ) x ; xi a ix i 0 f(x)=cos(x) • Consider f(x)= cos(x) with a=0 and b=/2 z /2 F cos( x)dx sin( x) 0 0 • compare with numerical results • error decreases as 1/n /2 1 error decreases as 1/n Trapezoidal Rule • A better approximation to the area is given by the trapezoidal rule • rather than using f(xi)x we use the average of f(x) at the beginning and end of the interval (1/2)[f(xi+1)+f(xi)] x • error decreases as 1/n2 L O 1 1 F Mf ( x ) f ( x ) f ( x ) P x 2 N2 Q n 1 n 0 i i 1 n Simpson’s Rule • A more accurate method is to use a quadratic or parabolic interpolation procedure • Simpson’s rule error decreases as 1/n4 • adequate for well behaved functions • But a function such as f(x)= x-1/3 is poorly behaved at x=0 and would present problems Simpson’s Rule Simpson’s Rule chapter 11 integtrap 1 Fn [ f ( x0 ) 4 f ( x1 ) 2 f ( x2 ) 4 f ( x3 ) ... 3 2 f ( xn 2 ) 4 f ( xn 1 ) f ( xn )]x Can we evaluate this using random numbers? • Consider a rectangle of height H, width (b-a), and area A= H x (b-a) such that f(x) lies within the rectangle hit or miss algorithm • Compute ‘n’ pairs of random numbers • (xi , yi) • with a xi b and 0yi H • The fraction of the points that satisfy yi f( xi) is an estimate of the ratio of the integral to the area of the rectangle • Fn = A (ns / n) • where ns is the number of "splashes" below the curve and ‘n’ is the number of trials. Eg. f(x) = 4 sqrt( 1 – x2) on the interval 0 x 1 F(exact) = = 3.14159 n 50000. 100000. 150000. 200000. 250000. 300000. 350000. 400000. 450000. 500000. 550000. 600000. 650000. 700000. 750000. 800000. 850000. 900000. 950000. 1000000. Fn 3.13968 3.14356 3.14237 3.14144 3.13952 3.13959 3.13782 3.13821 3.13862 3.13882 3.13917 3.13831 3.13941 3.13977 3.14051 3.14103 3.14103 3.14103 3.14154 3.14244 F-Fn 0.00191 0.00197 0.00078 0.00015 0.00207 0.00200 0.00377 0.00338 0.00297 0.00277 0.00242 0.00328 0.00218 0.00182 0.00108 0.00057 0.00056 0.00056 0.00005 0.00085 Hit Note: all points have equal probability and points above f(x) have zero contribution to Fn but increase the fluctuations Sample mean approach • Choose the xi at random and sample the value of f(xi) • Mean-value theorem of calculus: • F = (b-a) < f > • For n trials, Fn = (b-a)(1/n) i=1,nf(xi) • where the xi are distributed uniformly on the interval a xi b f(x) = 4 sqrt( 1. – x2) [0,1] • The exact value of the integral is • = 3.14159 n 1000. 10000. Fn F-Fn n 3.17026 3.14968 0.02867 0.00809 0.86768 0.88455 Note that the standard deviation of the integrand is roughly constant but that the error decreases with n as ~ 1/n1/2 c Program Sampling n=10000 h=1. a=0. b=1. sum=0. sum2=0. m=2 do 4 i=1,n x=a+b*r250(idum) f=4.*sqrt(1.-x*x) sum=sum+f sum2=sum2+f*f sig2=sum2/i -(sum/i)*(sum/i) sig=sqrt(sig2) if((i-(i/10**m)*10**m).eq.0) then write(6,10)1.*i,sum/i,abs(3.14159-sum/i),sig m=m+1 else continue end if 10 format(1x,f10.0,3x,f10.5,3x,f10.5,3x,f10.5) 4 continue stop end Now fix the number of trials and repeat with a different set of random numbers Run n 1 2 3 4 5 6 7 8 9 10 10000. 10000. 10000. 10000. 10000. 10000. 10000. 10000. 10000. 10000. Fn 3.14968 3.13242 3.13669 3.15016 3.11856 3.14716 3.13996 3.13696 3.14782 3.14860 F-Fn n 0.00809 0.00917 0.00490 0.00857 0.02303 0.00557 0.00163 0.00463 0.00623 0.00701 0.88455 0.88498 0.89087 0.88916 0.90492 0.88839 0.89368 0.89214 0.89010 0.89147 The mean value is <Fn> = 3.14080 The standard deviation of the means is = (<Fn2> - <Fn>2 )1/2 = 9.46813E-03 Hence, n/n1/2 F = (b-a)< f > (b-a) (<f2> - <f>2 )1/2 n1/2 c program sample mean n=10000 h=1. a=0. b=1. rsum=0. rsum2=0. do 5 j=1,10 sum=0. sum2=0. do 4 i=1,n x=a+b*r250(idum) f=4.*sqrt(1.-x*x) sum=sum+f sum2=sum2+f*f sig2=sum2/i -(sum/i)*(sum/i) sig=sqrt(sig2) if((i-(i/n)*n).eq.0) then write(6,10)j, 1.*i,sum/i,abs(3.14159-sum/i),sig else continue end if 10 format(i5,1x,f10.0,3x,f10.5,3x,f10.5,3x,f10.5) 4 continue rsum=rsum+sum/n rsum2=rsum2+(sum/n)**2 5 continue rsum=rsum/10. rsum2=rsum2/10. rsig2=rsum2-rsum**2 rsig=sqrt(rsig2) write(6,*) rsum,rsig,rsum+rsig,rsum-rsig stop end In general dimension, F = V < f > V (<f2> - <f>2 )1/2 n1/2 Multidimensional Integrals Consider a small atom such as magnesium with 12 electrons To calculate electronic properties we need to integrate over all coordinates 3 x 12 = 36 dimensional integral! With 64 points for each integration, this requires 6436 ~ 1065 evaluations of the integrand => impossible! Example: =155/6 = 25.83333 integ10