En algèbre linéaire, dans un espace préhilbertien (c'est-à-dire un espace vectoriel sur le corps des réels ou celui des complexes, muni d'un produit scalaire), le procédé ou algorithme de Gram-Schmidt[1] est un algorithme pour construire, à partir d'une famille libre finie, une base orthonormée du sous-espace qu'elle engendre. On peut aussi utiliser le procédé de Gram-Schmidt sur une famille infinie dénombrable de vecteurs. Ceci permet de démontrer l'existence d'une base hilbertienne si l'espace est séparable.
Énoncé
Précisément, en notant N = {0,...,p} avec p dans ℕ :
Théorème — Si est une famille libre d'un espace préhilbertien, il existe une et une seule famille orthonormée telle que :
pour tout n
les produits scalaires sont strictement positifs pour tout n
On oublie souvent la seconde condition, qui assure l'unicité. Elle permet de parler de la famille orthonormalisée de Gram-Schmidt associée à .
L'étape générale de l'algorithme consiste à soustraire au vecteur vj+1 son projeté orthogonal sur le sous-espace engendré par v0,...,vj. On s'appuie sur la famille orthonormale déjà construite pour le calcul de ce projeté.
Cette méthode a été publiée par Jørgen Pedersen Gram en 1883 et reformulée par Erhard Schmidt en 1907, mais on la trouve déjà dans des travaux de 1816 de Laplace[2].
Applications
Le procédé d'orthonormalisation de Gram-Schmidt donne constructivement l'existence de bases orthonormées pour tout espace euclidien ou hermitien. Cet algorithme est ainsi souvent utilisé en informatique pour effectuer des rendus 3D.
On peut aussi orthonormaliser la base canonique (1,X, …) de ℝ[X] et obtenir ainsi une famille de polynômes orthogonaux.
Le procédé de Schmidt peut être utilisé dans la décomposition QR d'une matrice[3].
< , >, le produit scalaire dans l'espace considéré
v1, ..., vk, un ensemble de vecteurs non liés
u1, ..., uk, un ensemble de vecteurs orthogonaux deux à deux
e1, ..., ek, l'ensemble de vecteurs orthonormaux deux à deux recherché
Démonstration
La démonstration du résultat se fait par récurrence, en montrant à chaque étape que le vecteur uk est orthogonal aux vecteurs construits aux étapes précédentes.
À l'étape 1, il n'y a qu'un seul vecteur, donc la propriété est vérifiée.
À l'étape 2, on a, par linéarité à droite du produit scalaire :
donc (u1, u2) sont bien orthogonaux
À l'étape k, supposons donc que u1, ..., uk–1 sont bien orthogonaux deux à deux. Alors, toujours par linéarité à droite du produit scalaire :
Ce qui permet de conclure.
Notes et références
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Gram–Schmidt process » (voir la liste des auteurs).
↑Mathématiques Tout-en-un. 2e année MP, Paris, Dunod, , 2e éd., 1279 p. (ISBN978-2-10-007576-8, BNF39237416), p. 569
↑(en) Gram-Schmidt orthogonalization, dans Earliest Known Uses of Some of the Words of Mathematics (G)
↑A. Quarteroni, R. Sacco, F. Saleri, Méthodes numériques pour le calcul scientifique, Programmes en Matlab, éd. Springer, 2000, p. 83 et suiv. Lire en ligne
↑La convention choisie pour le produit scalaire hermitien étant ici : linéarité à droite et semi-linéarité à gauche.