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 partire da una base qualsiasi e di ricavare una base ortogonale e con un passo in più una base ortonormale!

 

Forse è il caso di partire dalle definizioni. ;)

 

 

Definizione di base ortogonale e ortonormale

 

Una base \mathcal{B}= \left\{u_1, u_2,\dots, u_n\right\} di V, spazio vettoriale su un campo \mathbb{K},  di dimensione n è ortogonale se e solo se per definizione:


C-1) u_i\cdot u_j=0\, \mbox{ per ogni }i\ne j (prodotto scalare nullo prendendo vettori a due a due distinti, per ogni possibile coppia di vettori distinti).

 

Diremo che è ortonormale se soddisfa la condizione C-1) e la condizione:

 

C-2) u_i\cdot u_i=1\mbox{ per ogni }i=1...n (ogni vettore ha norma 1).

 

 

Osservazione: una base ortonormale è anche ortogonale, mentre una base ortogonale non è in generale ortonormale. 

 

 

Esempi

 

E-1) In \mathbb{R}^3, la base canonica B=\{e_1,e_2,e_3\}

 

e_1= \begin{pmatrix}1\\0\\0\end{pmatrix}, \quad e_2= \begin{pmatrix}0\\1\\0\end{pmatrix},\quad e_3=\begin{pmatrix}0\\ 0\\ 1\end{pmatrix}

 

è una base ortonormale, soddisfa infatti le condizioni C-1) e C-2)

 

 

E-2) In \mathbb{R}^3 la base B=\{v_1,v_2,v_3}\}

 

v_1= \begin{pmatrix}2\\ 0\\0 \end{pmatrix},\quad v_2= \begin{pmatrix}0\\ 2\\0\end{pmatrix}\quad v_3=\begin{pmatrix}0\\ 0\\ 2\end{pmatrix}

 

è una base ortogonale perché rispetta la condizione C-1) ma non la C-2) dunque non è ortonormale.

 

 

Dopo questa piccola parentesi, entriamo nel vivo dell'argomento introducendo il...

 

Teorema di ortogonalizzazione di Gram-Schmidt

 

Siano V uno spazio vettoriale di dimensione n e \{v_1,v_2,...v_n\} una sua base. Supponiamo che su V sia stato definito un prodotto scalare (non necessariamente canonico)

 

\cdot: V\times V\to \mathbb{R}

 

allora possiamo costruire una nuova famiglia di vettori \{w_1,w_2,...,w_n\} che sono a due a due ortogonali che formano una base di V.

 

Dimostrazione

 

Per prima costruiamo i vettori w1, w2, ..., wn, come segue:

 

Processo di ortogonalizzazione

 

\begin{align*}w_1&=v_1\\ w_2&= v_2- \frac{v_2\cdot w_1}{w_1\cdot w_1} w_1\\ w_3&= v_3-\frac{v_3\cdot w_1}{w_1\cdot w_1}w_1- \frac{v_3\cdot w_2}{w_2\cdot w_2}w_2\\ \vdots &\\ w_i&= v_i-\frac{v_i\cdot w_1}{w_1\cdot w_1}w_1-\frac{v_i\cdot w_2}{w_2\cdot w_2}w_2-\cdots-\frac{v_i\cdot w_{i-1}}{w_{i-1}\cdot w_{i-1}}w_{i-1}\,\,\mbox{ con }i=1,\dots, n\end{align}

 

Equivalente e particolarmente comoda è la notazione:

 

w_i= v_i-\sum_{j=1}^ {i-1}\frac{v_i\cdot w_j}{w_j\cdot w_j}w_j\mbox{ con }i=1,\dots n

 

La nuova famiglia di vettori è una base di V, è importante ricordare che vettori ortogonali non nulli formano una base (dimostrazione lasciata al lettore). I vettori wi sono certamente non nulli, se lo fossero allora:

 

w_i=\mathbf{0}\implies v_i= \sum_{j=1}^{i-1} \frac{v_i\cdot w_j}{w_j\cdot w_j} w_j

 

ovvero vi è combinazione lineare dei vettori v1,...,vi-1, ma questo va contro le ipotesi che {v1, ..., vn} è una base.

 

Non ci rimane altro che verificare che in effetti i vettori w1,..., wn sono a due a due ortogonali, ovvero soddisfano la condizione C-1), procederemo per induzione.

 

Passo base:

 

w_1\cdot w_2= 0

 

Infatti:

 

\begin{align*}w_1\cdot w_2& =_{(a)} w_1\cdot\left(v_2- \frac{v_2\cdot w_1}{w_1\cdot w_1}w_1\right)\\&=_{(b)} w_1\cdot v_2-\frac{v_2\cdot w_1}{w_1\cdot w_1}(w_1\cdot w_1)\\&=_{(c)} w_1\cdot v_2- v_2\cdot w_1= 0\end{align}

 

Non spaventatevi di questi passaggi! In (a) abbiamo scritto il vettore w_2 come combinazione lineare dei vettori w_1,v_2, questa espressione scaturisce dallo stesso processo di Gram- Schmidt. In (b) abbiamo sfruttato la linearità del prodotto scalare rispetto alla seconda componente, e infine in (c) abbiamo semplificato i termini w_1 \cdot w_1. Quello che ci rimarrà è zero.

 

Passo induttivo: supponiamo che {w1, w2,...wi-1} sia una famiglia di vettori ortogonali a due a due. Si ha quindi che:

 

w_j\cdot w_k=0\quad j\ne k\quad\mbox{ con }j=1,..., i-1, k=1,..., i-1

 

Passo finale: dimostreremo che wi è ortogonale ad ogni vettore wk con k=1, ..., i-1.

 

\begin{align*}w_k\cdot w_i& =_{(1)} w_k\cdot \left(v_i-\sum_{j=1}^{i-1}\frac{v_i\cdot w_j}{w_j\cdot w_j} w_j\right)\\ &=_{(2)} w_k\cdot v_i-\sum_{j=1}^{i-1}\frac{v_i\cdot w_j}{w_j\cdot w_j }(w_k\cdot w_j) \end{align}

 

Nel passaggio (1) abbiamo sostituito al vettore w_i la sua espressione equivalente data dal processo di Gram-Schmidt. Nel passaggio (2) abbiamo sfruttato invece la linearità del prodotto scalare rispetto alla seconda componente. 

Per l'ipotesi induttiva w_j\cdot w_k=0\mbox{ se }j\ne k si ha che:

 

\sum_{j=1}^{i-1}\frac{v_i\cdot w_j}{w_j\cdot w_j }(w_k\cdot w_j)= v_i\cdot w_k

 

dunque:

 

w_k\cdot w_i&= w_k\cdot v_i- v_i\cdot w_k= 0

 

Ah, che faticaccia! :| Abbiamo praticamente finito: i vettori {w1, w2, ..., wn} sono a due a due ortogonali e inoltre sono diversi da zero, formano quindi una base ortogonale per V.

 

Normalizzazione della base

 

Da una base ortogonale possiamo costruire una base ortonormale dividendo i vettori trovati per la loro norma

 

e_i= \frac{w_i}{||w_i||}\quad i=1,..., n 

 

Si dimostra abbastanza agevolmente che

 

e_i\cdot e_j= \begin{cases}0&\mbox{ se }i\ne j\\ 1&\mbox{ se }i=j\end{cases}.

 

Stiamo dicendo che il prodotto scalare dei due vettori è 1 se essi coincidono, è zero altrimenti. 

 

Come trovare una base ortonormale con Gram-Schmidt

 

Esercizio classico: consiste nel determinare una base ortonormale avendo una base qualsiasi. Come si fa? Semplicissimo, applicheremo il metodo di ortogonalizzazione di Gram-Schmidt dopodiché normalizzeremo i vettori ottenuti. 

 

Esempio:


E-3) Sia W un sottospazio di \mathbb{R}^4 generato da  \left\{v_1=(1,1,0,0)^T, v_2= (1, 0,0,0)^T, v_3= (0,0,0,1)^T\right\}, troveremo una base ortonormale di W.

 

Passo 1: inneschiamo il metodo di Gram-Schmidt:

 

w_1= v_1= \begin{pmatrix}1\\1\\ 0\\ 0\end{pmatrix}

 

w_2= v_2- \frac{v_2\cdot w_1}{w_1\cdot w_1}w_1= \begin{pmatrix}\frac{1}{2}\\ -\frac{1}{2}\\ 0\\ 0\end{pmatrix}

 

w_3= v_3- \frac{v_3\cdot w_1}{w_1\cdot w_1}w_1- \frac{v_3\cdot w_2}{w_2\cdot w_2}w_2= \begin{pmatrix}0\\ 0\\ 0 \\ 1\end{pmatrix}

 

I vettori appena costruiti costituiscono una base ortogonale per il sottospazio vettoriale W. 

 

Passo 2: normalizziamo i vettori

 

e_1= \frac{w_1}{||w_1||}=\begin{pmatrix}\frac{1}{\sqrt{2}}\\ \frac{1}{\sqrt{2}}\\0\\0\end{pmatrix}

 

e_2= \frac{w_2}{||w_2||}=\begin{pmatrix}\frac{1}{\sqrt{2}}\\ -\frac{1}{\sqrt{2}}\\0\\0\end{pmatrix}

 

e_3= \frac{w_3}{||w_3||}=\begin{pmatrix}0\\ 0\\0\\1\end{pmatrix}

 

I vettori e_1,\, e_2,\, e_3 formano una base ortonormale di W, che è quello che volevamo! :) 

 

Bisogna stare attenti a tre cose:

 

1. assicurarsi che i vettori che vengono dati dalla traccia siano effettivamente linearmente indipendenti;

 

2. ricordarsi che il metodo di Gram-Schmidt ci costruisce dei vettori ortogonali a due a due;

 

3. normalizzare i vettori fuoriusciti dal metodo;

 

3bis. i conti: possono diventare alquanto antipatici e un calcolo errato pregiudica l'intero procedimento. 

 

Usare Gram-Schmidt per trovare la matrice ortogonale avendo un 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, o equivalentemente:

 

Definizione: una matrice quadrata a entrate reali A\in \mathbb{R}^{n\times n} è ortogonale se e solo se A A^{T}= A^{T}A= I_{n}, ovvero quando il prodotto di A per la sua trasposta coincide con la matrice identità.

 

Come fare?

 

Passo 1: consiste nell'accostare alla colonna in nostro possesso n-1 vettori colonna linearmente indipendenti. Consiglio: facciamoci furbi, prendendo gli elementi della base canonica di \mathbb{R}^n

 

Passo 2: applichiamo il processo di Gram-Schmidt ai vettori in nostro possesso. Il processo ci darà dei vettori ortogonali.

 

Passo 3: normalizziamo i vettori ottenuti nel passo 2.

 

Passo 4: scriviamo i vettori normalizzati in una matrice per colonna (o per riga).

Abbiamo ottenuto la matrice di cui avevamo bisogno! :) 

 

Esempio:

 

E-4) Troviamo una matrice ortogonale avente per colonna il vettore v_1= \begin{pmatrix}\frac{3}{5}\\ \frac{4}{5}\\ 0\end{pmatrix}

 

Accostiamo i vettori v_2= \begin{pmatrix}0\\1\\0 \end{pmatrix},\, v_3= \begin{pmatrix}0\\0\\1\end{pmatrix} e applichiamo il metodo di ortogonalizzazione di Gram-Schmidt. Iniziamo!

 

w_1=v_1

 

w_2= v_2- \frac{v_2\cdot w_1}{w_1\cdot w_1}w_1=\begin{pmatrix}-\frac{12}{25}\\ \frac{9}{25}\\ 0\end{pmatrix}

 

w_3= v_3- \frac{v_3\cdot w_1}{w_1\cdot w_1}w_1- \frac{v_3\cdot w_2}{w_2\cdot w_2}w_2=\begin{pmatrix}0\\ 0\\ 1\end{pmatrix}

 

Attenzione, i vettori che abbiamo appena determinato sono ortogonali, non ortonormali, dobbiamo necessariamente normalizzarli, altrimenti la matrice che ne scaturirà non è ortogonale!!

 

e_1= \frac{w_1}{||w_1||}= w_1

 

e_2= \frac{w_2}{||w_2||}= \begin{pmatrix}-\frac{4}{5}\\ \frac{3}{5}\\ 0\end{pmatrix}

 

e_3= \frac{w_3}{||w_3||}= \begin{pmatrix}0\\0 \\1\end{pmatrix}

 

La matrice cercata è quindi:

 

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

 

infatti AA^T= A^T A= I.

 

 


 

Abbiamo portato a termine questa lezione. Il procedimento di Gram-Schmidt non è nulla di difficile, richiede solo qualche attenzione nei conti, se avete bisogno di una mano per qualche esercizio, oppure sentite la necessità di chiedere ulteriori approfondimenti, utilizzate la barra di ricerca di YouMath.it, avete inoltre la possibilità di porre una domanda sul forum! :) 

 

Alla prossima!

Salvatore Zungri A.K.A. Ifrit

 

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


Tags: dimostrazione del teorema di ortogonalizzazione di Gram-Schmidt - come applicare la procedura di Gram-Schmidt per ricavare una base ortonormale da un sistema di vettori linearmente indipendenti.