Está en la página 1de 7

NUMERICA

ESTUDIO MEDIANTE SIMULACION


DE UNA PARTICULA
EN UN POZO DE POTENCIAL FINITO
DIEGO ARBOLEYA DEVESA. Metodos numericos y sus aplicaciones a la Fsica, Universidad de Oviedo
El objetivo fundamental de este trabajo ha sido
la b
usqueda de los valores y funciones propias de
una partcula masiva no relativista en un pozo
de potencial finito mediante m
etodos computacionales. Adem
as, se han realizado varias anotaciones y estudios adicionales al problema propuesto.

I.

MOTIVACION

El problema de la partcula en una caja describe,


como no poda ser de otra manera, el movimiento de
una partcula en cierto espacio limitado por barreras
de potencial. Este modelo nos proporciona uno de los
pocos problemas en mec
anica cu
antica que puede ser resuelto analticamente debido a su simplicidad. Esto es
tremendamente u
til como propuesta academica para resolver en esta asignatura. A lo largo de todo el curso
hemos estudiado varios metodos numericos y sus aplicaciones a la resoluci
on de ciertos problemas (en general
matem
aticos), de forma que ahora, con cierto grado de
conocimiento, enfocaremos nuestros esfuerzos en resolver
varios casos fsicos del
area de la Fsica at
omica, nuclear
y de partculas.
II.

FUNDAMENTO TEORICO

Consideramos una partcula confinada en una caja con


paredes a un cierto potencial. Para este caso, la ecuacion
de Schr
odinger tiene la forma:

~2 d2 (x)
+ V (x)(x) = E(x)
2m dx2

En nuestro problema, la funci


on de onda se define como:

1 si x < 0.5
(x) = 2 si 0.5 < x < 0.5
si x > 0.5
3
En la secci
on interior del pozo el resultado para la funcion
de onda es:
2 = A sin(kx) + B cos(kx)
En el caso exterior al pozo se halla:
1 = F ex + Gex

3 = Hex + Iex

Una vez con esto, junto a las condiciones iniciales y de


contorno, las funciones propias son:

En nuestro caso, el pozo tiene la siguiente forma.

Para calcular las funciones propias, integraremos la


ecuacion de Schrodinger utilizandos dos metodos computacionales distintos: Metodo de diferencias finitas y
Metodo de Numerov. Para hallar los valores propios de
la energa utilizaremos el Shooting Method. Para llevar a
cabo la integracion numerica y posteriores calculos tendremos en cuenta las simetras de las funciones propias,
de tal forma que integraremos desde 0 a L solamente.

III.

SHOOTING METHOD

Mediante los programas que explicaremos en las secciones siguientes, se calcularan los (u) correspondientes
a los valores propios de la energa . Como las funciones
(u) son de facil computo (ya que consiste en iterar
ciertas expresiones, conocidos varios parametros) la
dificultad del problema radicara en el calculo (o m
as
adecuadamente, estimacion) de los valores propios de
la energa, a priori totalmente desconocidos, tales que
nuestras funciones de onda cumplan ciertos requisitos.
Para esta tarea, dise
namos dos programas para aplicar
el shooting method (uno para cada metodo n
umerico que
vayamos a usar). El funcionamiento de este metodo es
similar al procedimiento de la biseccion, que ya hemos

2
visto. Podemos destacar las etapas de este algoritmo
como sigue:

De forma que:


1. Comenzamos con dos semillas para , de forma que


tenemos una cota mnima (0 ), y una cota maxima
(1 ).
2. Una condici
on obligada de nuestro modelo es que
la funci
on decaiga a cero en el infinito. En nuestro
caso tomamos el infinito en u = 2 . Por lo tanto,
calculamos 0 (u = 2) con 0 y 1 (u = 2) con 1
con el metodo correspondiente.

d2 (x)
dx2


=

2m
(V (x) E)(x)dx
~2

Se realizan a
un mas simplificaciones. Podemos definir
dos nuevas variables para reducir mas nuestro problema.
La primera es u = xa , tal que:


3. Estos dos valores deben ser de signo opuesto (si
no fuesen de signo opuesto, no habra un que
resolviese el problema). Entonces, hallamos el valor
medio de los alfas. Este es:

5. Una vez tenemos los nuevos alfa, (0 ,


) o (
, 1 ),
volvemos al apartado 1. y sustituimos las dos semillas anteriores por estos dos u
ltimos valores de alfa
que satisfagan un cambio de signo en (u = 2) , e
iteramos de nuevo.
N
otese que la correcta estimaci
on de los de este ejercicio depende esencialmente de los valores semilla que
tomemos, 0 , 1 . Para resolver este problema, se nos
proporciona un valor mnimo de 0 desde el que empezar
2
a iterar, y un valor m
aximo:
.
k

A.

METODO
DE DIFERENCIAS FINITAS

V0 si |u| > 0.5


0 si |u| < 0.5

La segunda que introducimos es =

1 0
2

4. Una vez tenemos dividido en dos el intervalo de


los alfas, es decir, [0 ,
], y [
, 1 ], calculamos
(u = 2) con el valor de alfa
. Si ahora aplicamos
el teorema de Bolzano, es f
acil elegir los nuevos valores semilla (es decir, aquellos alfas en los que se
produce cambio de signo en (u = 2)).

IV.

V (x) =

k=

E
V0 ,

de forma que:

2ma2 V0
~2

Por lo tanto tenemos C(u):



C(u) =

k
si 0.5 < u < 0.5
k(1 ) si u < 0.5, u > 0.5

Si tenemos en cuenta tanto u como C(u), llegamos al


siguiente sistema:

(u)|un+1 (u)|un +


d(u)
(un+1 un )
du un



d(u)
d(u)

+ C(u)|un (u)|un (un+1 un )


du un+1
du un
El metodo de computacion fundamentalmente itera las
expresiones anteriores conocidos los valores semilla de:

Algoritmo computacional


d(u)
du u0

La ecuaci
on de Schr
odinger independiente del tiempo
tiene la siguiente forma:

~2 d2 (x)
+ V (x)(x) = E(x)
2m dx2

En este metodo nos interesa despejar tanto (x) como


d(x)
en expresiones de f
acil iteraci
on, y en las que
dx
adem
as aparezca la energa. Para resolver el problema
llevamos a cabo una integraci
on numerica en la expresion
siguiente:
2m
d2 (x)
= 2 (V (x) E)(x)
2
dx
~

B.

(u)|u0

Funciones de onda

Una vez hemos implementado el metodo en un


programa, haremos la prueba de calcular la funci
on de
onda para un valor de = 0.08, que es el valor inicial
proporcionado por el guion para comenzar a escanear
las energas.

3
Tercera funcion propia:

Como vemos, la funcion diverge para el valor que


hemos tomado como infinito (u = 2). Esto es debido
a que la energa que tomamos como par
ametro no es
una energa propia del sistema. Entonces calculamos los
valores propios de las energas para las tres funciones
propias mediante el shooting method (valores exactos
estimados por el shooting method se dar
an al final del
apartado).
Primera funci
on propia:

En principio, parece que hemos obtenido unos resultados (al menos para la funcion de onda) consistentes
con las predicciones teoricas.

C.

Resultados num
ericos

En este apartado vamos a mostrar explcitamente


los valores obtenidos con la herramienta computacional.
Para ello, conviene explicar la forma por defecto que tiene
la llamada de nuestra funcion df.m, que sera la resoluci
on
mediante diferencias finitas.
[psi] = df (psi, dpsi, k, alf a, N, L)

Segunda funci
on propia:

-Entradas: psi es el valor de la funcion de onda en u = 0,


dpsi es el valor de la derivada de la funcion de onda en
u = 0, k es una constante que valdra 64 siempre, alf a
es el valor de la energa para el que queremos dibujar la
funcion, N es el n
umero de intervalos en los que queremos
discretizar el espacio, y L es la longitud del intervalo.
-Salidas: psi, que sera el valor de la funcion de onda en
cada punto del espacio.
La forma de llamada de nuestro shooting method para el
programa df.m sera:

[alf a, n, error] = smdf (psi, dpsi, k, N, L, alf a0, alf a1, modo)
-Entradas: psi es el valor de la funcion de onda en u = 0,
dpsi es el valor de la derivada de la funcion de onda en
u = 0, k es una constante que valdra 64 siempre, alf a
es el valor de la energa para el que queremos dibujar la
funcion, N es el n
umero de intervalos en los que queremos discretizar el espacio y, a su vez, n
umero m
aximo
de iteraciones, L es la longitud del intervalo, alf a0 es
la cota inferior de la energa para la estimaci
on, alf a1
sera la cota maxima de la energa para la estimaci
on, y
modo sera el n
umero de modo. -Salidas: alf a estimaci
on
de la energa propia, n n
umero de iteraciones que realiza el programa, error precision en la estimaci
on de alf a.

4
Una vez hemos dejado claro esto, los resultados
que obtenemos para el primer modo son:

>> [alf a, n, error] = smdf (1, 0, 64, 1000, 2, 0.08, 0.1, 1)


Matlab nos devuelve:

V.

METODO
DE NUMEROV

A.

Algoritmo computacional

Partimos del mismo punto que en el apartado de diferencias finitas, es decir, de la ecuacion de Schr
odinger independiente del tiempo:

alf a = 0.097

error = 0.001
Obtenemos, adem
as, el gr
afico correspondiente a la
primera funci
on propia que hemos aparece en el apartado
anterior. Para el modo segundo escribimos:

~2 d2 (x)
+ V (x)(x) = E(x)
2m dx2

El metodo de Numerov se basa en el desarrollo de Taylor,


por lo tanto, para (xk+1 ) y (xk1 ) tenemos:
(xk+1 ) = (xk ) +

>> [alf a, n, error] = smdf (0, 1, 64, 1000, 2, 0.1, 0.5, 2)


Sale por pantalla lo siguiente:
alf a = 0.382
error = 0.001
Junto con el gr
afico del apartado anterior correspondiente
a la segunda funci
on propia. Por u
ltimo, para el tercer
modo y hacemos:
>> [alf a, n, error] = smdf (1, 0, 64, 1000, 2, 0.5, 1, 3)

(xk1 ) = (xk ) +

alf a = 0.806
error = 0.002
Sale tambien el gr
afico del apartado anterior correspondiente a la tercera funci
on propia (cabe aclarar, que este
shooting method (como el siguiente para el metodo de
Numerov) llama al programa df (n en el caso de Numerov) y por lo tanto eval
ua el u
ltimo alfa estimado,
por lo que sale por pantalla el gr
afico correspondiente).
Como podemos observar, hemos utilizado en todos los casos 1000 iteraciones, ya que, creo, es un valor suficiente
para hallar una buena estimaci
on de sin gastar demasiado tiempo (ya veremos esto a fondo m
as adelante). Por
lo tanto, como sntesis mediante el metodo diferencias
finitas y shooting method asociado al mismo, obtenemos
los siguientes valores propios para las energas:
o

N modo
Primero 0.097
Segundo 0.382
Tercero 0.806

X
(1)n n (n)
x (xk )
n!
n=1

Si sumamos las expresiones anteriores obtenemos:


(xk+1 )(xk1 ) = 2(xk )+2x 00 (xk )+

1 4 (4)
(xk )+O(6x )
12 x

Ahora definimos un nuevo operador g(x) de la siguiente


forma:
g(x) = g(x +

Los resultados son:

X
1 n (n)
(xk )
n! x
n=1

x
x
) g(x
)
2
2

Si denominamos fk y k como:
fk = f (xk ) y

fk1 = f (xk x)

k = (xk ) y

k1 = (xk x)

Entonces las ecuaciones se transforman en:




2x fk
k = k 1
12

k+1 = 2k k1 + 2x fk k + O(6x )

k =

k
1

2x fk
12

Tomamos cierto intervalo del espacio y lo discretizamos.


A partir de dos condiciones iniciales 0 y 1 calculamos
0 y 1 . Una vez tenemos esto, calculamos las sucesivas
n+1 para posteriormente obtener las n , que ser
an los
valores de la funcion a representar.

5
B.

Funciones de onda

Tercera funcion propia:

Realizamos la prueba equivalente al apartado anterior.


Dibujamos la funci
on con un = 0.08 y observamos la
salida:

Vemos que las funciones de onda son, en principio, correctas y consistentes con la teora vista anteriormente, as
como con el apartado de diferencias finitas.
Como vemos, la funci
on diverge en infinito (u = 2),
por lo que debemos obtener un buen mediante el
shooting method asociado.
Las funciones de onda
obtenidas para el metodo de Numerov se presentan a
continuaci
on.
Primera funci
on propia:

C.

Resultados num
ericos

En esta seccion presentaremos los resultados numericos


obtenidos, junto con la configuracion explcita de llamada
al programa. El programa que estima el valor de llama
al programa n(correspondiente al metodo de Numerov)
que tiene la siguiente forma de llamada:
[psi] = n(psi0, psi1, k, alf a, N, L)
-Entradas: psi0 y psi1 son los valores iniciales de la
funcion de onda. Son los dos primeros puntos. k es una
constante que vale siempre 64. alf a es el valor de con
el que calcula la funcion de onda, y L es la longitud del
intervalo. -Salidas: psi es el valor de la funci
on de onda
en cada punto.
La funcion que utilizamos para realizar el shooting asociado a este metodo se llama smn y tiene la siguiente
forma:
[alf a, n, error] = smn(ps0, ps1, alf a1, alf a2, k, N, L, modo)

Segunda funci
on propia:

-Entradas: ps0 y ps1 son los valores iniciales de la


funcion de onda. Son los dos primeros puntos. k es una
constante que vale siempre 64. alf a0 es la cota inferior
de la energa para la estimacion, y alf a1 ser
a la cota
maxima de la energa para la estimacion, N es el n
umero
de subintervalos en los que discretizamos el espacio y
el n
umero de iteraciones del bucle, L es la longitud del
intervalo, y modo es el n
umero de modo. -Salidas: alf a
es la estimacion de la energa propia, n es el n
umero de
iteraciones que realiza el bucle, y error es la precisi
on
en la obtencion de alf a.
Una vez hemos explicado las funciones y la forma en la
que se llaman a los programas, vamos a pasar a los resultados numericos obtenidos: Para el primer valor propio

6
de la energa:

VI.

>> [alf a, n, error] = smn(1, 0.998, 0.05, 0.1, 64, 1000, 2, 1)


Matlab nos devuelve:
alf a = 0.097
error = 0.001
Obtenemos, adem
as, el gr
afico correspondiente a la
primera funci
on propia que hemos aparece en el apartado
anterior. Para la segunda energa escribimos:
>> [alf a, n, error] = smn(0, 0.001, 0.1, 0.5, 64, 1000, 2, 2)

TIEMPO DE COMPUTO

Una cuestion importante a la hora de realizar computacion es el tiempo dedicado a los diferentes procesos.
Aqu vamos a realizar un analisis del tiempo de proceso
en funcion de las iteraciones de los dos shooting para estimar la propia. Realizaremos 100, 500, 1000 y 2000
iteraciones y mediremos el tiempo con el siguiente comando:
t = cputime;0 f uncionaestimar0 ; e = cputime t
Una vez tenemos esto,mostramos los resultados. Colocamos los valores para el metodo de diferencias finitas y
de Numerov respectivamente:

Sale por pantalla lo siguiente:


alf a = 0.383
error = e < 1
Junto con el gr
afico del apartado anterior correspondiente
a la segunda funci
on propia. Por u
ltimo, para la tercera
energa propia y hacemos:
>> [alf a, n, error] = smn(1, 0.999, 0.5, 1, 64, 1000, 2, 3)
Los resultados son:

alf a Iteraciones Tiempo (s)


0.096
100
1.5
0.097
500
9.6
0.097
1000
23.3
0.097
2000
83.8
alf a Iteraciones Tiempo (s)
0.097
100
1.5
0.097
500
7.6
0.096
1000
18.1
0.096
2000
55.0

alf a = 0.790
error = 0.018
Sale tambien el gr
afico del apartado anterior correspondiente a la tercera funci
on propia. Por lo tanto, los resultados para las energas son:
No modo
Primero 0.097
Segundo 0.383
Tercero 0.790

Como se puede ver, hemos utilizado en todos los casos


1000 iteraciones. El problema con este metodo es considerable si queremos aumentar el n
umero de iteraciones
para aumentar la precisi
on. El metodo de Numerov es extremadamente sensible a los valores iniciales psi0 y psi1,
estando estos directamente relacionados con la convergencia del metodo y con el n
umero de iteraciones. As,
si se quiere aumentar el n
umero de iteraciones se debera de considerar un metodo
optimo del c
alculo de estos
primeros valores de . Yo propongo calcular mediante el
metodo de diferencias finitas los dos primeros valores de
para el modo correspondiente, e introducirlos en Numerov para el c
alculo.

Como se ve, a n
umeros de iteraciones menores que el
millar, la diferencia de tiempo de computo es peque
na.
Sin embargo, en las 2000 iteraciones la diferencia es
de aproximadamente 30 s, lo que no es para nada
despreciable. A continuacion, representamos el tiemp
ode computo de cada metodo en funcion del n
umero de
iteraciones:

En el grafico anterior los triangulos representan el


metodo de diferencias finitas y los discos el metodo de
Numerov. No he encontrado una explicacion para esta
enorme diferencia de tiempo de computo en n
umeros altos de iteraciones.

7
DEL
VII. DEPENDENCIA CON EL TAMANO

INTERVALO Y CON EL NUMERO DE ITERACIONES

En este apartado vamos a modificar tanto el tama


no
del intervalo L como el n
umero de iteraciones N . Para
ello, vamos a utilizar una modificaci
on en los programas
correspondientes, ya que los iniciales no est
an preparados para estas variaciones (los nuevos programas agregan
la terminaci
on pruebas al nombre dle archivo, por ejemplo dfpruebas.m). Para la primera funci
on propia en el
metodo de diferencias finitas:
alf a
0.096
0.096
0.093
0.098
0.097
0.097

N
100
100
100
1000
1000
1000

L
1
2
3
1
2
3

error
0.002
0.002
0.005
e<1
0.001
0.001

propias de una partcula en un pozo de potencial finito


mediante diferentes metodos de integracion numerica.
Se han realizado cierto tratamiento y modificaci
on de
la ecuacion de Schrodinger independiente del tiempo en
una dimesion a fin de facilitar el calculo. Los metodos
utilizados para calcular la funcion de onda han sido el
metodo de diferencias finitas y el metodo de Numerov.
Para hallar el valor de la energa se ha utilizado el
shooting method, un metodo con cierta similitud al
metodo de la dicotoma. El metodo de integraci
on
numerica mediante Numerov ha aportado resultados
mas precisos que el metodo de diferencias finitas. Se ha
realizado un estudio de la precision de los dos metodos,
y podemos concluir que el error decrece a medida que
aumentamos el n
umero de iteraciones e intervalos en los
que se dicretiza el espacio. Por otro lado, si comparamos
el tiempo utilizado por el ordenador, se ve un claro
incremento de la eficiencia del metodo de Numerov con
respecto al de diferencias finitas. Los resultados finales
estimados de las energas propias son:

Como vemos, los errores no son excesivos en ninguno de


los casos. Se puede apreciar una tendencia al incremento
de la precisi
on en funci
on del n
umero de iteraciones, algo
que nos parece l
ogico. Tambien se aprecia, en principio,
una disminuci
on del error cuanto menor es el intervalo,
algo que en principio choca, ya que pienso que cuanto
mayor sea el intervalo mayor es la precisi
on a la hora
de obtener el que haga cero la funci
on de onda en el
infinito. Ahora vamos a hacer las mismas pruebas con
el metodo de Numerov:
alf a
0.099
0.089
0.094
0.098
0.098
0.098

N
100
100
100
1000
1000
1000

L
1
2
3
1
2
3

error
0.001
0.009
0.006
e<1
e<1
e<1

Aqu se puede observar que, en comparacion con el


metodo de diferencias finitas, el metodo de Numerov proporciona una gran precisi
on cuanto mayor n
umero de pasos a
nadimos.

VIII.

CONCLUSIONES

Como resumen, se puede decir que en este trabajo


se ha tratado el c
alculo de las energas y funciones

Modo
estimada
Primero 0.097
Segundo 0.382
Tercero
0.800

real
0.098
0.383
0.808

Como vemos, los resultados son satisfactorios, ya que los


errores son iguales o menores del 1% en todos los casos.

IX.

REFERENCIAS

1. R.Eisberg, R.Resnick, Quantum Physics, 6. Solutions of time-independent Schroedinger equations.


2. V.Lindberg, Finite Square Well
3. University of Virginia, Quantum Mechanics, A
PHY-319, Note Set No. 3