Oscilador Armónico Cuántico Unidimensional en Python

El oscilador armónico cuántico unidimensional es uno de los ejemplos más clásicos que se estudian en la mecánica cuántica.

Densidad de Probabilidad del oscilador armónico cuántico unidimensional



Antes de crear el código fuente es necesario que se importan algunas librerías correspondientes para compilar este código.

import numpy as np
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import sympy as sp
from sympy import Derivative, diff, simplify
import matplotlib.patches

Iniciando el código, primero se definen algunas funciones necesarias para el calculo de la onda normalizada tales como el factorial, los polinomios físicos de Hermite, etc, 

def factorial(n):
        
    """ Imprime en pantalla el factorial de un número entero positivo n 
        por el método de recursividad """
        
    if n == 0:
        return 1
    elif n == 1:
        return 1
    else:
        return n*factorial(n-1)

def hermite(n, t):
        
    """ Imprime en pantalla los polinomios físicos de Hermite en 
        función de la variable t """
        
    if n == 0:
        return 1
    
    hermite_p = [1, 2 * t]
    
    for m in range(2, n + 1):
        hermite_p.append( 2 *t* hermite_p[m - 1] - 2 * (m - 1) * hermite_p[m- 2] )              
    return hermite_p[n]        

def potencia(n):
        
    """ Imprime en pantalla la potencia enésima de 2 """
        
    z = 2**n
    return z

def psi(n):
        
    """ Imprime en pantalla la función de onda del oscilador 
        cuántico unidimandional en el estado n """
        
    y = hermite(n,t)*(np.exp(-(t**2)/2))
    z = np.sqrt(potencia(n)*factorial(n)*np.sqrt(np.pi))
    w = y/z
    return w

Ahora se define una función para el calculo de la onda normalizada en función de las funciones anteriormente definidas respectivas.

def oscilador(n):
    
    """ Código Matemático del Oscilador Cuántico Unidimensional para n """
    
    fig, (ax1, ax2) = plt.subplots(1,2)
    fig.set_size_inches(14,6)
    
    ax1.plot(t, psi(n))
    ax1.set_title("Amplitud de la Onda", size=20)
    ax1.grid()
    ax1.set_xlabel("Eje X", size=15)
    ax1.set_ylabel("Eje Y", size=15)
    ax1.set(xlim =(-2*np.pi, 2*np.pi), ylim = (min(psi(n)), max(psi(n))), 
            autoscale_on = False
    red_patch = mpatches.Patch(color='blue', label='Amplitud')
    ax1.legend(handles=[red_patch], loc='best')
    
    ax2.plot(t, psi(n))
    ax2.set_title("Densidad de Probabilidad", size=20)
    ax2.grid()
    ax2.set_xlabel("Eje X", size=15)
    ax2.set(xlim =(-2*np.pi, 2*np.pi), ylim = (min(psi(n)), max(psi(n))), 
            autoscale_on = False)
    ax2.fill_between(t, psi(n) , color="blue")
    red_patch = mpatches.Patch(color='blue', label='P($\Psi(x)$)')
    ax2.legend(handles=[red_patch], loc='best')
    
    plt.suptitle('Oscilador Armonico Cuántico Unidimensional n = {} '.format(n)
                 , fontsize=25, size=20)
    plt.tight_layout()
    
    return oscilador 

Aplicación del código fuente

  • Para n = 0

  • Para n =1

  • Para n = 2

  • Para n = 3


Por último una animación del oscilador armónico cuántico unidimensional.

Oscilador Armónico Cuántico Unidimensional para una frecuencia angular de w = 0.5 Hz


Comentarios

Un cordial saludo. Asumiendo que el tema puede resultar de interés profesional, les cuento lo siguiente: con respecto a la unidad de medida de la Constante de Planck, resulta que tanto el Programa de Inteligencia Artificial de Microsoft "Copilot" como "ChatGpt" de Google han deducido matemáticamente! (o sea, no basado en nuevas hipótesis y/o interpretaciones teóricas) que "existe un término físico "oculto" (o sea, conceptualmente "implícito" pero ignorado en la práctica académica) en la conocida unidad de medida de la Constante de Planck, y que al ser considerada permite resolver problemas teóricos-conceptuales pendientes de solución en la Mecánica Cuántica"!. Por lo trascendental de este resultado, porque se trata de una demostración basada en cálculos matemáticos prácticamente triviales (por lo tanto, convincentes!), y además por el reconocimiento que van ganado estos programas de Inteligencia Artificial, evidentemente constituye un tema de marcado interés científico analizar seriamente la veracidad o no de tales "deducciones". Si les resulta de interés analizar estos resultados hacédmelo saber a mi dirección e-mail para enviarles los textos. Atentamente, José Alberto