diff --git a/AtomicPhysics/EmpiricalMass.ipynb b/AtomicPhysics/EmpiricalMass.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..7d649902755e1f45d34e025d7fb536c1093a0aa8 --- /dev/null +++ b/AtomicPhysics/EmpiricalMass.ipynb @@ -0,0 +1,107 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Formula de Masa Semi EmpÃrica (Semi-Empirical Mass Formula - SEMF)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Importamos las librerias necesarias\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Definimos constantes\n", + "e = 1.602e-19 # Carga del electrón en Coulombs\n", + "mn = 1.675e-27 # Masa del neutrón en kg\n", + "mp = 1.673e-27 # Masa del protón en kg\n", + "c = 3.0e8 # Velocidad de la luz en m/s\n", + "a_v = 15.56e6*e # J\n", + "a_s = 17.23e6*e # J\n", + "a_c = 0.7e6*e # J\n", + "a_a = 23.28e6*e # J\n", + "a_p = 12.0e6*e # J\n", + "\n", + "# Hacemos una función para la masa semiempirica\n", + "def SEMF(Z, A):\n", + " # Verificamos la paridad\n", + " d = 1\n", + " if A%2 != 0:\n", + " d = 0\n", + " elif (A-Z)%2 != 0:\n", + " d = -1\n", + "\n", + " # Calculamos la energÃa de enlace\n", + " B = a_v*A - a_s*A**(2/3) - a_c*Z**2/A**(1/3) - a_a*(A-2*Z)**2/A + d*a_p/A**(1/2)\n", + "\n", + " # Devolvemos la masa y la energÃa de enlace\n", + " return [Z*mp + (A-Z)*mn - B/c**2, B]\n", + "\n", + "# Hacemos una función para el Z donde la masa es mÃnima\n", + "def Zmin(A):\n", + " return round((mn - mp + 4*a_a/c**2)/(2*a_c/(c**2*A**(1/3)) + 8*a_a/c**2/A))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Para A = 16 el valor de Z es 8\n", + "Para A = 121 el valor de Z es 52\n", + "Para A = 122 el valor de Z es 52\n", + "Para A = 208 el valor de Z es 83\n" + ] + } + ], + "source": [ + "# Calculamos los valores minimos de Z para A = 16, 121, 122 y 208\n", + "A = [16, 121, 122, 208]\n", + "Z = [Zmin(a) for a in A]\n", + "\n", + "# Imprimimos los valores\n", + "for i in range(4):\n", + " print(f\"Para A = {A[i]} el valor de Z es {Z[i]}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}