Programma di sperimentazione della solidità della tridiagonalizzazione fatta
con l'algoritmo di Giampaolo Bottoni ( reinventato...)
L'algoritmo della tridiagonalizzazione
ossia la mia pseudo-novità dell'agosto 2008.
In questo file ci devono stare
i dati delle matrici studiate. Viene
tenuto separato per consentire agevoli ampliamenti... Si deve chiamare
xt2(matricestudiata).txt ma ho realizzato più di un file con delle
matrici di prova per cui, volendoli utilizzare, bisogna rinominarli
col nome giusto...
Le basi teoriche...
Matrice in costruzione:
Test dell'algoritmo per la tridiagonalizzazione di una matrice
Questa è la matrice di partenza:
Parte reale autovalori della matrice di test:
Parte immaginaria autovalori della matrice di test:
Info sul calcolo della tridiagonalizzazione:
La matrice test tridiagonalizzata:
La matrice tridiagonalizzata deve avere gli stessi autovalori di quella di partenza
Parte reale autovalori della matrice di test tridiagonalizzata:
Parte immaginaria autovalori della matrice di test tridiagonalizzata:
Questa pagina è autosufficiente per quanto concerne la libreria
di algebra lineare. Contiene infatti l'algoritmo QR di Francis
per la ricerca degli autovalori di una matrice non simmetrica.
Fare però attenzione: per funzionare questa pagina richiede
due ulteriori file ossia il file contenente il mio algoritmo
( non sarò stato il primo ... ma comunque è frutto di miei autonomi
ponzamenti ferragostiani nell'agosto 2008 ) e il file di dati con
le matrici studiate.
Nota: In fisica ( meccanica quantistica, calcoli strutturali, fluidodinamici etc..)
si incontrano prevalentemente operatori differenziali simmetrici dei quali
si vogliono trovare gli autovalori che hanno un loro
significato ben preciso per il fisico o l'ingegnere. Gli autovalori, per la simmetria
degli operatori, sono reali. Nella discretizzazione di tali operatori
differenziali si presenta spessissimo la necessità di conservare la simmetria
posseduta dagli operatori continui. Questa necessità nasce da ragioni fisiche
poiché è noto per ragioni fisiche che gli autovalori devono essere reali e dunque
sarebbe una cattiva approssimazione quella di un operatore discretizzato
tramite una matrice non simmetrica che può dunque avere anche autovalori
complessi coniugati ...privi di valore fisico. Tuttavia esistono situazioni
in cui la rinuncia, in fase di discretizzazione, della simmetria non
provoca effetti indesiderati perché di solito hanno interesse solo
alcuni degli autovalori e questi possono venire stimati
bene anche se la matrice non simmetrica ammette alcuni autovalori
complessi coniugati. Ma c'è un ma: dal punto di vista numerico la ricerca
degli autovalori di una matrice non simmetrica è nettamente
più costosa in termini di numero di moltiplicazioni da fare.
Penso dunque che il disporre di un algoritmo come questo che permette di
tridiagonalizzare anche matrici poco asimmetriche sia un bene
perché è un peccato che si debba rinunciare all'utilizzo di
discretizzazioni valide da un punto di vista fisico
ma rese numericamente inapplicabili perché producono matrici
solo leggermente non simmetriche.