Antonino Polimeno
Universit`a degli Studi di Padova
Autovalori e autovettori - 1
Un autovettore x di una matrice A n × n`e un vettore tale che:
Ax = λx
I L’insieme degli autovalori `e detto spettro della matrice.
I Il numero di autovettori linearmente indipendenti che condividono lo stesso autovalore `e detto molteplicit`a dell’autovalore;
La soluzione equivale al calcolo degli zeri di un polinomio di grado n
(A − λ1)x = 0
che ammette soluzioni non triviali solo se la matrice `e singolare:
det(A − λ1) = 0
L’equazione precedente `e detta equazione secolare.
Esempi:
1. il calcolo dei modi normali di una molecola poliatomica, tipica dello studio delle propriet`a vibrazionali e l’interpretazione degli spettri IR o Raman dei sistemi molecolari;
2. il calcolo dei livelli energetici e delle funzioni d’onda (orbitali molecolari) elettroniche di una molecola a partire da una base di orbitali atomici, a vari livelli di approssimazione (metodi semimpirici, metodi HF, DFT, post-HF);
3. lo studio della cinetica un sistema di reazioni chimiche del primo ordine
4. il calcolo dell’esponenziale di un operatore hamiltoniano (propagatore)
5. il calcolo dei valori principali di una propriet`a tensoriale cartesiana di secondo rango (e.g. tensore di inerzia, tensore di diffusione)
Autovalori e autovettori - 3
Possiamo (quasi sempre ...) costruire un matrice diagonale Λ con gli autovalori in diagonale ed una matrice X la cui colonna i -esima
`e l’autovettore i -esimo:
AX = XΛ (1)
od anche
Λ = X−1AX (2)
La matrice degli autovettori `e dunque una matrice che trasforma A secondo una trasformazione di similitudine che la rende diagonale.
I Per una matrice reale: AxR = λRxR autovettori destri e xTLA = λLxTL autovalori sinistri
I Gli autovettori sinistri della matrice A sono i trasposti degli autovettori destri della trasposta di A.
I Poich`e gli autovalori destri di una matrice matrice si trovano dall’equazione secolare ed il determinante di una matrice `e uguale al determinante della sua trasposta, gli autovalori destri e sinistri sono uguali
I Date le matrici XR (le cui colonne sono gli autovettori destri e XL (le cui righe sono gli autovettori sinistri), si ha che
AXR = XRΛ e XLA = ΛXL; si ottiene XLAXR = XLXRΛ = ΛXLXR.
I Quindi possiamo dire che la matrice XLXR commuta con la matrice diagonale Λ.
I Quasi sempre XLXR = 1, quindi la matrice degli autovettori sinistri `e l’inversa della matrice degli autovettori destri
Metodi di calcolo - 1
I I problemi agli autovalori tipici della chimica quantistica sono caratterizzati da matrici di dimensioni che vanno da poche decine a molti milioni
I I metodi di risoluzione numerica fanno uso di algoritmi complessi, che si basano su alcune tecniche generali volte alla riduzione della matrice analizzata in forme pi`u maneggevoli:
per esempio, tipicamente, in forma tridiagonale
I Per applicazioni avanzate: EISPACK (in Fortran), e LAPACK (in C++, Fortran90) disponibili presso
www.netlib.org, le librerie proprietarie IMSL, NAG etc.
I Il metodo di soluzione dipende dal problema in esame, cio`e in ultima analisi dalla natura della matrice che deve essere diagonalizzata; in ordine di difficolt`a crescente
1. matrice reale simmetrica e matrice complessa hermitiana 2. matrice reale non simmetrica e matrice complessa simmetrica 3. matrice complessa non simmetrica
I Esistono algoritmi per il calcolo dei soli autovalori, ed anche di soli autovalori estremi (minimi o massimi).
Per matrici (reali simmetriche) con n ∼ O(10): algoritmo di Jacobi- una serie di trasformazioni di similitudine; posto A = D0:
Dk = GkDk−1GTk
la matrice (ortogonale) Gk ha la forma di una matrice di Givens
G(i , j , θ) =
1 . . . 0 . . . 0 . . . 0
. . .
0 . . . cos θ . . . sin θ . . . 0 . . .
0 . . . − sin θ . . . cos θ . . . 0 . . .
0 . . . 0 . . . 0 . . . 1
L’elemento ij di Dk, va a zero se tan 2θ = (D 2(Dk−1)ij
k−1)ii−(Dk−1)jj
(Dk)ij= (Dk−1)ijcos 2θ + 1
2[(Dk−1)ii − (Dk−1)jj] sin 2θ
1. ad ogni nuova iterazione, si cerca l’elemento pi`u grande in valore assoluto della matrice (Dk−1)ij, detto pivot
2. si applica la trasformazione di similitudine per ottenere la nuova matrice Dk con (Dk)ij azzerato
Per k → ∞ la matrice Dk tende ad una matrice diagonale.
Metodi di calcolo: algoritmo di Lanczos - 3
Trasformiamo A (reale simmetrica per semplicit`a) in forma tridiagonale mediante l’algoritmo di Lanczos. Sia v1un vettore che possiamo anche scegliere in modo arbitrario. Generiamo la sequenza di vettori vk come segue
βk+1vk+1 = (A − αk) vk− βkvk−1
αk = vTkAvk βk = vTkAvk−1
I vettori v1, v2etc. sono ortonormali (almeno in precisione infinita, cio`e in assenza di errori di arrotondamento) e formano una matrice ortogonale V = (v1, v2, . . . , vn)Ttale che VAVT= T, dove T `e la matrice
tridiagonale (simmetrica)
T =
α1 β1 β1 α2 β2
β2 . .. . ..
. .. . .. βn−1 βn−1 αn
I Nel caso precedente, i coefficienti della matrice T si ottengono direttamente dalla sequenza di operazioni di moltiplcazione matrice-vettore (3)
I Opportunamente ottimizzati nel caso di matrici sparse, questi prodotti sono computazionalmente poco costosi.
Ilmetodo di decomposizione QR (QL)permette di ridurre una matrice generica alla forma A = QR (A = QL), dove Q `e ortogonale e R (L) `e triangolare superiore (inferiore).
I La procedura di decomposizione genera una nuova matrice simile alla precedente usando Q come matrice di trasformazione.
I La sequenza tende a generare la matrice diagonale degli autovalori.
In pratica si procede come segue 1. si decompone A0= A = QR 2. si genera A1= RQ = QTA0Q
3. si continua decomponendo ad ogni iterazione Ak = QkRk e generando Ak+1= RkQk = QTkAkQk
Per una matrice ’normale’ di dimensioni n: costo O(n3); per una matrice tridiagonale: costo O(n)