Matrice di Gram-Schmidt

thedarkhero
In uno spazio vettoriale di dimensione n, date m colonne linearmente indipendenti (m<=n) è possibile trasformare la matrice in una matrice ortogonale moltiplcandola per una matrice di Gram-Schmidt. Ma come costruisco la matrice di Gram-Schmidt?
Inoltre se A è la matrice delle colonne indipendenti e T è la matrice di Gram-Schmidt si ha che $AT=Q$ dove Q è la matrice ortogonale.
Quindi $A=QT^-1$ è la decomposizione QR di A ma come funziona questa decomposizione?

Risposte
cirasa
Lavoriamo in $RR^n$. Hai $n$ vettori (colonna) $v_1,...,v_n$ $n$-dimensionali, quindi una matrice $A=[v_1,...,v_n]$ $n\times n$.
Quando li ortonormalizzi con Gram-Schmidt ottieni $n$ vettori $w_1,...,w_n$ ortonormali, dunque tali che la matrice $Q=[w_1,...,w_n]$ è ortogonale.
Ogni vettore $w_i$ si scrive come combinazione lineare dei $v_1,...v_n$ dunque $AT_i=w_i$ per ogni $i$, dove $T_i$ è una colonna.
Si forma la matrice $T=[T_1,...,T_n]$ che, pertanto, è tale che $AT=Q$.
Resta da osservare che $T$ è triangolare, ma questo è facile, in quanto è dovuto all'algoritmo di Gram-Schmidt che "crea" il vettore $w_i$ come combinazione solo dei precedenti $v_1,v_2,...,v_i$ e non in funzione dei $v_{i+1},...,v_n$.
Preticamente la matrice $T$ non è altro che la matrice di cambiamento di base da $v_1,...,v_n$ a $w_1,...,w_n$.

thedarkhero
Su questo sono d'accordo. Però tu hai prima ortonormalizzato la matrice e poi hai ricavato la matrice di cambiamento di base (quella triangolare).
Se volessi ricavare prima quella di cambiamento di base?

cirasa
Mmm, non sono sicuro di aver compreso la tua domanda. :-k
Non è vero che costrusco la base ortonormalizzata e poi la matrice di cambiamento di base.
Questo metodo permette di costruire, a partire da una matrice $A$ non degenere, passo per passo la colonna $i$-esima di $T$ e il vettore $i$-esimo (ovvero la colonna $i$-esima di $Q$).
In che senso vuoi ricavare prima la matrice $T$?

Se non ricordo male, la decomposizione $QR$ di una generica matrice $A$ raramente si fa con questo metodo, perchè computazionalmente la decomposizione $QR$ con l'algoritmo di Gram-Schmidt dovrebbe essere abbastanza pesante. Dovrebbe esserci un metodo più "leggero" (che però non ricordo).

Spero di averti aiutato...

dissonance
"cirasa":
Dovrebbe esserci un metodo più "leggero" (che però non ricordo).
Uno famoso è quello di Householder. Ma ce ne sono altri, ad esempio sfogliando il libro di algebra lineare numerica vedo che ce n'è un altro dovuto a Givens e si fa riferimento ad altri metodi ancora negli esercizi e nell'appendice. Quello di Householder però è quello standard (sempre stando al libro, io non sono in nessun modo un esperto, purtroppo!)

thedarkhero
Io ero interessato a quello di Gram Schmidt :wink:

Quello che non capisco è come si ricava la matrice triangolare.
Ad esempio se $A=((1,1),(0,1))$ la matrice ortogonale (applicando Gram Schmidt) sarà $Q=((1,0),(0,1))$.
Ma non so quali sono i passaggi per ricavare la matrice triangolare.

cirasa
Se mi permetti, vorrei presentarti un esempio in $RR^3$ (così vedi meglio, passo per passo, la costruzione della matrice $T$).
La matrice iniziale è $A=((1,1,0),(1,0,1),(0,0,1))$ (non degenere).
Dobbiamo ortogonalizzare la base formata dai vettori $v_1=((1),(1),(0))$, $v_2=((1),(0),(0))$, $v_3=((0),(1),(1))$.

Il primo vettore della base ortonormale ottenuta è $w_1=\frac{1}{\sqrt(2)}((1),(1),(0))$.
Quindi si ottiene la prima colonna di $T$ data da $T=((\frac{1}{\sqrt(2)}, ... , ... ),(0, ... , ... ),(0, ... , ...))$. Si tratta dei vettori delle componenti di $w_1$ rispetto a $v_1,v_2,v_3$.

Calcoliamo il secondo vettore della base ortonormale.
$w'_2=v_2 - w_1=((1),(0),(0))-\frac{1}{sqrt(2)}((\frac{1}{sqrt(2)}),(\frac{1}{sqrt(2)}),(0))=((1/2),(-1/2),(0))$
Il secondo vettore è dato da
$w_2=\frac{w'_2}{||w'_2||}=((\frac{1}{sqrt(2)}),(-\frac{1}{sqrt(2)}),(0))$
La seconda colonna di $T$ si ottiene dalla terna di coefficienti di $w_2$ rispetto a $v_1,v_2,v_3$, $T$ è ora data da
$T=((\frac{1}{\sqrt(2)}, -\frac{1}{\sqrt(2)} , ... ),(0, \sqrt(2) , ... ),(0, 0 , ...))$.
Nota che il vettore $w_2$ si scrive solo in funzione di $v_1,v_2$ e quindi la matrice $T$ è triangolare superiore.

Infine il terzo vettore:
$w'_3=v_3 - w_1 - w_2$
Fatti un po' di conti (che spero non aver sbagliato), si ha che $w'_3=w_3=((0),(0),(1))$ e che la terza colonna di $T$ è tale che
$T=((\frac{1}{\sqrt(2)}, -\frac{1}{\sqrt(2)} , -1),(0, \sqrt(2) , 1),(0, 0 , 1))$
che è evidentemente triangolare superiore.

Puoi controllare che, posto $Q=((\frac{1}{sqrt(2)},\frac{1}{sqrt(2)},0),(\frac{1}{sqrt(2)},-\frac{1}{sqrt(2)},0),(0,0,1))$, si ha che $AT=Q$.

Perdonami se ho commesso qualche errore di conto. Spero comunque di aver reso l'idea.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.