În matematică și în special în algebră liniară , ortogonalizarea Gram-Schmidt este un algoritm care permite obținerea unui set de vectori ortogonali pornind de la un set generic de vectori liniar independenți într-un spațiu vectorial cu un produs scalar pozitiv definit . [1]
fundal
Procedura este denumită în onoarea matematicianului danez Jørgen Pedersen Gram (1850-1916) și a matematicianului german Erhard Schmidt (1876-1959); cu toate acestea, a fost introdus mai devreme în studiile lor și se găsește în lucrările lui Laplace și Cauchy .
Când se implementează ortogonalizarea pe un computer , transformarea Householder este de obicei preferată procesului Gram-Schmidt, deoarece acesta este mai stabil din punct de vedere numeric, adică erorile cauzate de rotunjire sunt mai puține.
Algoritmul
Este {\ displaystyle V} un spațiu vectorial real cu un produs scalar pozitiv definit . Lasa-i sa fie {\ displaystyle \ mathbf {v} _ {1}, \ ldots, \ mathbf {v} _ {n}} vectori liniar independenți în {\ displaystyle V} . Se întoarce algoritmul Gram-Schmidt {\ displaystyle n} vectori liniar independenți {\ displaystyle \ mathbf {e} _ {1}, \ ldots, \ mathbf {e} _ {n}} astfel încât:
- {\ displaystyle {\ mbox {Span}} (\ mathbf {v} _ {1}, \ ldots, \ mathbf {v} _ {i}) = {\ mbox {Span}} (\ mathbf {e} _ { 1}, \ ldots, \ mathbf {e} _ {i}) \ qquad \ forall i}
Și:
- {\ displaystyle \ langle \ mathbf {e} _ {i}, \ mathbf {e} _ {j} \ rangle = {\ begin {cases} 1 & i = j \\ 0 & i \ neq j \ end {cases }} \ qquad \ | {e_ {i}} \ | = 1 \ qquad \ forall i}
Cu alte cuvinte, vectorii returnați sunt ortonormali , iar primii {\ displaystyle i} generează același sub spațiu ca primul {\ displaystyle i} vectori inițiali. [1]
Metodă
Proiecția ortogonală este funcția care „proiectează” vectorul {\ displaystyle \ mathbf {v}} ortogonal pe {\ displaystyle \ mathbf {u}} : [2]
- {\ displaystyle \ mathrm {proj} _ {\ mathbf {u}} \, (\ mathbf {v}) = {\ langle \ mathbf {v}, \ mathbf {u} \ rangle \ over \ langle \ mathbf {u }, \ mathbf {u} \ rangle} \ mathbf {u},}
Procedura Gram - Schmidt permite construirea unei baze ortogonale {\ displaystyle \ mathbf {u} _ {1}, \ ldots, \ mathbf {u} _ {n}} plecând de la o bază generică {\ displaystyle \ mathbf {v} _ {1}, \ ldots, \ mathbf {v} _ {n}} . A calcula {\ displaystyle \ mathbf {u} _ {i}} este proiectat {\ displaystyle \ mathbf {v} _ {i}} ortogonal pe subspațiu {\ displaystyle U_ {i-1}} generat de {\ displaystyle \ {\ mathbf {u} _ {1}, \ mathbf {u} _ {2}, \ dots, \ mathbf {u} _ {i-1} \}} . Se definește atunci {\ displaystyle \ mathbf {u} _ {i}} ca diferență între {\ displaystyle \ mathbf {v} _ {i}} și această proiecție, astfel încât să se garanteze că este ortogonală la toți vectorii din subspațiu {\ displaystyle U_ {i-1}} . Apoi normalizarea bazei ortogonale (adică împărțirea fiecărui vector {\ displaystyle \ mathbf {u} _ {i}} care o compune pentru propria sa normă {\ displaystyle \ | \ mathbf {u} _ {i} \ |} ) se obține o bază ortonormală a spațiului. [3]
În special:
Primii doi pași ai algoritmului.
{\ displaystyle {\ begin {align} \ mathbf {u} _ {1} & = \ mathbf {v} _ {1}, & \ mathbf {e} _ {1} & = {\ mathbf {u} _ { 1} \ over \ | \ mathbf {u} _ {1} \ |} \\\ mathbf {u} _ {2} & = \ mathbf {v} _ {2} - \ mathrm {proj} _ {\ mathbf {u} _ {1}} \, (\ mathbf {v} _ {2}), & \ mathbf {e} _ {2} & = {\ mathbf {u} _ {2} \ over \ | \ mathbf {u} _ {2} \ |} \\\ mathbf {u} _ {3} & = \ mathbf {v} _ {3} - \ mathrm {proj} _ {\ mathbf {u} _ {1}} \, (\ mathbf {v} _ {3}) - \ mathrm {proj} _ {\ mathbf {u} _ {2}} \, (\ mathbf {v} _ {3}), și \ mathbf {e } _ {3} & = {\ mathbf {u} _ {3} \ over \ | \ mathbf {u} _ {3} \ |} \\\ mathbf {u} _ {4} & = \ mathbf {v } _ {4} - \ mathrm {proj} _ {\ mathbf {u} _ {1}} \, (\ mathbf {v} _ {4}) - \ mathrm {proj} _ {\ mathbf {u} _ {2}} \, (\ mathbf {v} _ {4}) - \ mathrm {proj} _ {\ mathbf {u} _ {3}} \, (\ mathbf {v} _ {4}) și \ mathbf {e} _ {4} & = {\ mathbf {u} _ {4} \ over \ | \ mathbf {u} _ {4} \ |} \\ & {} \ \ \ vdots && {} \ \ \ vdots \\\ mathbf {u} _ {k} & = \ mathbf {v} _ {k} - \ sum _ {j = 1} ^ {k-1} \ mathrm {proj} _ {\ mathbf { u} _ {j}} \, (\ mathbf {v} _ {k}), & \ mathbf {e} _ {k} & = {\ mathbf {u} _ {k} \ over \ | \ mathbf { u} _ {k} \ |}. \ end {align}}}
unde este {\ displaystyle \ {\ mathbf {e} _ {i} \}} este baza normalizată.
O verificare imediată a corectitudinii procedurii efectuate sau că a fost obținut un set de vectori ortogonali reciproc, este calculul produsului scalar între {\ displaystyle \ mathbf {u} _ {i}} Și {\ displaystyle \ mathbf {e} _ {j}} .
Generalizări
Procesul Gram-Schmidt se aplică și unei succesiuni infinite{\ displaystyle \ {\ mathbf {v} _ {i} \} _ {i}} a vectorilor liniar independenți. Rezultatul este întotdeauna o succesiune{\ displaystyle \ {\ mathbf {e} _ {i} \} _ {i}} de vectori ortogonali și cu normă unitară, astfel încât:
- {\ displaystyle {\ mbox {Span}} (\ mathbf {v} _ {1}, \ ldots, \ mathbf {v} _ {i}) = {\ mbox {Span}} (\ mathbf {e} _ { 1}, \ ldots, \ mathbf {e} _ {i}) \ qquad \ forall i}
Scrierea prin intermediul determinantului
Rezultatul procedurii Gram-Schmidt poate fi exprimat nerecursiv folosind determinantul :
- {\ displaystyle \ mathbf {u} _ {j} = {\ frac {1} {\ sqrt {D_ {j-1} D_ {j}}}} {\ begin {vmatrix} \ langle \ mathbf {v} _ {1}, \ mathbf {v} _ {1} \ rangle & \ langle \ mathbf {v} _ {2}, \ mathbf {v} _ {1} \ rangle & \ dots & \ langle \ mathbf {v} _ {j}, \ mathbf {v} _ {1} \ rangle \\\ langle \ mathbf {v} _ {1}, \ mathbf {v} _ {2} \ rangle & \ langle \ mathbf {v} _ {2}, \ mathbf {v} _ {2} \ rangle & \ dots & \ langle \ mathbf {v} _ {j}, \ mathbf {v} _ {2} \ rangle \\\ vdots & \ vdots & \ ddots & \ vdots \\\ langle \ mathbf {v} _ {1}, \ mathbf {v} _ {j-1} \ rangle & \ langle \ mathbf {v} _ {2}, \ mathbf {v} _ {j-1} \ rangle & \ dots & \ langle \ mathbf {v} _ {j}, \ mathbf {v} _ {j-1} \ rangle \\\ mathbf {v} _ {1} & \ mathbf {v} _ {2} & \ dots & \ mathbf {v} _ {j} \ end {vmatrix}}}
unde este {\ displaystyle D_ {0} = 1} , si pentru {\ displaystyle j \ geq 1} matricea {\ displaystyle D_ {j}} este matricea Gram :
- {\ displaystyle D_ {j} = {\ begin {vmatrix} \ langle \ mathbf {v} _ {1}, \ mathbf {v} _ {1} \ rangle & \ langle \ mathbf {v} _ {2}, \ mathbf {v} _ {1} \ rangle & \ dots & \ langle \ mathbf {v} _ {j}, \ mathbf {v} _ {1} \ rangle \\\ langle \ mathbf {v} _ {1 }, \ mathbf {v} _ {2} \ rangle & \ langle \ mathbf {v} _ {2}, \ mathbf {v} _ {2} \ rangle & \ dots & \ langle \ mathbf {v} _ { j}, \ mathbf {v} _ {2} \ rangle \\\ vdots & \ vdots & \ ddots & \ vdots \\\ langle \ mathbf {v} _ {1}, \ mathbf {v} _ {j} \ rangle & \ langle \ mathbf {v} _ {2}, \ mathbf {v} _ {j} \ rangle & \ dots & \ langle \ mathbf {v} _ {j}, \ mathbf {v} _ {j } \ rangle \ end {vmatrix}}}
Exemplu
Având în vedere vectorii {\ displaystyle \ mathbf {v} _ {1} = (3,1)} Și {\ displaystyle \ mathbf {v} _ {2} = (2,2)} în planul euclidian {\ displaystyle \ mathbb {R} ^ {2}} echipat cu produsul scalar standard, aplicând procedura Gram-Schmidt avem:
- {\ displaystyle \ mathbf {u} _ {1} = \ mathbf {v} _ {1}}
- {\ displaystyle \ mathbf {u} _ {2} = \ mathbf {v} _ {2} - \ mathrm {proj} _ {\ mathbf {u} _ {1}} (\ mathbf {v} _ {2} ) = (2,2) - \ mathrm {proj} _ {(3,1)} \, {(2,2)} = (- 2 / 5,6 / 5)}
obținerea vectorilor {\ displaystyle \ mathbf {u} _ {1}} Și {\ displaystyle \ mathbf {u} _ {2}} care sunt ortogonale între ele, așa cum arată produsul lor cu puncte:
- {\ displaystyle \ langle \ mathbf {u} _ {1}, \ mathbf {u} _ {2} \ rangle = \ left \ langle (3,1), (- 2 / 5,6 / 5) \ right \ rangle = - {\ frac {6} {5}} + {\ frac {6} {5}} = 0}
Notă
Bibliografie
- Serge Lang, Algebra liniară , Torino, Bollati Boringhieri , 1992, ISBN 88-339-5035-2 .
- (EN) Kenneth Hoffman, Ray Kunze, Algebra liniară , ediția a II-a, Englewood Cliffs, NJ, Prentice - Hall, inc., 1971, ISBN 0-13-536821-9 .
- ( EN ) FR Gantmacher, The theory of matrices , 1 , Chelsea, retipărire (1977)
- (EN) AG Kurosh, Algebra superioară, MIR (1972)
Elemente conexe
linkuri externe
- ( EN ) IV Proskuryakov, Orthogonalization , în Enciclopedia Matematicii , Springer și European Mathematical Society, 2002.
- (EN) Tutorial de matematică Harvey Mudd College pe algoritmul Gram-Schmidt (PDF) pe math.hmc.edu. Adus la 18 februarie 2015 (arhivat din original la 2 aprilie 2016) .
- (EN) Cele mai vechi utilizări cunoscute ale unora dintre cuvintele matematicii: G , din jeff560.tripod.com.
- ( EN ) Applet de ortogonalizare Gram-Schmidt , pe math.ucla.edu .
- ( EN ) NAG Gram - Schmidt ortogonalizarea a n vectori de ordin m rutină , la nag.co.uk.
- (EN) Dovadă: Raymond Puzio, Keenan Kidwell. „dovada algoritmului de ortogonalizare Gram-Schmidt” (versiunea 8). PlanetMath.org.
- ( EN ) Procesul Gram Schmidt în plan , pe bigsigma.com . Adus la 18 februarie 2015 (arhivat din original la 7 mai 2009) .
- ( EN ) Procesul Gram Schmidt în spațiu , pe bigsigma.com . Adus la 18 februarie 2015 (arhivat din original la 7 mai 2009) .