In [1]:

```
import math
#Variable declaration
h = 6.62e-034; # Planck's constant, Js
h_bar = h/(2*math.pi); # Reduced Planck's constant, Js
m = 1.67e-027; # Rest mass of proton, kg
e = 1.602e-019; # Energy equivalent of 1 eV, J
c = 3.00e+008; # Speed of light, m/s
delta_x = 8.0e-015; # Size of the nucleus, m
#Calculations
delta_p = h_bar/(2*delta_x*e); # Uncertainty in momentum of proton from Heisenberg Uncertainty Principle, eV-s/m
p_min = delta_p; # Minimum momentum of the proton inside the nucleus, eV-s/m
K = (p_min*c)**2*e/(2*m*c**2*1e+006); # The minimum kinetic energy of the proton in a medium sized nucleus, MeV
#Result
print "The minimum kinetic energy of the proton in a medium sized nucleus = %4.2f MeV"%K
```

In [3]:

```
import math
#Variable declaration
c = 3.00e+008; # Speed of light, m/s
e = 1.602e-019; # Energy equivalent of 1 eV, J
m_e = 0.511; # Rest mass energy of electron, MeV
m_p = 938.3; # Rest mass energy of proton, MeV
h = 6.62e-034; # Planck's constant, Js
A = 40; # Mass number of Ca-40
r0 = 1.2; # Nuclear radius constant, fm
#Calculations&Results
R = r0*A**(1./3); # Radius of Ca-40 nucleus, fm
print "The radius of Ca-40 nucleus = %3.1f fm"%R
lamda = 2.0; # de-Broglie wavelength to distinguish a distance at least half the radius, fm
# Electron energy
E = math.ceil(math.sqrt(m_e**2+(h*c/(lamda*e*1e+006*1e-015))**2)); # Total energy of the probing electron, MeV
K = E - m_e; # Kinetic energy of probing electron, MeV
print "The kinetic energy of probing electron = %3d MeV"%math.ceil(K)
# Proton energy
E = math.ceil(math.sqrt(m_p**2+(h*c/(lamda*e*1e+006*1e-015))**2)); # Total energy of the probing electron, MeV
K = E - m_p; # Kinetic energy of probing electron, MeV
print "The kinetic energy of probing proton = %3d MeV"%math.ceil(K)
#answers differ due to rounding errors
```

In [4]:

```
#Variable declaration
A_U238 = 238; # Mass number of U-238
A_He4 = 4; # Mass number of He-4
r0 = 1.2; # Nuclear radius constant, nm
#Calculations&Results
R_U238 = r0*A_U238**(1./3); # Radius of U-238 nucleus, fm
R_He4 = r0*A_He4**(1./3); # Radius of He-4 nucleus, fm
print "The radii of U-238 and He-4 nuclei are %3.1f fm and %3.1f fm repectively"%(R_U238, R_He4)
ratio = R_U238/R_He4; # Ratio of the two radii
print "The ratio of radius to U-238 to that of He-4 = %3.1f"%ratio
```

In [5]:

```
#Variable declaration
h = 6.62e-034; # Planck's constant, Js
c = 3.00e+008; # Speed of light, m/s
e = 1.602e-019; # Energy equivalent of 1 eV, J
B = 2.0; # Applied magnetic field, T
mu_N = 3.15e-008; # Nucleon magnetic moment, eV/T
#Calculations
mu_p = 2.79*mu_N; # Proton magnetic moment, eV/T
delta_E = 2*mu_p*B; # Energy difference between the up and down proton states, eV
f = delta_E*e/h; # Frequency of electromagnetic radiation that flips the proton spins, Hz
lamda = c/f; # Wavelength of electromagnetic radiation that flips the proton spins, m
#Results
print "The energy difference between the up and down proton states = %3.1e eV"%delta_E
print "The frequency of electromagnetic radiation that flips the proton spins = %2d MHz"%(f/1e+006)
print "The wavelength of electromagnetic radiation that flips the proton spins = %3.1f m"%lamda
```

In [6]:

```
#Variable declaration
c = 3.00e+008; # Speed of light, m/s
e = 1.602e-019; # Energy equivalent of 1 eV, J
u = 931.5; # Energy equivalent of 1 amu, MeV
m_n = 1.008665; # Mass of a neutron, u
M_H = 1.007825; # Mass of a proton, u
M_He = 4.002603; # Mass of helium nucleus
M_Be = 8.005305; # Mass of Be-8, u
#Calculations&Results
B_Be = (4*m_n+4*M_H - M_Be)*u;
B_Be_2alpha = (2*M_He - M_Be)*u;
print "The binding energy of Be-8 = %4.1f MeV and is positive"%B_Be
if (B_Be_2alpha > 0):
print "The Be-4 is stable w.r.t. decay into two alpha particles.";
else:
print "The Be-4 is unstable w.r.t. decay into two alpha particles since the decay has binding energy of %5.3f MeV"%B_Be_2alpha
```

In [7]:

```
#Variable declaration
Z = 92; # Atomic number of U-238
A = 238; # Mass number of U-238
#Calculations
E_Coul = 0.72*Z*(Z-1)*A**(-1./3); # Total Coulomb energy of U-238, MeV
#Result
print "The total Coulomb energy of U-238 = %3d MeV"%E_Coul
```

In [8]:

```
#Variable declaration
u = 931.5; # Energy equivalent of 1 amu, MeV
m_p = 1.007825; # Mass of proton, amu
m_n = 1.008665; # Mass of neutron, amu
M_Ne = 19.992440; # Mass of Ne-20 nucleus, amu
M_Fe = 55.934942; # Mass of Fe-56 nucleus, amu
M_U = 238.050783; # Mass of U-238 nucleus, amu
A_Ne = 20; # Mass number of Ne-20 nucleus
A_Fe = 56; # Mass number of Fe-56 nucleus
A_U = 238; # Mass number of U-238 nucleus
#Calculations
BE_Ne = (10*m_p+10*m_n-M_Ne)*u; # Binding energy of Ne-20 nucleus, MeV
BE_Fe = (26*m_p+30*m_n-M_Fe)*u; # Binding energy of Fe-56 nucleus, MeV
BE_U = (92*m_p+146*m_n-M_U)*u; # Binding energy of U-238 nucleus, MeV
#Results
print "The binding energy per nucleon for Ne-20 : %4.2f MeV/nucleon"%(BE_Ne/A_Ne)
print "The binding energy per nucleon for Fe-56 : %4.2f MeV/nucleon"%(BE_Fe/A_Fe)
print "The binding energy per nucleon for U-238 : %4.2f MeV/nucleon"%(BE_U/A_U)
```

In [9]:

```
import math
#Variable declaration
N_A = 6.023e+023; # Avogadro's number
T = 138*24*3600; # Half life of Po-210, s
R = 2000; # Activity of Po-210, disintegrations/s
M = 0.210; # Gram molecular mass of Po-210, kg
#Calculations
f = 1/3.7e+010; # Conversion factor to convert from decays/s to Ci
A = R*f/1e-006; # Activity of Po-210, micro-Ci
N = R*T/math.log(2); # Number of radioactive nuclei of Po-210, nuclei
m = N*M/N_A; # Mass of Po-210 sample, kg
#Results
print "The activity of Po-210 = %5.3f micro-Ci"%A
print "The mass of Po-210 sample = %3.1e kg"%m
```

In [10]:

```
import math
#Variable declaration
T = 110; # Half life of F-18, min
f_remain = 0.01; # Fraction of the F-18 sample remained
#Calculations
t = -math.log(0.01)/(math.log(2)*60)*T; # Time taken by the F-18 sample to decay to 1 percent of its initial value, h
#Result
print "The time taken for 99 percent of the F-18 sample to decay = %4.1f h"%t
```

In [11]:

```
import math
#Variable declaration
N_A = 6.023e+023; # Avogadro's number
M = 10e+03; # Mass of the U-235, g
M_U235 = 235; # Molecular mass of U-235, g
t_half = 7.04e+008; # Half life of U-235, y
#Calculations
N = M*N_A/M_U235; # Number of U-235 atoms in 10 kg sample
R = math.log(2)*N/t_half; # The alpha activity of 10 kg sample of U-235, decays/y
#Result
print "The alpha activity of 10 kg sample of U-235 = %3.1e Bq"%(R/(365.25*24*60*60))
```

In [14]:

```
#Variable declaration
u = 931.5; # Energy equivalent of 1 u, MeV
M_U230 = 230.033927; # Atomic mass of U-230, u
m_n = 1.008665; # Mass of a neutron, u
M_H = 1.007825; # Mass of hydrogen, u
M_U229 = 229.033496; # Gram atomic mass of U-230
#Calculations&Results
Q = (M_U230 - M_U229 - m_n)*u; # Q-value of the reaction emitting a neutron
if (Q < 0):
print "The neutron decay in this reaction is not possible."
else:
print "The neutron decay in this reaction is possible."
Q = (M_U230 - M_U229 - M_H)*u; # Q-value of the reaction emitting a proton
if (Q < 0):
print "The proton decay in this reaction is not possible."
else:
print "The proton decay in this reaction is possible."
```

In [13]:

```
#Variable declaration
u = 931.5; # Energy equivalent of 1 u, MeV
M_Fe55 = 54.938298; # Atomic mass of Fe-55, u
M_Mn55 = 54.938050; # Atomic mass of Mn-55, u
m_e = 0.000549; # Mass of the electron, u
#Calculations&Results
Q = (M_Fe55 - M_Mn55 - 2*m_e)*u; # Q-value of the reaction undergoing beta+ decay, MeV
if (Q < 0):
print "The beta+ decay is not allowed for Fe-55"
else:
print "The beta+ decay is allowed for Fe-55"
Q = (M_Fe55 - M_Mn55)*u; # Q-value of the reaction undergoing electron capture, MeV
if (Q < 0):
print "Fe-55 may not undergo electron capture"
else:
print "Fe-55 may undergo electron capture"
```

In [15]:

```
#Variable declaration
def check_allowance(Q, decay_type):
if (Q < 0):
print "The %s is not allowed for Ac-226"%decay_type
else:
print "The %s is allowed for Ac-226"%decay_type
u = 931.5; # Energy equivalent of 1 u, MeV
M_Ac226 = 226.026090; # Atomic mass of Ac-226, u
M_Fr222 = 222.017544; # Atomic mass of Fr-222, u
M_He4 = 4.002603; # Atomic mass of He-4, u
M_Th226 = 226.024891; # Atomic mass of M_Th226, u
M_Ra226 = 226.025403; # Atomic mass of M_Ra226, u
m_e = 0.000549; # Mass of the electron, u
#Calculations
# Alpha Decay
Q = (M_Ac226 - M_Fr222 - M_He4)*u; # Q-value of the reaction undergoing alpha decay, MeV
check_allowance(Q, "alpha decay");
# Beta- Decay
Q = (M_Ac226 - M_Th226)*u; # Q-value of the reaction undergoing beta- decay, MeV
check_allowance(Q, "beta- decay");
# Beta+ Decay
Q = (M_Ac226 - M_Ra226 - 2*m_e)*u; # Q-value of the reaction undergoing beta+ decay, MeV
check_allowance(Q, "beta+ decay");
# Electron Capture
Q = (M_Ac226 - M_Ra226)*u; # Q-value of the reaction undergoing electron capture, MeV
check_allowance(Q, "electron capture");
```

In [16]:

```
#Variable declaration
u = 931.5; # Energy equivalent of 1 u, MeV
E_ex = 0.072; # Energy of the excited state, MeV
#Calculations
M = 226*u*1e+0; # Energy equivalent of atomic mass of Th-226, MeV
x = E_ex/(2*M); # The error introduced in the gamma ray energy by approximation
#Result
print "The error introduced in the gamma ray energy by approximation = %3.1e"%x
```

In [17]:

```
import math
#Variable declaration
t_half = 4.47e+009; # The half life of uranium ore, years
R_prime = 0.60; # The ratio of Pb206 abundance to that of U238
#Calculations
t = t_half/math.log(2)*math.log(R_prime + 1); # Age of the uranuim ore, years
#Result
print "The age of U-238 ore = %3.1e years"%t
```

In [18]:

```
import math
#Variable declaration
t_half = 5730; # The half life of uranium ore, years
R0 = 1.2e-012; # The initial ratio of C14 to C12 at the time of death
R = 1.10e-012; # The final ratio of C14 to C12 t years after death
#Calculations
# As R = R0*math.exp(-lambda*t), solving for t
t = -math.log(R/R0)*t_half/math.log(2); # Age of the bone, years
#Result
print "The %3d years age of bone does not date from the Roman Empire."%math.ceil(t)
```