Ortogonalizzazione di Gram-Schmidt

Il metodo di ortogonalizzazione di Gram-Schmidt permette di costruire una famiglia di vettori ortogonali partendo da una famiglia di vettori linearmente indipendenti. Si tratta di un procedimento fondamentale, perché consente di risolvere gli esercizi in cui si chiede di ortogonalizzare un insieme di vettori e quelli in cui è richiesto di ricavare una base ortogonale partendo da una qualsiasi base di uno spazio vettoriale. Con un passo in più si può, inoltre, determinare una base ortonormale.

 

In questa lezione daremo l'enunciato del teorema di ortogonalizzazione di Gram-Schmidt e ne vedremo la dimostrazione, da cui discende il cosiddetto processo di ortogonalizzazione. Forniremo quindi un esempio di applicazione, e concluderemo mostrando come l'algoritmo di Gram-Schmidt permetta di costruire una matrice ortogonale avendo solo una colonna.

 

Per procedere è essenziale ricordare le definizioni di vettori ortogonali e di vettori ortonormali, che richiameremo più volte nel corso della lezione.

 

Definizioni di vettori ortogonali e di vettori ortonormali

 

Siano V uno spazio vettoriale definito su \mathbb{R}, \langle \ , \ \rangle un prodotto scalare definito positivo su V e || \cdot || la norma indotta da questo prodotto scalare.

 

\{\mathbf{v}_1, \mathbf{v}_2,..., \mathbf{v}_n\} \subseteq V è un un insieme di vettori ortogonali di V se e solo se il prodotto scalare tra due vettori distinti dell'insieme è nullo

 

\mathbf{v}_1,\mathbf{v}_2,...,\mathbf{v}_n \mbox{ ortogonali} \iff \langle \mathbf{v}_i, \mathbf{v}_j\rangle=0\ \ \forall i\ne j

 

Diremo poi che \{\mathbf{v}_1, \mathbf{v}_2,..., \mathbf{v}_n\} \subseteq V è un insieme di vettori ortonormali se e solo se è formato da vettori ortogonali e ogni vettore ha norma 1:

 

\mathbf{v}_1,\mathbf{v}_2,...,\mathbf{v}_n \mbox{ ortonormali} \iff \begin{cases}\langle\mathbf{v}_i, \mathbf{v}_j\rangle=0\ \ \forall i\ne j \\ \\ ||\mathbf{v}_i|| = 1\ \ \forall i=1,2,...,n \end{cases}

 

Avendo chiare le precedenti definizioni si possono introdurre i concetti di base ortogonale e di base ortonormale di uno spazio vettoriale rispetto a un dato prodotto scalare:

 

- una base ortogonale è una base formata da vettori ortogonali;

 

- una base ortonormale è una base composta da vettori ortonormali.

 

È inoltre evidente che una base ortonormale è anche una base ortogonale, mentre non vale in generale il viceversa. D'altra parte una base ortogonale può essere resa ortonormale dividendo ciascun vettore per la propria norma.

 

 

Esempi di basi ortogonali e di basi ortonormali

 

1) La base canonica di \mathbb{R}^3:

 

\\ \mathcal{C}=\{\mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3\} \\ \\ \mathbf{e}_1=(1,0,0) \ ;\ \mathbf{e}_2=(0,1,0) \ ;\ \mathbf{e}_3=(0,0,1)

 

è una base ortonormale rispetto al prodotto scalare euclideo, infatti ogni vettore ha norma 1 e il prodotto scalare tra due qualsiasi vettori distinti è 0.

 

 

2) La seguente base di \mathbb{R}^3

 

\\ \mathcal{B}=\{\mathbf{v}_1, \mathbf{v}_2, \mathbf{v}_3\} \\ \\ \mathbf{v}_1= (2,0,0) \ ;\ \mathbf{v}_2= (0,2,0) \ ;\ \mathbf{v}_3=(0,0,2)

 

è una base ortogonale rispetto al prodotto scalare standard, ma non è ortonormale, infatti la norma di ogni vettore è diversa da 1.

 

Possiamo tuttavia renderla ortonormale dividendo ciascun vettore per la relativa norma.

 

\\ ||\mathbf{v}_1||=\sqrt{2^2+0^2+0^2}=\sqrt{4}=2 \\ \\ ||\mathbf{v}_2||=\sqrt{0^2+2^2+0^2}=\sqrt{4}=2 \\ \\ ||\mathbf{v}_3||=\sqrt{0^2+0^2+2^2}=\sqrt{4}=2

 

La corrispondente base ortonormale è

 

\\ \mathcal{B}'=\{\mathbf{v}'_1, \mathbf{v}'_2, \mathbf{v}'_3\} \\ \\ \\ \mathbf{v}'_1=\frac{\mathbf{v}_1}{||\mathbf{v}_1||}=\left(\frac{2}{2}, \frac{0}{2}, \frac{0}{2}\right)=(1,0,0) \\ \\ \\ \mathbf{v}'_2=\frac{\mathbf{v}_2}{||\mathbf{v}_2||}=\left(\frac{0}{2}, \frac{2}{2}, \frac{0}{2}\right)=(0,1,0) \\ \\ \\ \mathbf{v}'_3=\frac{\mathbf{v}_3}{||\mathbf{v}_3||}=\left(\frac{0}{2}, \frac{0}{2}, \frac{2}{2}\right)=(0,0,1)

 

Teorema di ortogonalizzazione di Gram-Schmidt

 

Consideriamo un insieme di vettori linearmente indipendenti \{\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n\} di uno spazio vettoriale V su cui è assegnato un prodotto scalare definito positivo.

 

Il teorema di ortogonalizzazione di Gram Schmidt assicura l'esistenza di una nuova famiglia di vettori \{\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n\} \subseteq V linearmente indipendenti, ortogonali tra loro e tali da generare lo stesso spazio generato da \{\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n\}.

 

La dimostrazione del teorema fornisce inoltre un algoritmo che consente di costruire tali vettori, noto come algoritmo (o processo) di ortogonalizzazione di Gram-Schmidt e di cui ci occuperemo tra poco.

 

Diamo ora l'enunciato del teorema:

 

siano V uno spazio vettoriale su \mathbb{R} e \mathbf{v}_1,\mathbf{v}_2, ... ,\mathbf{v}_n vettori linearmente indipendenti di V, e sia assegnato un prodotto scalare definito positivo (non necessariamente quello canonico)

 

\langle \ , \ \rangle : V\times V\to \mathbb{R}

 

Allora esistono \mathbf{w}_1,\mathbf{w}_2,...,\mathbf{w}_n \in V tali che:

 

1) siano a due a due ortogonali

 

\langle \mathbf{w}_i, \mathbf{w}_j \rangle = 0\ \ \forall i\neq j

 

2) Il sottospazio generato da \{\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n\} coincide con quello generato da \{\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n\}

 

\mbox{Span}(\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n) = \mbox{Span}(\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n)

 

Dimostrazione

 

Siano

 

\\ \mathbf{w}_1:=\mathbf{v}_1 \\ \\ \mathbf{w}_2:=\mathbf{v}_2 - \frac{\langle \mathbf{v}_2, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1

 

Anzitutto osserviamo che \langle \mathbf{w}_1, \mathbf{w}_1 \rangle \neq 0, infatti \mathbf{w}_1=\mathbf{v}_1 fa parte di un insieme di vettori linearmente indipendenti e quindi è certamente diverso dal vettore nullo. Ha dunque senso definire \mathbf{w}_2 in quel modo.

 

Per come sono stati costruiti, i vettori \mathbf{w}_1 \mbox{ e } \mathbf{w}_2 sono tra loro ortogonali, infatti

 

\langle \mathbf{w}_1, \mathbf{w}_2 \rangle = \bigg\langle \mathbf{w}_1,\ \mathbf{v}_2 - \frac{\langle \mathbf{v}_2, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 \bigg\rangle=

 

per la proprietà di linearità di un prodotto scalare rispetto alla seconda componente

 

=\langle \mathbf{w}_1, \mathbf{v}_2 \rangle - \frac{\langle \mathbf{v}_2, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\langle \mathbf{w}_1, \mathbf{w}_1 \rangle =

 

semplificando i termini \langle \mathbf{w}_1, \mathbf{w}_1 \rangle

 

=\langle \mathbf{w}_1, \mathbf{v}_2 \rangle - \langle \mathbf{v}_2, \mathbf{w}_1 \rangle =

 

per la simmetria del prodotto scalare

 

=\langle \mathbf{w}_1, \mathbf{v}_2 \rangle - \langle \mathbf{w}_1, \mathbf{v}_2 \rangle = 0

 

Abbiamo così dimostrato che \langle \mathbf{w}_1, \mathbf{w}_2 \rangle = 0 e quindi i due vettori sono ortogonali.

 

Inoltre

 

\mbox{Span}(\mathbf{v}_1, \mathbf{v}_2)=\mbox{Span}(\mathbf{w}_1, \mathbf{w}_2)

 

Ciò segue dal fatto che \mathbf{w}_1=\mathbf{v}_1 e che \mathbf{w}_2 è stato definito come combinazione lineare dei vettori \mathbf{v}_1 \mbox{ e } \mathbf{v}_2. In caso di dubbi vi invitiamo a consultare la lezione su span e sottospazio generato.

 

Poniamo ora

 

\mathbf{w}_3:=\mathbf{v}_3 - \frac{\langle \mathbf{v}_3, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 - \frac{\langle \mathbf{v}_3, \mathbf{w}_2 \rangle}{\langle \mathbf{w}_2, \mathbf{w}_2 \rangle}\mathbf{w}_2

 

Procedendo allo stesso modo si dimostra che

 

\langle \mathbf{w}_1, \mathbf{w}_3 \rangle = \langle \mathbf{w}_2, \mathbf{w}_3 \rangle = 0

 

e che

 

\mbox{Span}(\mathbf{v}_1, \mathbf{v}_2, \mathbf{v}_3)=\mbox{Span}(\mathbf{w}_1, \mathbf{w}_2, \mathbf{w}_3)

 

Reiterando il procedimento si arriva a definire il vettore

 

\mathbf{w}_n:=\mathbf{v}_n - \frac{\langle \mathbf{v}_n, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 - \frac{\langle \mathbf{v}_n, \mathbf{w}_2 \rangle}{\langle \mathbf{w}_2, \mathbf{w}_2 \rangle}\mathbf{w}_2 - ... - \frac{\langle \mathbf{v}_n, \mathbf{w}_{n-1} \rangle}{\langle \mathbf{w}_{n-1}, \mathbf{w}_{n-1} \rangle}\mathbf{w}_{n-1}

 

che è ortogonale ai precedenti vettori e tale che

 

\mbox{Span}(\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n) = \mbox{Span}(\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n)

 

La dimostrazione può dirsi conclusa. 

 

Prima di elencare i passi del processo di ortogonalizzazione enunciamo e dimostriamo un corollario del teorema, che assicura l'esistenza di una base ortogonale per ogni spazio vettoriale V di dimensione finita sui cui sia assegnato un prodotto scalare definito positivo.

 

 

Corollario del teorema di Gram-Schmidt sull'esistenza di una base ortogonale

 

Ogni spazio vettoriale V di dimensione finita ammette almeno una base ortogonale rispetto a un prodotto scalare definito positivo su V.

 

Dimostrazione

 

Siano V uno spazio vettoriale di dimensione n, \mathcal{B}=\{\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n\} una sua base e \langle \ , \ \rangle un prodotto scalare definito positivo su V.

 

Dalla definizione di base di uno spazio vettoriale segue che i vettori di \mathcal{B} sono linearmente indipendenti.

 

Per il teorema di Gram-Schmidt esistono \mathbf{w}_1,\mathbf{w}_2,...,\mathbf{w}_n \in V tra loro ortogonali e tali che

 

\mbox{Span}(\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n) = \mbox{Span}(\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n)

 

\{\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n\} è una base di V, dunque

 

V = \mbox{Span}(\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n) = \mbox{Span}(\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n)

 

L'insieme \{\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n\} è allora un sistema di generatori di V. In virtù del teorema secondo cui vettori ortogonali sono linearmente indipendenti possiamo concludere che \mathbf{w}_1, \ \mathbf{w}_2, \ ..., \ \mathbf{w}_n sono linearmente indipendenti tra loro, in quanto ortogonali, e quindi formano una base ortogonale di V.

 

Processo di ortogonalizzazione di Gram-Schmidt

 

La dimostrazione del teorema di Gram-Schmidt ci mostra come ortogonalizzare un insieme di vettori linearmente indipendenti di uno spazio vettoriale.

 

Se \mathbf{v}_1,\mathbf{v}_2,...,\mathbf{v}_n sono vettori linearmente indipendenti di V, a partire da essi si può costruire un insieme di vettori ortogonali \mathbf{w}_1,\mathbf{w}_2,...,\mathbf{w}_n, mediante il cosiddetto algoritmo di ortogonalizzazione di Gram-Schmidt:

 

\\ \mathbf{w}_1=\mathbf{v}_1 \\ \\ \mathbf{w}_2=\mathbf{v}_2 - \frac{\langle \mathbf{v}_2, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 \\ \\ \\ \mathbf{w}_3=\mathbf{v}_3 - \frac{\langle \mathbf{v}_3, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 - \frac{\langle \mathbf{v}_3, \mathbf{w}_2 \rangle}{\langle \mathbf{w}_2, \mathbf{w}_2 \rangle}\mathbf{w}_2 \\ \\ ... \\ \\ \mathbf{w}_n=\mathbf{v}_n - \frac{\langle \mathbf{v}_n, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 - \frac{\langle \mathbf{v}_n, \mathbf{w}_2 \rangle}{\langle \mathbf{w}_2, \mathbf{w}_2 \rangle}\mathbf{w}_2 - ... - \frac{\langle \mathbf{v}_n, \mathbf{w}_{n-1} \rangle}{\langle \mathbf{w}_{n-1}, \mathbf{w}_{n-1} \rangle}\mathbf{w}_{n-1}

 

Equivalente e particolarmente comoda è la formulazione compatta:

 

\mathbf{w}_1=\mathbf{v}_1\\ \\ \mathbf{w}_i= \mathbf{v}_i-\sum_{j=1}^ {i-1}\frac{\langle \mathbf{v}_i, \mathbf{w}_j \rangle}{\langle \mathbf{w}_j, \mathbf{w}_j \rangle}\mathbf{w}_j\ \ \mbox{ con }i\in\{2,3,...,n\}

 

In virtù del corollario, se \{\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_n\} è una base di V, allora i vettori \mathbf{w}_1, \ \mathbf{w}_2, \ ..., \ \mathbf{w}_n ottenuti col processo di ortogonalizzazione, formano una base ortogonale di V che, eventualmente, può essere ortonormalizzata dividendo le componenti di ciascun vettore per la relativa norma.

 

Esempi di applicazione dell'algoritmo di Gram-Schmidt

 

Esempio 1

 

Sia W un sottospazio vettoriale di \mathbb{R}^4 generato dai vettori

 

\mathbf{v}_1=(1,1,0,0), \ \mathbf{v}_2=(1,0,0,0), \ \mathbf{v}_3=(0,0,0,1)

 

Determinare una base ortonormale di W.

 

Svolgimento: innanzitutto stabiliamo se i vettori assegnati sono linearmente indipendenti. Costruiamo la matrice avente per colonne le componenti dei vettori e calcoliamone il rango: se è massimo allora i vettori sono linearmente indipendenti.

 

A=\begin{pmatrix}1&1&0 \\ 1&0&0 \\ 0&0&0 \\ 0&0&1\end{pmatrix}

 

La sottomatrice di ordine 3 che si ricava escludendo la terza riga di A ha determinante non nullo, dunque il rango di A è massimo e \mathbf{v}_1,\mathbf{v}_2,\mathbf{v}_3 sono linearmente indipendenti.

 

Possiamo innescare il processo di ortogonalizzazione, in cui il prodotto scalare \langle \ , \ \rangle è il prodotto scalare canonico, che per comodità indichiamo col simbolo \cdot

 

\\ \mathbf{w}_1= \mathbf{v}_1= (1,1,0,0) \\ \\ \\ \mathbf{w}_2 =\mathbf{v}_2 - \frac{\mathbf{v}_2 \cdot \mathbf{w}_1}{\mathbf{w}_1 \cdot \mathbf{w}_1}\mathbf{w}_1 = \\ \\ \\ = (1,0,0,0)-\frac{(1,0,0,0) \cdot (1,1,0,0)}{(1,1,0,0) \cdot (1,1,0,0)}(1,1,0,0) = \\ \\ \\ = (1,0,0,0)-\frac{1+0+0+0}{1+1}(1,1,0,0)=(1,0,0,0)-\frac{1}{2}(1,1,0,0) = \\ \\ \\ = \left(\frac{1}{2}, -\frac{1}{2}, 0, 0\right ) \\ \\ \\ \mathbf{w}_3= \mathbf{v}_3 - \frac{\mathbf{v}_3 \cdot \mathbf{w}_1}{\mathbf{w}_1 \cdot \mathbf{w}_1}\mathbf{w}_1 - \frac{\mathbf{v}_3 \cdot \mathbf{w}_2}{\mathbf{w}_2 \cdot \mathbf{w}_2}\mathbf{w}_2 = \\ \\ \\ =(0,0,0,1)-\frac{(0,0,0,1) \cdot (1,1,0,0)}{(1,1,0,0) \cdot (1,1,0,0)}(1,1,0,0) + \\ \\ \\ - \frac{(0,0,0,1) \cdot \left( \frac{1}{2}, -\frac{1}{2}, 0, 0 \right)}{\left(\frac{1}{2}, -\frac{1}{2}, 0, 0 \right) \cdot \left(\frac{1}{2}, -\frac{1}{2}, 0, 0 \right)} \left(\frac{1}{2}, -\frac{1}{2}, 0, 0 \right) = \\ \\ \\ = (0,0,0,1)-\frac{0+0+0+0}{1+1+0+0}(1,1,0,0)-\frac{(0+0+0+0)}{\left(\frac{1}{4}+\frac{1}{4}+0+0\right)}(1,1,0,0) = \\ \\ \\ = (0,0,0,1)-(0,0,0,0)-(0,0,0,0)=(0,0,0,1)

 

I vettori appena costruiti:

 

\mathbf{w}_1=(1,1,0,0), \ \ \ \mathbf{w}_2=\left(\frac{1}{2}, -\frac{1}{2}, 0, 0\right), \ \ \ \mathbf{w}_3=(0,0,0,1)

 

costituiscono una base ortogonale di W; per determinarne una base ortonormale basta normalizzarli.

 

\\ \mathbf{w}'_1= \frac{\mathbf{w}_1}{||\mathbf{w}_1||}=\frac{(1,1,0,0)}{\sqrt{1^2+1^2+0^2+0^2}}=\\ \\ \\ =\frac{1}{\sqrt{2}}(1,1,0,0)=\left(\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}, 0, 0\right) \\ \\ \\ \mathbf{w}'_2= \frac{\mathbf{w}_2}{||\mathbf{w}_2||}=\frac{\left(\frac{1}{2}, -\frac{1}{2}, 0, 0\right)}{\sqrt{\left(\frac{1}{2}\right)^2+\left(-\frac{1}{2}\right)^2 +0+0}}=\\ \\ \\ =\frac{1}{\sqrt{\frac{1}{2}}}\left(\frac{1}{2}, -\frac{1}{2}, 0, 0\right)=\left(\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}}, 0, 0\right)

 

\mathbf{w}_3 ha già norma 1, quindi la base ortonormale cercata è

 

\mathcal{B}'=\left\{\left(\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}, 0, 0\right), \ \left(\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}}, 0, 0\right), \ (0,0,0,1)\right\}

 

 

Esempio 2

 

Ortonormalizzare la seguente base di \mathbb{R}^3

 

\mathcal{B}=\{(0,0,1), \ (2,0,0), \ (0,-1,0)\}

 

rispetto al seguente prodotto scalare

 

\\ \langle \ , \ \rangle: \mathbb{R}^3 \times \mathbb{R}^3 \to \mathbb{R} \\ \\ \langle \mathbf{x}, \mathbf{y} \rangle = x_1y_1+x_1y_3+x_2y_2+x_3y_1+2x_3y_3

 

Svolgimento: poniamo

 

\mathbf{v}_1=(0,0,1), \ \mathbf{v}_2=(2,0,0), \ \mathbf{v}_3=(0,-1,0)

 

e rendiamo tale base ortogonale applicando il processo di ortogonalizzazione di Gram Schmidt. I vettori della base ortogonalizzata sono \mathbf{w}_1,\mathbf{w}_2,\mathbf{w}_3, con

 

\\ \mathbf{w}_1=\mathbf{v}_1 \\ \\ \mathbf{w}_2=\mathbf{v}_2 - \frac{\langle \mathbf{v}_2, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 \\ \\ \\ \mathbf{w}_3=\mathbf{v}_3 - \frac{\langle \mathbf{v}_3, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 - \frac{\langle \mathbf{v}_3, \mathbf{w}_2 \rangle}{\langle \mathbf{w}_2, \mathbf{w}_2 \rangle}\mathbf{w}_2

 

dunque

 

\mathbf{w}_1=\mathbf{v}_1=(0,0,1)

 

Per determinare \mathbf{w}_2 calcoliamo dapprima i prodotti

 

\\ \langle \mathbf{v}_2, \mathbf{w}_1 \rangle = \langle (2,0,0), \ (0,0,1) \rangle = \\ \\ = (2)(0)+(2)(1)+(0)(0)+(0)(0)+2(0)(1) = 2 \\ \\ \langle \mathbf{w}_1, \mathbf{w}_1 \rangle = \langle (0,0,1), \ (0,0,1) \rangle = \\ \\ = (0)(0)+(0)(1)+(0)(0)+(1)(0)+2(1)(1) = 2

 

di conseguenza

 

\\ \mathbf{w}_2=\mathbf{v}_2 - \frac{\langle \mathbf{v}_2, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 = \\ \\ \\ = (2,0,0)-\frac{2}{2}(0,0,1) = (2,0,0)-(0,0,1) = (2,0,-1)

 

Ancora una volta, prima di procedere al calcolo di \mathbf{w}_3 determiniamo i valori dei prodotti scalari

 

\\ \langle \mathbf{v}_3, \mathbf{w}_1 \rangle = \langle (0,-1,0), \ (0,0,1) \rangle = \\ \\ = (0)(0)+(0)(1)+(-1)(0)+(0)(0)+2(0)(1) = 0 \\ \\ \langle \mathbf{v}_3, \mathbf{w}_2 \rangle = \langle (0,-1,0), \ (2,0,-1) \rangle = \\ \\ = (0)(2)+(0)(-1)+(-1)(0)+(0)(2)+2(0)(-1) = 0

 

quindi

 

\\ \mathbf{w}_3=\mathbf{v}_3 - \frac{\langle \mathbf{v}_3, \mathbf{w}_1 \rangle}{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle}\mathbf{w}_1 - \frac{\langle \mathbf{v}_3, \mathbf{w}_2 \rangle}{\langle \mathbf{w}_2, \mathbf{w}_2 \rangle}\mathbf{w}_2 = \\ \\ = \mathbf{v}_3-0-0 = \mathbf{v}_3 = (0,-1,0)

 

La base ortogonale cercata è

 

\{\mathbf{w}_1, \mathbf{w}_2, \mathbf{w}_3\}=\{(0,0,1), \ (2,0,-1), \ (0,-1,0)\}

 

e per ortonormalizzarla dobbiamo dividere ciascun vettore per la relativa norma.

 

\\ ||\mathbf{w}_1||=\sqrt{\langle \mathbf{w}_1, \mathbf{w}_1 \rangle} = \sqrt{2} \\ \\ ||\mathbf{w}_2||=\sqrt{\langle \mathbf{w}_2, \mathbf{w}_2 \rangle} = \sqrt{\langle (2,0,-1), \ (2,0,-1)\rangle} = \\ \\ = \sqrt{(2)(2)+(2)(-1)+(0)(0)+(-1)(2)+2(-1)(-1)}= \\ \\ = \sqrt{4-2-2+2}=\sqrt{2} \\ \\ ||\mathbf{w}_3||=\sqrt{\langle \mathbf{w}_3, \mathbf{w}_3 \rangle} = \sqrt{\langle (0,-1,0), \ (0,-1,0)\rangle} = \\ \\ = \sqrt{(0)(0)+(0)(0)+(-1)(-1)+(0)(0)+2(0)(0)}= \\ \\ = \sqrt{1}=1

 

I vettori normalizzati sono

 

\\ \mathbf{w}'_1=\frac{\mathbf{w}_1}{||\mathbf{w}_1||}=\frac{1}{\sqrt{2}}(0,0,1)=\left(0,0,\frac{1}{\sqrt{2}}\right) \\ \\ \\ \mathbf{w}'_2=\frac{\mathbf{w}_2}{||\mathbf{w}_2||}=\frac{1}{\sqrt{2}}(2,0,-1)=\left(\frac{2}{\sqrt{2}},0,-\frac{1}{\sqrt{2}}\right) \\ \\ \\ \mathbf{w}'_3=\frac{\mathbf{w}_3}{||\mathbf{w}_3||}=\frac{1}{1}(0,-1,0)=(0,-1,0)

 

e \mathcal{B}'=\{\mathbf{w}_1', \mathbf{w}_2', \mathbf{w}_3'\} è la base ortonormalizzata richiesta dall'esercizio.

 

Usare Gram-Schmidt per trovare una matrice ortogonale avendo una colonna (o una riga)

 

Altra tipologia di esercizi in cui si richiede l'utilizzo del metodo di Gram-Schmidt è quella in cui viene richiesto di determinare una matrice ortogonale di ordine n conoscendo solo una sua colonna (o una sua riga).

 

Ricordiamo che una matrice si dice ortogonale se e solo se le sue colonne (o le sue righe) formano una base ortonormale di \mathbb{R}^n. Equivalentemente, una matrice ortogonale è una matrice quadrata a entrate reali A\in \mathbb{R}^{n,n} tale che il prodotto con la sua trasposta coincide con la matrice identità.

 

A \in \mathbb{R}^{n,n} \mbox{ matrice ortogonale} \iff A A^{T}= A^{T}A= \mbox{Id}_{n}

 

Ecco i passi da seguire per risolvere questo genere di esercizi:

 

(1) considerare l'insieme formato dal solo vettore le cui componenti sono gli elementi della riga o della colonna assegnata.

 

(2) Completare il precedente insieme a base di \mathbb{R}^n seguendo uno dei metodi spiegati nella lezione sul completamento a base.

 

(3) Applicare il processo di Gram-Schmidt ai vettori della base costruita.

 

(4) Normalizzare i vettori ottenuti nel passo 3).

 

(5) Formare la matrice scrivendo i vettori normalizzati per colonna o per riga.

 

Esempio di costruzione di una matrice ortogonale

 

Determinare una matrice ortogonale avente per colonna il vettore

 

\mathbf{v}_1= \left(\frac{3}{5}, \frac{4}{5}, 0\right)

 

Svolgimento: \mathbf{v}_1 \in \mathbb{R}^3, quindi completiamo a base di \mathbb{R}^3 l'insieme formato dal solo vettore \mathbf{v}_1.

 

Sia \mathcal{C}=\{\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3\} la base canonica di \mathbb{R}^3 e consideriamo l'insieme

 

\{\mathbf{v}_1, \mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3\}

 

che è un sistema di generatori di \mathbb{R}^3. È quindi sufficiente estrarne una base.

 

Procediamo col metodo degli scarti successivi.

 

I vettori \mathbf{v}_1 e \mathbf{e}_1 sono linearmente indipendenti, infatti il rango della matrice avente per colonne le loro componenti ha rango massimo.

 

Studiamo ora l'indipendenza lineare tra \mathbf{v}_1, \mathbf{e}_1, \mathbf{e}_2.

 

La matrice

 

\begin{pmatrix}\frac{3}{5}&1&0 \\ \frac{4}{5}&0&1 \\ 0&0&0\end{pmatrix}

 

ha determinante nullo, quindi \mathbf{v}_1, \mathbf{e}_1, \mathbf{e}_2 sono linearmente dipendenti e \mathbf{e}_2 va scartato.

 

La base di \mathbb{R}^3 cercata è allora formata dai vettori \mathbf{v}_1, \ \mathbf{e}_1, \ \mathbf{e}_3.

 

Ortogonalizziamola usando il processo di Gram-Schmidt.

 

\\ \mathbf{w}_1=\mathbf{v}_1=\left(\frac{3}{5}, \frac{4}{5}, 0\right) \\ \\ \\ \mathbf{w}_2 =\mathbf{e}_1 - \frac{\mathbf{e}_1 \cdot \mathbf{w}_1}{\mathbf{w}_1 \cdot \mathbf{w}_1}\mathbf{w}_1 =\left(\frac{16}{25},-\frac{12}{25},0\right) \\ \\ \\ \mathbf{w}_3= \mathbf{e}_3 - \frac{\mathbf{e}_3 \cdot \mathbf{w}_1}{\mathbf{w}_1 \cdot \mathbf{w}_1}\mathbf{w}_1 - \frac{\mathbf{e}_3 \cdot \mathbf{w}_2}{\mathbf{w}_2 \cdot \mathbf{w}_2}\mathbf{w}_2 = (0,0,1)

 

I vettori che abbiamo determinato sono ortogonali - non ortonormali - e dobbiamo necessariamente normalizzarli, altrimenti la matrice che ne scaturirebbe non sarebbe ortogonale.

 

\mathbf{v}_1 \mbox{ e } \mathbf{w}_3 hanno norma 1, rimane quindi da normalizzare il vettore

 

\mathbf{w}_2=\left(\frac{16}{25},-\frac{12}{25},0\right)

 

Calcoliamone la norma

 

||\mathbf{w}_2||=\sqrt{\left(\frac{16}{25}\right)^2+\left(-\frac{12}{25}\right)^2+0^2}=\\ \\ \\ =\sqrt{\frac{256+144}{625}}=\sqrt{\frac{400}{625}}=\frac{20}{25}=\frac{4}{5}

 

Il vettore normalizzato è

 

\mathbf{w}'_2=\frac{\mathbf{w}_2}{||\mathbf{w}_2||}=\frac{\left(\frac{16}{25},-\frac{12}{25},0\right)}{\frac{4}{5}}=\left(\frac{4}{5},-\frac{3}{5},0\right)

 

La matrice cercata ha per colonne le componenti dei vettori

 

\\ \mathbf{v}_1=\left(\frac{3}{5}, \frac{4}{5}, 0\right) \\ \\ \\ \mathbf{w}'_2=\left(\frac{4}{5},-\frac{3}{5},0\right) \\ \\ \\ \mathbf{e}_3=(0,0,1)

 

dunque

 

A=\begin{pmatrix}\frac{3}{5}& \frac{4}{5}& 0\\ \frac{4}{5}&-\frac{3}{5}&0\\ 0& 0& 1\end{pmatrix}

 

Per verificare che A è effettivamente una matrice ortogonale lasciamo a voi il compito di svolgere i prodotti riga per colonna A A^T \mbox{ e } A^T A, e vedere che entrambi restituiscono la matrice identità.

 

 


 

Abbiamo portato a termine questa lezione. Il procedimento di Gram-Schmidt non è nulla di difficile, richiede solo qualche attenzione nei conti. Per qualsiasi approfondimento o se vi occorrono altri esempi potete utilizzare la barra di ricerca di YouMath o consultare la scheda correlata di esercizi svolti.

 

 

Buona Matematica a tutti!

Giuseppe Carichino (Galois)

 

Lezione precedente.....Esercizi correlati.....Lezione successiva

 
 

Tags: enunciato e dimostrazione del teorema di ortogonalizzazione di Gram-Schmidt - processo di Gram-Schmidt - come applicare la procedura di Gram-Schmidt per ricavare una base ortonormale.