Вы находитесь на странице: 1из 12

CO57: Radioactive decay

Deyan Mihaylov Merton College, University of Oxford February 2, 2010

Abstract Employing the Monte-Carlo numerical approach to follow the decay of a sample of Uranium-234 to the stable Lead-206 over a certain finite period of time. The quantities of each of the substances over time are plotted and compared to the analytical solution.

1 Introduction
We start with a certain sample of N atoms of a radioactive substance (Uranium-234 in the particular case). We know that the subsequent decays are as follows:
234

U 230Th 230 Th 226Ra 226 Ra 222Rn 222 Rn 206Pb

half-life half-life half-life half-life

2.5105 y 8104 y 1.62103 y 4 days

With each of the substances is associated a constant, representing the half-life of the element, that is, in what time we expect half of the present quantity of atoms to have decayed into the next substance. The time period over which we are investigating this cascade must be reasonable with the longest half-life of the elements involved in the decays, and for the purpose of this research we use a value of 500 000 years. Obviously, the half-life of Radon-222 is very short compared with this time span, so we can safely assume that all atoms of this substance will decay into Lead-206. While doing the analytical approach, we can ignore this decay, stating that Radium-226 decays directly to Lead-206. We label for simplicity the quantities with indices from 1 to 4 respectively, and denote with ( ) the amount of the i-th substance at time t and with a constant related to the half-life of the element. The overall quantity of atoms doesnt change over time: ( )+ ( )+ ( )+ ( )= =

The constants

are given by: =

ln 2

where

is the half-life of the element.

Furthermore, the decays are irreversible, that is, once an atom decays, it cannot go back and retrieve its previous nature. We can now write the equations that govern the processes, i.e. the change of quantities with time: = = =

The solutions to these equations, taking into account the relevant initial conditions, are as follows: ( )= ( )= ( )= ( )= )( ) + ( )( )

+ ( )( ) ( ( ( ) + ( ) + ( ))

These will come in use when we finish the numerical computation and want to compare the obtained results to the analytical solution, so we would be able to comment on the accuracy and positive and negative sides of using this method. Detailed derivation of these solutions is given in Appendix A.

2 Technical details
The method that we use is the Monte-Carlo method. We start with N atoms of Uranium-234 and want to follow the decay through the substances described in the previous section. A very important role in the method has the time interval. Starting from year 0, we look into the system at equal time intervals. After each time interval has elapsed, for each of the N atoms we must decide whether or not it is going to decay. Thus we obtain the number of atoms of each substance at equal time intervals, which we can then plot. For each atom, its probability to decay in a time interval is purpose of the practical computation, we will be using: ln 2 0.693 2 CO57: Radioactive decay Deyan Mihaylov . For the

Since this is a probability and its value must not exceed 1, the time constant must be small compared to the half-life of each of the members of the sequence. On the other hand, since we have to divide the overall time span of 500 000 years into time intervals and look into each atom at the end of each time interval, we must choose a reasonable value, which will allow us to do the calculation quick enough. After trying different values and taking into account the accuracy and time needed for the computation, I chose a time interval of 250 years To decide whether a particular atom will decay or not, we compare this probability with a random number between 0 and 1, which we generate. If this number is less than the probability, the atom decays to the next member of the sequence, otherwise preserves its nature. This analysis is done for each atom at the end of each time interval, unless the atom has reached the stable substance. Finally, we must notice and take care of the fact that the half-lives of Radium226 and Radon-222 are short. A possible way to improve our method is to replace with its better approximation 1 The full code of the program which was used to obtain the results in this report is appended at the end of this document. It is designed to return a table of numbers the quantities, first, according to the numerical approach and second, obtained using the analytical solution.

3 Results
For N=1000 atoms the amounts at the end of the 500 000-year period are as follows:
234

Numerical method Analytical solution

U 229 (22.9%) 250 (25%)

230

Th 109 (10.9%) 111 (11.1%)

226

Ra

222

206

4 (0.4%) 2 (0.2%)

0 (0%) -

Pb 658 (65.8%) 637 (63.7%)

Figure 1 represents the graph of the numerical results, the values for each substance plotted against the time. We can see that the amount of Uranium-234 is decreasing at any time as atoms are decaying. More interesting is the behaviour of Thorium-230, which initially increases until it reaches a peak value (at about twice its half-life), and begins to descend. The amount of Radon-222 at any time is 0, which confirms our initial assumption that we wont have any atoms of this substance. Figure 2, on the other hand, represents the analytical plot over the time, i.e., the predicted values by theory for each of the substances. The shape of the curves reminds that of the computational results, which confirms that our program is

3 CO57: Radioactive decay Deyan Mihaylov

correctly designed. A difference that could be seen with the previous graph is that here the values of Radium-226 obviously have a peak, however small it is.

4 Conclusions and comments


In the simulation, the amount of Uranium-234 is decreasing at any time, as we expected, since the total number of atoms remains constant and the processes are irreversible. The amount of Radium-226 is never changing rapidly, but is rather oscillating about a certain value just above the 0, due to its short half-life. The amount of Lead-206 is increasing at any time, but with different rate. This is due to the varying amount of other substances, which are providing fuel for the decay to Lead-206.

Figure 1: Numbers of atoms, predicted by the computation, against time.

The shape of the analytical plot of Radium-226, together with the similar behaviour of Thorium-230, could be explained again with the varying amounts of substances. As atoms are decaying, the quantities of Thorium and radium are

4 CO57: Radioactive decay Deyan Mihaylov

increasing, up to a certain point, where their decrement due to decay is more rapid than their increment due to decay of previous members. We can see that the errors of the data produced by the simulation are less than 3 percent at the end, which implies that the method is suitable for this problem, given that the initial amount of atoms is sufficiently large. There are 2 main sources of uncertainty related to this algorythm. 1) The time interval however small it is, it cannot truly simulate real decay of particles, since in reality they decay at any given time, and this affects our results in the end. One can improve the simulation by making the time interval smaller and smaller, but will need considerably more powerful computing facilities. If we make the time interval negligibly small (i.e. 1 day), we would achieve almost perfect simulation of real data, and we could also observe the changing amount of Radon-222 with time. However, even with a sample of 500 or 1000 atoms we would need unreasonable amount of time to obtain the results.

Figure 2: Numbers of atoms, predicted by the analytical equations, against time.

5 CO57: Radioactive decay Deyan Mihaylov

2) This method relies on random numbers, which is theoretically acceptable, as long as the numbers are truly random. However, generating random numbers is an extremely sophisticated process, and most programming environments actually rely on certain algorithms to produce them, which disrupts the initial idea of the method. While in this case we can ignore this effect and still obtain satisfying results, for other problems this is going to cause major discrepancies between the obtained and predicted results. 3) In fact the process of radioactive decay of Uranium-234 to the stable Lead206 involves several other stages (3 isotopes of Polonium, 2 isotopes of Bismuth and 2 other isotopes of Lead [1]), which the solution to this problems does not take into account. Some of these elements have a half-life considerably longer than that of Radon-222. Therefore, we should expect to have a certain (although not considerably high) discrepancy between the predicted theoretical and simulated data and the actual quantities if the experiment is conducted in a laboratory. However, this model represents the real scenario to an acceptable degree of accuracy. This means that, after being modified to represent the conditions of a similar problem, it could be used again to produce satisfactory predictive data. The method itself is widely used in Physics and Engineering, as well as in banking. Its true value could be estimated when the problem that is posed could not be solved analytically and the most feasible approach is the numerical.

References
[1] Columbia Electronic Encyclopedia (6th Edition) Columbia University Press. [2] C. W. Wiles, & A. OHare, Handbook of the Physics Computing Course, http://www-teaching.physics.ox.ac.uk/computing/Programming/cmanual/handbook C.html.

Appendix A
Derivation of the equations governing the radioactive decay = = = with initial conditions = =0 6 CO57: Radioactive decay Deyan Mihaylov

= Starting with the first equation:

= =

=0

=0

ln

= =

= =

+ =

= =

=0

which completes the solution of the first equation. We can substitute the result into the second equation: = + = =

This is a first-order linear ordinary differential equation. The integrating factor for it is: = = and solving the equation by multiplying it with the IF: + = =0 7 CO57: Radioactive decay Deyan Mihaylov
( ( ( )

+ + = = = 0= =

= =

) )

=0

and thus the solution to the second equation is completed. We again substitute this result into the third equation: = = = + + + + = = = = 0= = = = (
(

= = =


( ) )

( (

) )

=0

=0 1 1 ( )(

+ +

1 1 )

+ +

)( ) +

and thus the solution to the equation becomes: = = CO57: Radioactive decay ( )( ) + ( )( ) Deyan Mihaylov

( )( )

( )( ) 8

( )(

)( )

)(

We have so far derived solutions to all three of the equations. However, we still need to find an expression for the amount of the 4th substance over time. We shall use the fact that the overall amount of atoms doesnt change over time: ( )+ ( )+ = ( + ( )+ ( )= + )

Appendix B
This is the source code of the program which generates the results described and commented in this report. It is written in C programming language and the source code is ready to paste and run. It requires as an input the initial amount of Uranium in numbers of atoms. /* the program begins with including the libraries which we are going to need for running the program */ #include <stdio.h> /* to perform input/output operations */ #include <math.h> /* to be able to use mathematical functions (such as ln */ #include <stdlib.h> #include <time.h> /* these two are needed for the random numbers generator */ int main () { long int N, years=500000, time=250, i, j, k, year; /* the body of the program starts with declaring and initializing several variables N is the number of atoms (to be set by the user), years is the span over which we are solving the problem, time is the time interval, and i, j, k and time are counters for the various loops that we are going to use throughout the program */ double l[4]; l[0]=0.693/(2.5*pow(10,5)); l[1]=0.693/(8*pow(10,4)); l[2]=0.693/(1.62*pow(10,3)); l[3]=0.693/(4.0/365); /* the l array contains the l constants for the elements involved in the decay */ double random, probability[4]; probability[0]=l[0]*time; probability[1]=l[1]*time; probability[2]=1-exp(-l[2]*time); probability[3]=1-exp(-l[3]*time);

9 CO57: Radioactive decay Deyan Mihaylov

/* the array probability is used to store the probability constants for each element, so that they can be quickly accessed further in the program */ scanf("%d", &N); /* prompting the user to input the number of atoms to start with */ int element[N], numbers[2001][6], predicted[2001][6]; /* here were initializing the core elements of the program the three arrays which are going to store the information about the decay process. First, element[N] will have size N and will initially be filled with values of 1. The value in each slot will represent what kind of atom is this. As the time advances, the program is going to make changes in this array, amending the number in the slot as the atom decays. However, since in the end we want to know the data at any time during the 500 000 years, and since the data in element[N] is going to change dynamically, we have to store the data in a new array, which this time is 2-dimensional. After each time interval has elapsed and some atoms have decayed, we will store the state of the system at that time in the numbers[2001][6] array. Finally, the predicted[2001][6] has the same purpose but its going to store the predicted values by the analytical solution. */ for(i=0;i<2001;i++) { for(j=0;j<6;j++) { numbers[i][j]=0; predicted[i][j]=0; } } /* this array initializes the values in the two 2-dimensional arrays described above */ for(i=0;i<N;i++) {element[i]=1;} for(year=0;year<=years;year+=time) { /* we start a loop which is running over all the 500 000 years with step equal to the time constant */ for(j=0;j<4;j++) { /* further, we start another loop within it, with 4 cycles, for each of the decays occurring in this system */ for(i=0;i<N;i++) { /* for each of the decays, we have to run through all the atoms and decide whether it will decay or not */ 10 CO57: Radioactive decay Deyan Mihaylov

random=drand48(); if(probability[j]>random && element[i]==j+1) { element[i]=j+2; } /* the code above generates a random number and compares it with the associated probability constant, thus deciding whether a decay will occur or not. If a decay is to occur, the respective slot in the numbers[N] array is changed. The j+2 expression is just an algebraic statement, allowing us to use the indices in the decays loop. Since the 0th loop is judging the decay to substance 2, the 1st to substance 3 etc. we simply add 2 to the index and use this value. */ } } k=year/time; numbers[k][0]=year; predicted[k][0]=year; /* here we start filling the 2-dimensional arrays with data about the present condition of the system, by storing the year from the start of the decay */ for(i=0;i<N;i++) { switch(element[i]) { case 1: numbers[k][1]++; break; case 2: numbers[k][2]++; break; case 3: numbers[k][3]++; break; case 4: numbers[k][4]++; break; default: numbers[k][5]++; } } /* by running over the elements[N] array were recording the number of atoms of each substance */ predicted[k][1]=(int)nearbyint(N*exp(-l[0]*year)); predicted[k][2]=(int)nearbyint(N*(l[0]/(l[1]-l[0]))*(exp(l[0]*year)-exp(-l[1]*year))); predicted[k][3]=(int)nearbyint(N*l[0]*l[1]*(exp(l[0]*year)/((l[0]-l[1])*(l[0]-l[2]))+exp(-l[1]*year)/((l[1]l[2])*(l[1]-l[0]))+exp(-l[2]*year)/((l[2]-l[0])*(l[2]-l[1])))); predicted[k][5]=(int) N-(predicted[k][1]+predicted[k][2]+predicted[k][3]); } /* were then also computing and recording the theoretically predicted values for that time by the equations that govern the decays */ FILE *fout; if ((fout = fopen("decay.txt", "w")) == NULL) 11 CO57: Radioactive decay Deyan Mihaylov

{ printf("Cannot open %s\n", "output.data"); exit(EXIT_FAILURE); } /* for easiness if use were also outputting the results from the simulation to a text file, to be used with other programs, for plotting etc. */ for(i=0;i<=years/time;i++) { printf("Year %d - Monte Carlo: %d %d %d %d %d Analytical: %d %d %d %d\n", numbers[i][0], numbers[i][1], numbers[i][2], numbers[i][3], numbers[i][4], numbers[i][5], predicted[i][1], predicted[i][2], predicted[i][3], predicted[i][5]); fprintf(fout, "%d %d %d %d %d %d %d %d %d %d\n", numbers[i][0], numbers[i][1], numbers[i][2], numbers[i][3], numbers[i][4], numbers[i][5], predicted[i][1], predicted[i][2], predicted[i][3], predicted[i][5]); } /* finally, we show the data which the program has produced, and at the same time store it in the file */ fclose(fout); exit(EXIT_SUCCESS); }

12 CO57: Radioactive decay Deyan Mihaylov

Вам также может понравиться