Polinomios de Hermite
Los primeros seis polinomios de Hermite son los siguientes.
H0(x)=1
H1(x)=2x
H2(x)=4x2-2
H3(x)=8x3-12x
H4(x)=16x4-48x2+12
H5(x)=32x5-160x3+120x
Todos los polinomios de Hermite de orden n>2 se pueden expresar en términos de los dos primeros polinomios H0(x) y H1(x), de orden cero y uno respectivamente, mediante la siguiente relación de recurrencia.
El código de la función recursiva que calcula los valores del polinomio Hn(x) es muy simple
double hermite(double x, int n){
if(n==0) return 1.0;
if(n==1) return 2*x;
return (2*x*hermite(x, n-1)-2*(n-1)*hermite(x, n-2));
}
Funciones de onda de un oscilador armónico cuántico
Nuestra tarea va consistir en calcular las funciones de onda para los distintos niveles de energía n=0, 1, 2...
Empezamos por el denominador que precisa calcular la potencia 2n y el factorial de n, n!=n·(n-1)·(n-2)...2·1.
long potencia2(int n){
long result=1;
for(int i=1; i<=n; i++){
result*=2;
}
return result;
}
long factorial(int n){
if(n==0) return 1;
long result=1;
for(int i=1; i<=n; i++){
result*=i;
}
return result;
}
Dado el nivel de energía n, se calcula la función de onda para cualquier valor de x, en términos de las tres funciones auxiliares previamente definidas.
double funcion(double x){
double y=(1.0/Math.sqrt(potencia2(n)*Math.sqrt(Math.PI)*factorial(n)))
*hermite(x, n)*Math.exp(-x*x/2);
return y;
}
En el siguiente applet se elige el nivel de energía y se representa la función de onda asociada. Las unidades de la energía e (en el eje vertical) en función de la distancia x (en el eje horizontal) se han definido al principio de esta página.
En este applet se elige el estado o nivel en el control selección situado a su izquierda titulado Estado, y a continuación se pulesa en el botón titulado Dibuja.
