next up previous contents
Next: Programma: harmonic1 Up: Il metodo di Numerov Previous: Il metodo di Numerov   Contents

Programma: harmonic0

harmonic0.c (versione C) o harmonic0.f (versione Fortran 77) risolve l'equazione di Schrödinger per l'oscillatore armonico quantistico, integrando mediante l'algoritmo di Numerov descritto sopra, e ricercando gli autovalori mediante il metodo di "shooting".

Si tratta di una procedura del tutto analoga a quella della ricerca dello zero di una funzione mediante il metodo di bisezione (descritto in B.1). Il programma va alla ricerca della soluzione $\psi_n(x)$ con un numero di nodi assegnato $n$, e considera inizialmente l'energia $E$ corrispondente al punto medio dell'intervallo $[E_{\rm min},E_{\rm max}]$ (che siamo certi contenere l'autovalore desiderato $E_n$). La funzione d'onda viene integrata partendo da $x=0$ e muovendosi verso gli $x$ positivi, e allo stesso tempo viene contato il numero di nodi, ossia di cambiamenti di segno della funzione. Se tale numero risulta essere superiore a $n$, significa che $E$ è troppo alta; se invece il numero di nodi è minore o uguale a $n$, significa che $E$ è troppo bassa. Viene allora scelto il semiintervallo opportuno--rispettivamente quello inferiore $[E_{\rm min},E]$ o quello superiore $[E,E_{\rm max}]$--e la procedura iterata sul semiintervallo. Si considera di essere arrivati a convergenza quando l'ampiezza dell'intervallo di energia è scesa al di sotto di una soglia prefissata.

Per $x$ negativi la funzione viene costruita per simmetria, essendo $\psi_n(-x)=(-1)^n \psi_n(x)$. Questo è ovviamente possibile in quanto $V(-x)=V(x)$, altrimenti sarebbe stato necessario integrare su tutto l'intervallo.

Il programma chiede, nell'ordine, il valore massimo $x_{\rm max}$ a cui estendere l'integrazione (un valore tipico può essere 10), il numero $N$ di punti sulla griglia (da cui $\Delta x=x_{\rm max}/N$), il nome del file di output e il numero di nodi richiesto. Ad un'ultima domanda sull'energia da provare si risponderà in generale con 0 per avviare il meccanismo di ricerca dell'autovalore descritto sopra; è tuttavia possibile anche inserire una specifica energia, in generale non corrispondente ad un autovalore, per forzare il programma ad effettuare una singola integrazione su quell'energia ed esaminare la funzione d'onda risultante. Questo permette di effettuare dei test per capire meglio il funzionamento del metodo di ricerca dell'autovalore.

Il file di output contiene la soluzione finale ed è organizzato su cinque colonne contenenti rispettivamente $x$, $\psi(x)$, $\vert\psi(x)\vert^2$, $\rho_{\rm cl}(x)$ e $V(x)$. $\rho_{\rm cl}(x)$ è la densità di probabilità dell'oscillatore armonico classico data dalla (2.30) (normalizzata a 1). Oltre a questo file, il programma emette sullo standard output ad ogni iterazione il numero dell'iterazione, il numero di nodi trovati (sul solo semiasse degli $x$ positivi) e la stima corrente dell'autovalore dell'energia.

Come si vedrà, è impossibile evitare che la soluzione diverga al di sopra di un certo $x$. Questo è il risultato dell'inevitabile presenza di una componente $\sim \exp(+x^2/2)$ che, anche se piccola, porta ad una divergenza quando $x$ sufficientemente grande. Tale divergenza comporta anche una difficoltà nel normalizzare la $\psi(x)$. A causa di questa difficoltà, questo programma deve chiaramente essere migliorato.


next up previous contents
Next: Programma: harmonic1 Up: Il metodo di Numerov Previous: Il metodo di Numerov   Contents
furio 2002-02-24