Ortogonalizzazione di Gram-Schmidt

Da testwiki.
Versione del 18 apr 2024 alle 07:15 di imported>Mat4free (fix minori)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

In matematica, e in particolare in algebra lineare, l'ortogonalizzazione Gram-Schmidt è un algoritmo che permette di ottenere un insieme di vettori ortogonali a partire da un generico insieme di vettori linearmente indipendenti in uno spazio vettoriale dotato di un prodotto scalare definito positivo.[1]

Storia

Il procedimento è così chiamato in onore del matematico danese Jørgen Pedersen Gram (1850-1916) e del matematico tedesco Erhard Schmidt (1876-1959); esso però è stato introdotto precedentemente ai loro studi e si trova in lavori di Laplace e Cauchy.

Quando si implementa l'ortogonalizzazione su un computer, al processo di Gram-Schmidt di solito si preferisce la trasformazione di Householder, in quanto questa è numericamente più stabile, cioè gli errori causati dall'arrotondamento sono minori.

L'algoritmo

Sia V uno spazio vettoriale reale con un prodotto scalare definito positivo. Siano 𝐯1,,𝐯n vettori linearmente indipendenti in V. L'algoritmo di Gram-Schmidt restituisce n vettori linearmente indipendenti 𝐞1,,𝐞n tali che:

Span(𝐯1,,𝐯i)=Span(𝐞1,,𝐞i),i

e

𝐞i,𝐞j={1i=j,0ij,ei=1,i

In altre parole, i vettori restituiti sono ortonormali, ed i primi i generano lo stesso sottospazio dei primi i vettori iniziali.[1]

Procedimento

La proiezione ortogonale è la funzione che "proietta" il vettore 𝐯 in modo ortogonale su 𝐮:[2]

proj𝐮(𝐯)=𝐯,𝐮𝐮,𝐮𝐮.

Il procedimento di Gram–Schmidt permette di costruire una base ortogonale 𝐮1,,𝐮n a partire da una base generica 𝐯1,,𝐯n. Per calcolare 𝐮i si proietta 𝐯i ortogonalmente sul sottospazio Ui1 generato da {𝐮1,𝐮2,,𝐮i1}. Si definisce allora 𝐮i come differenza tra 𝐯i e questa proiezione, in modo che risulta garantito che esso sia ortogonale a tutti i vettori nel sottospazio Ui1. Normalizzando poi la base ortogonale (cioè dividendo ogni vettore 𝐮i che la compone per la propria norma 𝐮i) si ottiene una base ortonormale dello spazio.[3]

Nello specifico:

I primi due passi dell'algoritmo.
𝐮1=𝐯1,𝐞1=𝐮1𝐮1𝐮2=𝐯2proj𝐮1(𝐯2),𝐞2=𝐮2𝐮2𝐮3=𝐯3proj𝐮1(𝐯3)proj𝐮2(𝐯3),𝐞3=𝐮3𝐮3𝐮4=𝐯4proj𝐮1(𝐯4)proj𝐮2(𝐯4)proj𝐮3(𝐯4),𝐞4=𝐮4𝐮4    𝐮k=𝐯kj=1k1proj𝐮j(𝐯k),𝐞k=𝐮k𝐮k.

dove {𝐞i} è la base normalizzata.

Una verifica immediata della correttezza del procedimento eseguito, ovvero che si è ottenuto un insieme di vettori mutuamente ortogonali, è il calcolo del prodotto scalare fra 𝐮i e 𝐞j.

Generalizzazioni

Il processo di Gram-Schmidt si applica anche ad una successione infinita {𝐯i}i di vettori linearmente indipendenti. Il risultato è sempre una successione {𝐞i}i di vettori ortogonali e con norma unitaria, tale che:

Span(𝐯1,,𝐯i)=Span(𝐞1,,𝐞i),i.

Scrittura per mezzo del determinante

Il risultato del procedimento di Gram-Schmidt può essere espresso in modo non ricorsivo utilizzando il determinante:

𝐞j=1Dj1Dj|𝐯1,𝐯1𝐯2,𝐯1𝐯j,𝐯1𝐯1,𝐯2𝐯2,𝐯2𝐯j,𝐯2𝐯1,𝐯j1𝐯2,𝐯j1𝐯j,𝐯j1𝐯1𝐯2𝐯j|,
𝐮j=1Dj1|𝐯1,𝐯1𝐯2,𝐯1𝐯j,𝐯1𝐯1,𝐯2𝐯2,𝐯2𝐯j,𝐯2𝐯1,𝐯j1𝐯2,𝐯j1𝐯j,𝐯j1𝐯1𝐯2𝐯j|,

dove D0=1, e per j1 si indica con Dj il determinante della matrice di Gram:

Dj=|𝐯1,𝐯1𝐯2,𝐯1𝐯j,𝐯1𝐯1,𝐯2𝐯2,𝐯2𝐯j,𝐯2𝐯1,𝐯j𝐯2,𝐯j𝐯j,𝐯j|.

Esempio

Dati i vettori 𝐯1=(3,1) e 𝐯2=(2,2) nel piano euclideo 2 munito del prodotto scalare standard, applicando il procedimento di Gram-Schmidt si ha:

𝐮1=𝐯1,
𝐮2=𝐯2proj𝐮1(𝐯2)=(2,2)proj(3,1)(2,2)=(2/5,6/5),

ottenendo i vettori 𝐮1 e 𝐮2 che sono ortogonali fra loro, come mostra il loro prodotto scalare:

𝐮1,𝐮2=(3,1),(2/5,6/5)=65+65=0.

Note

Bibliografia

Voci correlate

Collegamenti esterni

Template:Algebra lineare Template:Portale