Gram-Schmidtsches Orthogonalisierungsverfahren

In der linearen Algebra dient das Gram-Schmidtsche Orthogonalisierungsverfahren dazu, zu einer vorgegebenen Menge linear unabhängiger Vektoren \(\displaystyle v_1,\dots,v_n\) eines Prähilbertraums \(\displaystyle V\) ein Orthogonalsystem zu berechnen, dass den gleichen Untervektorraum erzeugt.
Eine Erweiterung stellt das Gram-Schmidtsche Orthonormalisierungsverfahren dar: statt eines Orthogonalsystems berechnet es ein Orthonormalsystem. Bilden die Eingangsvektoren eine Basis, so berechnet das Verfahren eine Orthogonal- bzw. Orthonormalbasis.
 
 

Algorithmus des Orthogonalisierungsverfahrens

Sei \(\displaystyle V\) ein Prähilbertraum und die Vektoren \(\displaystyle v_1, \dots, v_n\in V\) seien linear unabhängig.
Die einzelnen Vektoren \(\displaystyle u_1, \dots, u_n\) des Orthogonalsystem berechnen sich wie folgt:
\(\displaystyle u_1 = v_1 \, \)
\(\displaystyle u_2 = v_2 -\over{\langle v_2, u_1\rangle }{ \langle u_1, u_1\rangle} \, u_1\)
\(\displaystyle u_3 = v_3 -\over{\langle v_3, u_1\rangle }{ \langle u_1, u_1\rangle} \, u_1 -\over{\langle v_3, u_2\rangle }{ \langle u_2, u_2\rangle} \, u_2\)
\(\displaystyle \vdots\)
\(\displaystyle u_n = v_n -\over{\langle v_n, u_1\rangle }{ \langle u_1, u_1\rangle} \, u_1 -\over{\langle v_n, u_2\rangle }{ \langle u_2, u_2\rangle} \, u_2 - \dots -\over{\langle v_n, u_{n-1}\rangle }{ \langle u_{n-1}, u_{n-1}\rangle} \, u_{n-1} = v_n - \sum\limits_{i=1}^{n-1}\over{\langle v_n, u_i\rangle }{ \langle u_i, u_i\rangle} \, u_i\)

Beispiel

Im \(\displaystyle \mathbb{R}^3\) versehen mit dem Standardskalarprodukt \(\displaystyle \langle\cdot,\cdot \rangle\) seien zwei linear unabhängige Vektoren vorgegeben, die einen Untervektorraum erzeugen:
\(\displaystyle v_1 = \begin{pmatrix} 3 \\ 1 \\ 2 \end{pmatrix}\) und \(\displaystyle v_2 = \begin{pmatrix} 2 \\ 2 \\ 2 \end{pmatrix}\)
Es werden nun zwei orthogonale Vektoren \(\displaystyle u_1\) und \(\displaystyle u_2\) berechnet, die denselben Untervektorraum erzeugen:
\(\displaystyle u_1 = v_1 = \begin{pmatrix} 3 \\ 1 \\ 2 \end{pmatrix}\)
\(\displaystyle u_2 = v_2 -\over{\langle v_2, u_1\rangle }{ \langle u_1, u_1\rangle} \cdot u_1 = \begin{pmatrix} 2 \\ 2 \\ 2 \end{pmatrix} - \dfrac{12}{14} \cdot \begin{pmatrix} 3 \\ 1 \\ 2 \end{pmatrix} = \dfrac{2}{7} \begin{pmatrix} -2 \\ 4\\ 1 \end{pmatrix}\)

Algorithmus des Orthonormalisierungsverfahrens

Sei \(\displaystyle V\) ein Prähilbertraum und die Vektoren \(\displaystyle v_1, \dots, v_n\in V\) seien linear unabhängig.
Die einzelnen Vektoren \(\displaystyle u_1, \dots, u_n\) des Orthonormalsystems erhält man, indem zuerst jeweils ein orthogonaler Vektor berechnet und anschließend normalisiert wird:
\(\displaystyle u_1 = \dfrac{v_1}{\left\|v_1\right\|}\) (Normalisieren des ersten Vektors \(\displaystyle v_1\))
\(\displaystyle u_2^\prime = v_2 - \langle v_2, u_1 \rangle \cdot u_1\) (Orthogonalisieren des zweiten Vektors \(\displaystyle v_2\))
\(\displaystyle u_2 = \dfrac{u_2^\prime}{\left\|u_2^\prime\right\|}\) (Normalisieren des Vektors \(\displaystyle u_2^\prime\))
\(\displaystyle u_3^\prime = v_3 - \langle v_3, u_1 \rangle \cdot u_1 - \langle v_3, u_2 \rangle \cdot u_2\) (Orthogonalisieren des dritten Vektors \(\displaystyle v_3\))
\(\displaystyle u_3 = \dfrac{u_3^\prime}{\left\|u_3^\prime\right\|}\) (Normalisieren des Vektors \(\displaystyle u_3^\prime\))
\(\displaystyle \vdots\)
\(\displaystyle u_n^\prime = v_n - \sum\limits_{i=1}^{n-1} \langle v_n, u_i \rangle \cdot u_i\) (Orthogonalisieren des \(\displaystyle n\)-ten Vektors \(\displaystyle v_n\))
\(\displaystyle u_n = \dfrac{u_n^\prime}{\left\|u_n^\prime\right\|}\) (Normalisieren des Vektors \(\displaystyle u_n^\prime\))
Im Allgemeinen erhält man durch dieses Verfahren kein besonders ausgezeichnetes System. Im \(\displaystyle \R^3\) muss z.B. erst ein Umordnungsschritt nachgeschaltet werden, um ein Rechts- oder Linkssystem zu erhalten.

Beispiel

Im \(\displaystyle \mathbb{R}^2\) versehen mit dem Standardskalarprodukt \(\displaystyle \langle\cdot,\cdot \rangle\) seien zwei Basisvektoren gegeben:
\(\displaystyle v_1 = \begin{pmatrix} 3 \\ 1 \end{pmatrix},\quad v_2 = \begin{pmatrix} 2 \\ 2 \end{pmatrix}\)
Es werden nun zwei Vektoren \(\displaystyle u_1\) und \(\displaystyle u_2\) berechnet, die eine Orthonormalbasis des \(\displaystyle \mathbb{R}^2\) bilden.
\(\displaystyle u_1 = \dfrac {v_1} {\left\|v_1\right\|} = \dfrac {1} {\sqrt{10}} \cdot \begin{pmatrix} 3 \\ 1 \end{pmatrix}\)
\(\displaystyle u_2^\prime = v_2 - \langle v_2, u_1 \rangle \cdot u_1 = \begin{pmatrix} 2 \\ 2 \end{pmatrix} - \dfrac{1}{\sqrt{10}}\cdot \left\langle \begin{pmatrix} 3 \\ 1 \end{pmatrix},\begin{pmatrix} 2 \\ 2 \end{pmatrix} \right\rangle \cdot \dfrac{1}{\sqrt{10}} \begin{pmatrix} 3 \\ 1 \end{pmatrix} = \dfrac{1}{5} \begin{pmatrix} -2 \\ 6 \end{pmatrix}\)
\(\displaystyle u_2 = \dfrac{u_2^\prime}{\left\|u_2^\prime\right\|} = \dfrac{1}{\sqrt{40/25}} \cdot \dfrac{1}{5} \begin{pmatrix} -2 \\ 6 \end{pmatrix} = \dfrac{1}{\sqrt{10}} \cdot \begin{pmatrix} -1 \\ 3 \end{pmatrix}\)

Anmerkungen

Eine besondere Eigenschaft der beiden Verfahren ist, dass nach jedem Zwischenschritt die bisher berechneten Vektoren \(\displaystyle u_1, \dots, u_i\) den gleichen Vektorraum erzeugen wie die Vektoren \(\displaystyle v_1, \dots, v_i\). Die Vektoren \(\displaystyle u_1, \dots, u_i\) bilden also eine Orthogonal- bzw. Orthonormalbasis der entsprechenden Untervektorräume.
Berechnet man ein Orthonormalsystem von Hand, ist es oftmals einfacher, zunächst ein Orthogonalsystem auszurechnen und dann die einzelnen Vektoren zu normieren. Dadurch erspart man sich das zweifache Normieren und kann oftmals mit einfacheren Werten rechnen. Gegebenenfalls lohnt es sich, vor dem Erstellen des Orthogonalsystems/Orthonormalsystems das Gaußsche Eliminationsverfahren durchzuführen.

Funktionsprinzip der Verfahren

Sind die orthogonalen Vektoren \(\displaystyle u_1, \dots , u_{k-1}\) bereits bestimmt, versuchen wir, von \(\displaystyle v_k\) eine passende Linearkombination der Vektoren \(\displaystyle u_1, \dots , u_{k-1}\) abzuziehen, so dass der Differenzvektor
\(\displaystyle u_k = v_k - \sum\limits_{i=1}^{k-1} \lambda_i u_i\)
zu allen Vektoren \(\displaystyle u_1, \dots , u_{k-1}\) orthogonal wird, d.h. jedes der Skalarprodukte
\(\displaystyle \langle u_k,u_j \rangle = \langle v_k,u_j \rangle - \sum\limits_{i=1}^{k-1} \lambda_i \langle u_i,u_j \rangle\)
mit \(\displaystyle j=1,\ldots,k-1\) muss den Wert 0 ergeben. Hierfür ist die Wahl
\(\displaystyle \lambda_i = \dfrac {\langle v_k,u_i \rangle}{\langle u_i,u_i \rangle}\) passend.
Setzte man dieses \(\displaystyle \lambda_i\) ein, so erhält man
\(\displaystyle \langle u_k,u_j \rangle = \langle v_k,u_j \rangle - \sum\limits_{i=1}^{k-1} \dfrac {\langle v_k,u_i \rangle}{\langle u_i,u_i \rangle} \langle u_i,u_j \rangle\)
\(\displaystyle = \langle v_k,u_j \rangle - \langle v_k,u_j \rangle\)
\(\displaystyle = 0\)

An Archimedes wird man sich erinnern, wenn Aischylos vergessen ist - weil zwar die Sprachen sterben, nicht aber die mathematischen Ideen.

Godfrey Harold Hardy

Copyright- und Lizenzinformationen: Diese Seite basiert dem Artikel Gram-Schmidtsches Orthogonalisierungsverfahren aus der frеiеn Enzyklοpädιe Wιkιpеdιa und stеht unter der Dοppellizеnz GNU-Lιzenz für freie Dokumentation und Crеative Commons CC-BY-SA 3.0 Unportеd (Kurzfassung). In der Wιkιpеdιa ist eine Listе dеr Autorеn des Originalartikels verfügbar. Da der Artikel geändert wurde, reicht die Angabe dieser Liste für eine lizenzkonforme Weiternutzung nicht aus!
Anbieterkеnnzeichnung: Mathеpеdιa von Тhοmas Stеιnfеld  • Dοrfplatz 25  •  17237 Blankеnsее  • Tel.: 01734332309 (Vodafone/D2)  •  Email: cο@maτhepedιa.dе