Solución de la Ecuación de Schrödinger por diagonalización


Introducción a Mathematica

Mathematica se puede correr en 2 modos, uno es "textual" y se corre mediante el comando math, y el otro es "gráfico" y se corre con el comando mathematica.

La mejor forma de aprender rápidamente el Mathematica es usando un ejemplo. En este caso vamos a obtener los eigenvalues y eigenvectors de matrices, utilizando el ejemplo dado en el Notebook oscillator. Se debe incluir este Notebook en el directorio en el que estamos trabajando. El nombre completo del Notebook (y el link para copiarlo) es oscillator.nb.

Primero trabajaremos en modo normal (math), copiando las sentencias dadas en "oscillator". Luego, saldremos de Mathematica y entraremos nuevamente en modo gráfico (mathematica). Ingresaremos el Notebook directamente (File+Notebooks) y trabajaremos con él, modificando las matrices.


Diagonalización de matriz tridiagonal

Primero nos familiarizaremos con la subrutina que realiza diagonalización de matrices tri-diagonales. Esta subrutina se llama tqli.for y está tomada del Numerical Recipes.

Compilaremos la subrutina haciendo:

problemas> f77 -c tqli.for

Notá que (si todo está bien) tenemos en el directorio el object file tqli.o. Este object file nos servirá cuando compilemos el programa que diagonaliza matrices tridiagonales. Dicho programa se llama eigen.for. La forma de compilar este programa incluyendo al object file es :

problemas> f77 eigen.for tqli.o -o eigen.x 

Cuando se corre este programa, se le debe suministrar el rango de la matriz, los elementos diagonales (una lista de ellos, separadas por espacios o por [CR]), y una lista de los elementos no-diagonales. Una vez terminado el cálculo, el programa da una lista de los autovalores obtenidos. Los autovectores se van imprimiendo de a uno por vez, en archivos llamados "eigv". El programa pide dar como input la extensión del nombre de cada uno de estos archivos. Por ejemplo, si se quiere imprimir el autovector correspondiente al autovalor 3, se le puede dar como extensión "3". El archivo creado será entonces "eigv.3".

Ejercicios: