Gram–Schmidt-eljárás

A főként a lineáris algebrában és a numerikus analízisben használatos Gram–Schmidt-ortogonalizálás (avagy Gram–Schmidt-eljárás, esetleg Gram–Schmidt-féle ortogonalizálási eljárás) egy skalárszorzatos tér egy véges, lineárisan független {vj} vektorrendszerét alakítja át egy olyan {uj} vektorrendszerré, melynek elemei páronként merőlegesek egymásra (a skalárszorzatra vonatkozóan), más szóval ortogonálisak, és a két vektorrendszer ugyanazt az alteret feszíti ki az említett skalárszorzatos térben.[1]

A módszert Jørgen Pedersen Gram és Erhard Schmidt után nevezték el, bár korábban Laplace-nál is szerepelt az eljárás.[2] A Gram–Schmidt-ortogonalizálás egy általánosításának tekinthető a Lie-csoportok elméletében szereplő Iwasawa-dekompozíció.[3]

Az eljárás alkalmazható például a reguláris mátrixok QR-felbontásánál.[4]

A Gram–Schmidt-eljárás

Az egydimenziós altérre vetítés

Pre-Hilbert-térben (skalárszorzatos térben) az u nemnulla vektor alterébe merőlegesen vetít a

p r o j u x = u , x u u 2 {\displaystyle \mathrm {proj} _{\mathbf {u} }\,\mathbf {x} =\langle \mathbf {u} ,\mathbf {x} \rangle {\frac {\mathbf {u} }{\|\mathbf {u} \|^{2}}}}

leképezés, ahol <u, x> a két vektor skaláris szorzatát jelöli. A projekciótételből következik ugyanis, hogy pre-Hilbert-térben, ha létezik olyan y vektor az u kifeszítette altérben, hogy minden λC(ill. R)-re

x y x λ . u {\displaystyle \|\mathbf {x} -\mathbf {y} \|\leq \|\mathbf {x} -\lambda .\mathbf {u} \|\,}

akkor az ilyen y-t egyértelműen jellemzi az, hogy minden λC (illetve R)-re:

x y , λ . u = 0 {\displaystyle \langle \mathbf {x} -\mathbf {y} ,\lambda .\mathbf {u} \rangle =0}

És valóban létezik ilyen y éspedig pont a fenti projekció, ugyanis

x u , x u u 2 , λ . u = x , λ . u u , x λ . u 2 u 2 = x , λ . u λ . u , x 1 = 0 {\displaystyle \left\langle \mathbf {x} -\langle \mathbf {u} ,\mathbf {x} \rangle {\frac {\mathbf {u} }{\|\mathbf {u} \|^{2}}},\lambda .\mathbf {u} \right\rangle =\langle \mathbf {x} ,\lambda .\mathbf {u} \rangle -\langle \mathbf {u} ,\mathbf {x} \rangle {\frac {\lambda .\mathbf {u} ^{2}}{\|\mathbf {u} \|^{2}}}=\langle \mathbf {x} ,\lambda .\mathbf {u} \rangle -\langle \lambda .\mathbf {u} ,\mathbf {x} \rangle \cdot 1=0}

Az eljárás

A Gram–Schmidt-eljárás első lépése: vetítsük merőlegesen v2-t v1-re. Ekkor Span(v1,v2) = Span(v1,v2 - proj v2) és az utóbbiak merőlegesek.

Legyen {v1, ... , vn } lineárisan független vektorrendszer. Azt az {u1, ... , un } vektorrendszert, melynek elemei páronként merőlegesek és Span(v1, ... , vn) = Span(u1, ... , un) (azaz ugyanazt az alteret feszítik ki, ugyanaz a generált Span(...) részalgebrájuk) a következőképpen kapjuk. Legyen u1=v1. Vetítsük v2-t merőlegesen u1-re, legyen ez w2. Ekkor u2 = v2w2. Tegyük ezt v3-mal és u1-vel illetve u2-vel ... Ha ortonormált bázist akarunk, akkor osszuk le az uk-kat a hosszukkal.

u 1 = v 1 , {\displaystyle \mathbf {u} _{1}=\mathbf {v} _{1},} e 1 = u 1 u 1 {\displaystyle \mathbf {e} _{1}={\mathbf {u} _{1} \over \|\mathbf {u} _{1}\|}}
u 2 = v 2 p r o j u 1 v 2 , {\displaystyle \mathbf {u} _{2}=\mathbf {v} _{2}-\mathrm {proj} _{\mathbf {u} _{1}}\,\mathbf {v} _{2},} e 2 = u 2 u 2 {\displaystyle \mathbf {e} _{2}={\mathbf {u} _{2} \over \|\mathbf {u} _{2}\|}}
u 3 = v 3 p r o j u 1 v 3 p r o j u 2 v 3 , {\displaystyle \mathbf {u} _{3}=\mathbf {v} _{3}-\mathrm {proj} _{\mathbf {u} _{1}}\,\mathbf {v} _{3}-\mathrm {proj} _{\mathbf {u} _{2}}\,\mathbf {v} _{3},} e 3 = u 3 u 3 {\displaystyle \mathbf {e} _{3}={\mathbf {u} _{3} \over \|\mathbf {u} _{3}\|}}
u 4 = v 4 p r o j u 1 v 4 p r o j u 2 v 4 p r o j u 3 v 4 , {\displaystyle \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},} e 4 = u 4 u 4 {\displaystyle \mathbf {e} _{4}={\mathbf {u} _{4} \over \|\mathbf {u} _{4}\|}}
{\displaystyle \vdots } {\displaystyle \vdots }
u n = v n k = 1 n 1 p r o j u k v n , {\displaystyle \mathbf {u} _{n}=\mathbf {v} _{n}-\sum _{k=1}^{n-1}\mathrm {proj} _{\mathbf {u} _{k}}\,\mathbf {v} _{n},} e n = u n u n {\displaystyle \mathbf {e} _{n}={\mathbf {u} _{n} \over \|\mathbf {u} _{n}\|}}

Helyesség

Annak az igazolása, hogy az eljárás valóban a kívánt eredményt adja a következő.[5]

Először belátjuk, hogy az {uk} vektorrendszer bázisa a {vk} vektorrendszer által kifeszített L lineáris altérnek. Mivel L dimenziója a feltevés miatt éppen |{vk}| = n, ezért elég belátni, hogy {uk} generálja L-et. Tudjuk:

u 1 = v 1 {\displaystyle \mathbf {u} _{1}=\mathbf {v} _{1}}
u 2 = v 2 λ 21 u 1 {\displaystyle \mathbf {u} _{2}=\mathbf {v} _{2}-\lambda _{21}\mathbf {u} _{1}}
u 3 = v 3 λ 32 u 2 λ 31 u 1 {\displaystyle \mathbf {u} _{3}=\mathbf {v} _{3}-\lambda _{32}\mathbf {u} _{2}-\lambda _{31}\mathbf {u} _{1}}
{\displaystyle \vdots }
u n = v n k = 1 n 1 λ n k u k {\displaystyle \mathbf {u} _{n}=\mathbf {v} _{n}-\sum _{k=1}^{n-1}\lambda _{nk}{\mathbf {u} _{k}}}

alkalmas λij számokkal. Valójában tetszőleges λij-kre generálja {uk} az L-et, mert minden k-ra vk előáll az u1, ... , uk-k lineáris kombinációjaként, azaz előállítják az összes bázisvektort, melyek viszont előállítják L összes elemét.

Másodszor belátjuk, hogy minden k = 1, ..., n-re az algoritmus által előállított {u1,...,uk} ortogonális, azaz

u i , u j { 0 , h a i = j = 0 , h a i j {\displaystyle \langle \mathbf {u} _{i},\mathbf {u} _{j}\rangle \left\{{\begin{matrix}\neq 0,&\mathrm {ha} &i=j\\=0,&\mathrm {ha} &i\neq j\end{matrix}}\right.}

k=1 esetén az egyetlen nemnulla u teljesíti az ortogonalitási kritériumot. Ha 1, ..., k–1 már teljesíti a páronkénti ortogonalitást, akkor az uk vektor mindegyik addigira merőleges, mert

u i , u k = u i , v k j = 1 k 1 λ k j u j = u i , v k j = 1 k 1 λ k j u i , u j = {\displaystyle \langle \mathbf {u} _{i},\mathbf {u} _{k}\rangle =\langle \mathbf {u} _{i},\mathbf {v} _{k}-\sum _{j=1}^{k-1}\lambda _{kj}{\mathbf {u} _{j}}\rangle =\langle \mathbf {u} _{i},\mathbf {v} _{k}\rangle -\sum _{j=1}^{k-1}\lambda _{kj}\langle \mathbf {u} _{i},\mathbf {u} _{j}\rangle =}
= u i , v k λ k i u i , u i = u i , v k u i , v k u i 2 u i , u i = 0 {\displaystyle =\langle \mathbf {u} _{i},\mathbf {v} _{k}\rangle -\lambda _{ki}\langle \mathbf {u} _{i},\mathbf {u} _{i}\rangle =\langle \mathbf {u} _{i},\mathbf {v} _{k}\rangle -{\frac {\langle \mathbf {u} _{i},\mathbf {v} _{k}\rangle }{\|\mathbf {u} _{i}\|^{2}}}\langle \mathbf {u} _{i},\mathbf {u} _{i}\rangle =0} ,

hiszen az algoritmusból kiolvasva éppen

λ k i = u i , v k u i 2 {\displaystyle \lambda _{ki}={\frac {\langle \mathbf {u} _{i},\mathbf {v} _{k}\rangle }{\|\mathbf {u} _{i}\|^{2}}}\,} .

Megjegyzések

  • Az eljárás általános k-adik lépésének formuláját így is írhatjuk:
v k = u k + i = 1 k 1 p r o j u i v k {\displaystyle \mathbf {v} _{k}=\mathbf {u} _{k}+\sum _{i=1}^{k-1}\mathrm {proj} _{\mathbf {u} _{i}}\,\mathbf {v} _{k}} .
Eszerint ha már megvan az {u1, ..., uk–1} ortogonális rendszer, akkor a k-adik lépésben nem mást teszünk, mint vesszük a vk vektor új, már meglévő báziselemekre eső merőleges vetületét és kiválasztjuk, hogy melyik uk vektor az, amelyiket a vetületekhez adva vk előáll. Míg a projekciótétel, lévén tiszta egzisztenciatétel, csak azt állítja, hogy létezik ilyen vektor, addig a Gram–Schmidt-eljárás konstruktívan adja meg a vetületet, éspedig:
m 0 = v k u k = i = 1 k 1 p r o j u i v k {\displaystyle \mathbf {m} _{0}=\mathbf {v} _{k}-\mathbf {u} _{k}=\sum _{i=1}^{k-1}\mathrm {proj} _{\mathbf {u} _{i}}\,\mathbf {v} _{k}} .
A helyességi gondolatmenetben pont azt látjuk be, hogy a vkm0 vektor merőleges a Span({u1, ..., uk–1}) altérre, hisz mindegyik bázisvektorára merőleges.
  • Végtelen dimenziós altér esetén szintén alkalmazható az eljárás, azzal az eredménnyel, hogy az előállított (u1, ..., uk, ...) sorozatban bármely k-ig az u1, ..., uk vektorok páronként ortogonálisak.
  • Nemfüggetlen vektorrendszerre alkalmazva az eljárást az eredményben előbb-utóbb előáll a 0 vektor. Ha ugyanis a k-adik vektor már az előzőek által kifeszített altérben van, akkor a vektorból az altérre eső vetületét kivonva a 0-t kapjuk. A nemfüggetlen vektorok által kifeszített alteret is lehet azonban ortogonális vektorokkal előállítani, éspedig úgy, hogy az algoritmusban minden új bázisvektor esetén megnézzük, hogy 0-t ad-e és ha igen, a régi vektort elvetjük és folytatjuk egy másik elem előállításával. Ekkor az algoritmus eredménye annyi vektor lesz, amennyi az eredeti vektorrendszer rangja volt.

Példa

Vegyük az

A = [ 1 2 1 ] {\displaystyle A={\begin{bmatrix}1&2&1\end{bmatrix}}\,}

mátrix magterét[6] mint R3 alterét és adjunk meg benne egy ortogonális bázist!

A feladatot az

a b = i = 1 3 a i b i {\displaystyle \mathbf {a} \mathbf {b} =\sum \limits _{i=1}^{3}\mathbf {a} _{i}\mathbf {b} _{i}}

sztenderd skalárszorzat szerint végezzük el!

Megoldás:

A dimenziótétel szerint a magtér kétdimenziós, ugyanis dim(R3) = dim Ker A + dim Im A, de A oszlopai skalárok, így dim Im A = 1. A kétdimenziós magtérnek kételemű a bázisa. A magtér egy alkalmas bázisa lehet az {v1 = (2, -1, 0), v2 = (1, 0, -1)}, mert a két vektor nyilvánvalóan lineárisan független, és mindkettő magtérbeli, mivel

[ 1 2 1 ] [ 2 1 1 0 0 1 ] = [ 0 0 ] {\displaystyle {\begin{bmatrix}1&2&1\end{bmatrix}}\cdot {\begin{bmatrix}2&1\\-1&0\\0&-1\end{bmatrix}}={\begin{bmatrix}0&0\end{bmatrix}}} .

Feladatunk most már a bázisvektorok oszlopmátrixának ortogonalizálása. Alkalmazzuk az eljárást {v1, v2}-re!

u 1 = v 1 = [ 2 1 0 ] {\displaystyle \mathbf {u} _{1}=\mathbf {v} _{1}={\begin{bmatrix}2\\-1\\0\end{bmatrix}}} ,
p r o j u 1 v 2 = u 1 , v 2 u 1 u 1 2 = 2 1 + ( 1 ) 0 + 0 ( 1 ) 2 2 + ( 1 ) 2 + 0 2 [ 2 1 0 ] = 2 5 [ 2 1 0 ] = [ 4 5 2 5 0 ] {\displaystyle \mathrm {proj} _{\mathbf {u} _{1}}\mathbf {v} _{2}=\left\langle \mathbf {u} _{1},\mathbf {v} _{2}\right\rangle {\frac {\mathbf {u} _{1}}{\|\mathbf {u} _{1}\|^{2}}}={\frac {2\cdot 1+(-1)\cdot 0+0\cdot (-1)}{2^{2}+(-1)^{2}+0^{2}}}{\begin{bmatrix}2\\-1\\0\end{bmatrix}}={\frac {2}{5}}\cdot {\begin{bmatrix}2\\-1\\0\end{bmatrix}}={\begin{bmatrix}{\frac {4}{5}}\\-{\frac {2}{5}}\\0\end{bmatrix}}} ,
u 2 = v 2 p r o j u 1 v 2 = [ 1 0 1 ] [ 4 5 2 5 0 ] = [ 1 5 2 5 1 ] {\displaystyle \mathbf {u} _{2}=\mathbf {v} _{2}-\mathrm {proj} _{\mathbf {u} _{1}}\mathbf {v} _{2}={\begin{bmatrix}1\\0\\-1\end{bmatrix}}-{\begin{bmatrix}{\frac {4}{5}}\\-{\frac {2}{5}}\\0\end{bmatrix}}={\begin{bmatrix}{\frac {1}{5}}\\{\frac {2}{5}}\\-1\end{bmatrix}}} .

Ellenőrizzük vektoriális szorzattal! Mivel

K e r A = { ( x , y , z ) R 3 x + 2 y + z = 0 } {\displaystyle \mathrm {Ker} \,A=\{(x,y,z)\in \mathbf {R} ^{3}\mid x+2y+z=0\}\,} ,

ezért nincs más feladatunk, mint a

x + 2 y + z = 0 {\displaystyle x+2y+z=0\,}

síkban lévő két merőleges vektort mondanunk. Legyen ugyanaz az első:

u 1 = [ 2 1 0 ] {\displaystyle \mathbf {u} _{1}={\begin{bmatrix}2\\-1\\0\end{bmatrix}}} ,

ez valóban a síkban van. Most vegyük az (1, 2, 1) normálvektor[7] és az előbbi vektoriális szorzatát:

u 1 = | i j k 1 2 1 2 1 0 | = 1 i + 2 j 5 k {\displaystyle \mathbf {u} _{1}={\begin{vmatrix}\mathbf {i} &\mathbf {j} &\mathbf {k} \\1&2&1\\2&-1&0\end{vmatrix}}=1\mathbf {i} +2\mathbf {j} -5\mathbf {k} } ,

ami valóban párhuzamos a fent kapott vektorral, éspedig az 5-szöröse. Ebből is világosan látható, hogy az ortogonális vektorrendszer nem egyértélmű (még akkor sem, ha egységvektorokat választunk bázisnak).

Jegyzetek

  1. A módszer leírása például itt: Szörényi: Szemléletes lineáris algebra - összefoglaló I. informatikusoknak PDF 8. o.
  2. Earliest known uses of some of the words of mathematics: G. A bejegyzésben hivatkoznak Gram és Schmidt eredeti cikkére és a Laplace könyvre.
  3. Orthogonalization process in Encyclopaedia of Mathematics
  4. Szörényi: Szemléletes lineáris algebra - összefoglaló I. informatikusoknak PDF 30. o.
  5. Lásd például: Freud Róbert: Lineáris algebra (ELTE Eötvös Kiadó, 1998) 202. o.
  6. Az 1×3-as A mátrix Ker A magtere a következőképpen van definiálva: Ker A := { vR3 | Av = 0 }. Belátható, hogy Ker A lineáris altér R3-ban.
    Az A mátrix Im A képtere a következőképpen van definiálva: Im A := { wR | ∃ vR3: Av = w }.
  7. Az A mátrix most egyetlen sorvektor, ami merőleges az A magterének vektoraira, vagyis normálvektor.

Források

  • Freud Róbert: Lineáris algebra (ELTE Eötvös Kiadó, 1998)
  • Szörényi Miklós: Szemléletes lineáris algebra - összefoglaló I. informatikusoknak PDF (SZE MTK jegyzet, 2005)
  • A kétdimenziós és háromdimenziós eset számítógépes animációval
  • MIT Linear Algebra Lecture on Gram-Schmidt (angolul)
  • matematika Matematikaportál • összefoglaló, színes tartalomajánló lap