Quello che facciamo adesso è cercare una fattorizzazione di
come un fattore ortogonale ed un fattore triangolare superiore.
Data
(in
generale ha più righe che colonne) e richiediamo che abbia rango
massimo, cioè (e quindi se la matrice è quadrata, sarà
anche non singolare). Allora ciò che cerchiamo è
Come osservazione possiamo notare che se , è triangolare
superiore ed .
Mostreremo l'esistenza di questa fattorizzazione mediante una
dimostrazione costruttiva che ci guiderà nella costruzione
dell'algoritmo.
Dalle proprietà del rango abbiamo che
visto che ha rango massimo;
ha rango massimo, e per costruzione
ed essendo
questo implica che
è non singolare.
Dunque, come già visto durante l'algoritmo di eliminazione di
Gauss, dato un vettore cerchiamo una matrice ortogonale
tale che:
che azzeri tutti gli elementi di
da un certo punto in poi. Inoltre, prendendo il quadrato della
norma euclidea di si ottiene:
da cui otteniamo
.
Cerchiamo dunque una matrice nella forma
con vettore da determinare; notiamo inoltre che
è uno scalare. è una matrice simmetrica,
perché sia che lo sono
(
) ed è detta matrice di
Householder; sapendo che verifichiamo l'ortogonalità di P:
Come per la matrice elementare di Gauss, anche è ottenuta come
la matrice identità a cui viene sommata una matrice di correzione
di rango , e sommare matrici di rango basso significa eseguire
pochi conti.
Eravamo rimasti che il vettore doveva essere determinato,
verifichiamo allora che
è proprio ciò di cui
abbiamo bisogno, cioè che:
Se si riuscisse a dimostrare che il coefficiente del vettore è
pari a zero, e quello del vettore è pari ad avremmo
terminato; per fare questo bisogna dimostrare che
Le due quantità sono uguali e quindi abbiamo verificato che una
matrice così costruita soddisfa le nostre richieste; il
vettore visto è detto vettore di Householder.
La scelta del segno di , cioè se scegliere
oppure
, è sottesa alla riduzione
degli errori nell'aritmetica finita del calcolatore (la matrice
ortogonale non pone grossi problemi di calcolo poichè
l'imposizione che la somma dei quadrati sia pari ad uno la rende
tale che gli elementi siano ben limitati in modulo e quindi che
anche gli errori sono limitati). Come detto
è quindi opportuno che ed siano di segno concorde
così da eliminare il problema della cancellazione (soprattutto nel
caso fosse l'elemento di modulo massimo), dunque
Siamo ora in grado di dimostrare il teorema di esistenza della
fattorizzazione
Teorema 1
Se è una matrice
, di rango
massimo, allora
ortogonale ed
triangolare superiore e non singolare tali che
La dimostrazione di questo teorema definirà un algoritmo che ci
consentirà di generare la fattorizzazione. Ragioniamo come abbiamo
fatto con l'eliminazione di Gauss: quindi poniamo
considerando adesso
possiamo costruire la matrice tale che
con
; in questo caso non abbiamo
bisogno di pivoting come con l'algoritmo di Gauss: per come è
costruito il vettore di Householder questo sarà sempre diverso dal
vettore nullo (
) e dunque la matrice sarà sempre ben
definita.
Ottenuta la matrice possiamo operare come già esaminato con
Gauss
come si può notare gli elementi sottodiagonali della prima colonna
vengono annullati ma gli altri vengono comunque modificati, anche
quelli della prima riga.
Consideriamo la seconda colonna, dall'elemento diagonale in poi e
definiamo la matrice in modo tale che
possiamo adesso definire la matrice come
ed è ancora simmetrica ed ortogonale. Otteniamo infine
La prima riga non viene modificata poichè la prima riga di è
la prima riga dell'identità, vengono modificate solo le
righe sotto la prima.
In generale, al passo i-esimo
ortogonale e simmetrica. Alla fine, dopo n passi, otteniamo:
Il prodotto di matrici ortogonali è ancora una matrice ortogonale,
da cui
Nel caso di matrici quadrate, se la matrice in esame è non
singolare, allora è anche fattorizzabile , mentre per la
fattorizzazione , come ci ricordiamo, ci sono ben altri
vincoli, molto più stringenti che la semplice non singolarità.
Soffermiamoci sullo spazio di memoria di cui abbiamo bisogno. Ci
riferiremo al primo passo, dal momento che gli altri sono simili.
Per conoscere l'unica cosa di cui abbiamo bisogno è il
vettore , che ha dimensioni : infatti noto , possiamo
ricavare .
Dato che è massimo
e sicuramente poichè ed sono di segno
concorde. Possiamo dunque definire
e quindi possiamo evitare di memorizzare la prima componente del
vettore in quanto sappiamo che è pari ad uno. Vediamo
cosa comporta questa scelta di vettore per la matrice di
Householder:
la matrice di
Householder è perciò invariante per moltiplicazioni per scalari.
In conclusione, invece di dover utilizzare componenti, ne
abbiamo bisogno solo di , proprio quelle che andiamo ad
azzerare; possiamo riscrivere la matrice con tutte e sole le
informazioni necessarie alla fattorizzazione: nella parte
triangolare superiore metteremo mentre nelle parti che
andiamo ad azzerare metteremo i vettori a partire
dalla seconda componente in poi.
Subsections
Morpheus
2004-01-04