13. Orthogonale en orthonormale bases, Gram–Schmidt-procédé#
13.1. Orthogonale bases#
De standaardbasis van \(\RR^n\) heeft de handige eigenschap dat alle vectoren in de basis loodrecht op elkaar staan. Het is nuttig om algemener te kijken naar rijtjes vectoren met deze eigenschap.
Definitie 13.1 (Orthogonaal stel vectoren)
Een \(k\)-tal vectoren \((\vv_1,\ldots,\vv_k)\) in \(\RR^n\) is orthogonaal als voor alle \(i\ne j\) geldt \(\vv_i\cdot\vv_j=0\).
Merk op dat als \((\vv_1,\ldots,\vv_k)\) een orthogonaal rijtje vectoren is met \(\vv_i\ne\mathbf{0}\) voor alle \(i\), dit rijtje lineair onafhankelijk is. Gegeven een lineaire relatie \(c_1\vv_1+\cdots+c_k\vv_k=\mathbf{0}\) volgt namelijk voor elke \(i\) (door het inproduct met \(\vv_i\) te nemen) de vergelijking \(c_i(\vv_i\cdot\vv_i)=0\), en aangezien \(\vv_i\ne\mathbf{0}\) volgt \(\vv_i\cdot\vv_i\ne0\) en dus \(c_i=0\) voor \(i=1,\ldots,k\).
Wanneer \((\vv_1,\ldots,\vv_k)\) een orthogonaal \(k\)-tal vectoren is dat een basis is van een lineaire deelruimte \(W\) van \(\RR^n\), noemen we \((\vv_1,\ldots,\vv_k)\) een orthogonale basis van \(W\).
Stelling 13.1
Bekijk een lineaire deelruimte \(W\) van \(\RR^n\) met orthogonale basis \((\vv_1,\ldots,\vv_k)\). Voor elke vector \(\vx\in\RR^n\) is de orthogonale projectie van \(\vx\) op \(W\) gelijk aan
Bewijs. Per definitie ligt \(p_W(\vx)\) in \(W\) en is dus te schrijven als
We schrijven \(\vx=\vx_W+\vx_{W^\perp}\) en merken op dat wegens \(\vx_{W^\perp}\cdot\vv_i=0\) geldt
Aangezien \(\vv_i\cdot\vv_j=0\) voor alle \(j\ne i\), is dit gelijk aan \(c_i(\vv_i\cdot\vv_i)\). We concluderen
Voorbeeld 13.1
Bekijk de lineaire deelruimte \(W=\opsp(\vv_1,\vv_2,\vv_3)\) in \(\RR^n\) met
De bovenstaande basis is orthogonaal. We berekenen
We gaan de orthogonale projectie van de vector \(\vx=\begin{pmatrix}1\\ 2\\ 3\\ 4\end{pmatrix}\) op \(W\) bepalen. We berekenen
We concluderen
We kunnen nu ook \(p_{W^\perp}(\vx)\) bepalen door
13.2. Orthonormale bases#
Definitie 13.2 (Orthonormaal stel vectoren)
Een \(k\)-tal vectoren \((\vq_1,\ldots,\vq_k)\) in \(\RR^n\) is orthonormaal als voor alle \(i,j\) geldt
Een orthonormaal \(k\)-tal vectoren is dus een orthogonaal \(k\)-tal eenheidsvectoren. Zo’n \(k\)-tal is automatisch lineair onafhankelijk. Als \(W\) de lineaire deelruimte is met basis \((\vq_1,\ldots,\vq_k)\), dan noemen we \((\vq_1,\ldots,\vq_k)\) een orthonormale basis van \(W\).
Vanuit een orthogonale basis \((\vv_1,\ldots,\vv_k)\) van een lineaire deelruimte \(W\) van \(\RR^n\) kunnen we een orthonormale basis \((\vq_1,\ldots,\vq_k)\) maken door de vectoren te schalen:
Stelling 13.2
Bekijk een lineaire deelruimte \(W\) van \(\RR^n\) met orthonormale basis \((\vq_1,\ldots,\vq_k)\). Voor elke vector \(\vx\in\RR^n\) is de orthogonale projectie van \(\vx\) op \(W\) gelijk aan
13.3. Gram–Schmidt-procédé#
Het is in toepassingen vaak handig om voor een lineaire deelruimte een orthogonale of zelfs orthonormale basis te gebruiken. Om uitgaande van een willekeurige basis een orthogonale basis te vinden, wordt het volgende algoritme gebruikt.
Algoritme 13.1 (Gram–Schmidt-orthogonalisatie)
Invoer: een lineair onafhankelijk stel vectoren \(\va_1,\ldots,\va_k\) in \(\RR^n\).
Uitvoer: een lineair onafhankelijk stel vectoren \(\vb_1,\ldots,\vb_k\) in \(\RR^n\) zodanig dat \((\vb_1,\ldots,\vb_j)\) een orthogonale basis is voor \(W_j=\opsp(\va_1,\ldots,\va_j)\) voor \(1\le j\le k\).
Definieer \(\vb_1=\va_1\).
Voor \(j=2,\ldots,k\): definieer \(\vb_j = \va_j-\sum_{i=1}^{j-1}\frac{\va_j\cdot\vb_i}{\vb_i\cdot\vb_i}\vb_i\).
In het bijzonder zien we dat als \(W\) de lineaire deelruimte is met basis \(\opsp(\va_1,\ldots,\va_k)\), het \(k\)-tal vectoren \((\vb_1,\ldots,\vb_k)\) een orthogonale basis voor \(W\) is.
Uit de definitie van \(\vb_j\) is af te leiden dat de lineaire deelruimte \(W_j\) voor \(j=1,\ldots,k\) steeds gelijk is aan \(\opsp(\vb_1,\ldots,\vb_j)\), en dat het \(k\)-tal vectoren \((\vb_1,\ldots,\vb_k)\) orthogonaal is. De formule in stap 2 van het bovenstaande algoritme komt neer op
Voorbeeld 13.2
We bepalen een orthogonale basis voor \(W=\opsp(\va_1,\va_2,\va_3)\), waarbij
De eerste stap van het Gram–Schmidt-procédé is
We berekenen
Dit geeft
We berekenen
Dit geeft
We concluderen dat \((\vb_1,\vb_2,\vb_3)\) een orthogonale basis voor \(W\) is.
Het Gram–Schmidt-procédé kan eenvoudig worden aangepast om een orthonormale basis \((\vq_1,\ldots,\vq_k)\) te bepalen. Dit kan ofwel door achteraf te normaliseren (\(\vq_j = \frac{1}{\|\vb_j\|}\vb_j\)) ofwel door deze berekening in stap 2 toe te voegen. In het tweede geval komt het algoritme er als volgt uit te zien:
Algoritme 13.2 (Gram–Schmidt-orthonormalisatie)
Invoer: een lineair onafhankelijk stel vectoren \(\va_1,\ldots,\va_k\) in \(\RR^n\).
Uitvoer: een lineair onafhankelijk stel vectoren \(\vq_1,\ldots,\vq_k\) in \(\RR^n\) zodanig dat \((\vq_1,\ldots,\vq_j)\) een orthonormale basis is voor \(W_j=\opsp(\va_1,\ldots,\va_j)\) voor \(1\le j\le k\).
Definieer \(\vq_1=\frac{1}{\|\va_1\|}\va_1\).
Voor \(j=2,\ldots,k\):
a. Definieer \(\vb_j = \va_j-\sum_{i=1}^{j-1}(\va_j\cdot\vq_i)\vq_i\).
b. Definieer \(\vq_j = \frac{1}{\|\vb_j\|}\vb_j\).
in dat geval kan de formule in stap 2 vereenvoudigd worden tot \(\vb_j = \va_j-\sum_{i=1}^{j-1}(\va_j\cdot\vq_i)\vq_i\).
Voorbeeld 13.3
In het vorige voorbeeld geeft achteraf normaliseren na Gram–Schmidt-orthogonalisatie de volgende orthonormale basis voor \(W\):
Voorbeeld 13.4
We bepalen een orthogonale basis voor \(W=\opsp(\va_1,\va_2,\va_3)\), waarbij
(Merk op dat \(W\) hier \(\RR^3\) is, maar dat gebruiken we niet.)
We berekenen
Dit geeft
Vervolgens berekenen we
Dit geeft
Vervolgens berekenen we
Dit geeft
We concluderen dat \((\vq_1,\vq_2,\vq_3)\) een orthonormale basis voor \(W\) is.