Produit scalaire et espaces euclidiens
Cours complet · mathématiques approfondies (ECG 2e année), chapitre 4 · prépa ECG, 2e année
Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre
Jusqu'ici, un espace vectoriel n'avait ni longueurs ni angles : on pouvait additionner des vecteurs, les multiplier par des réels, mais rien ne permettait de dire que deux d'entre eux sont perpendiculaires, ni lequel est le plus long.
Le produit scalaire apporte exactement cela. Il transforme un espace vectoriel en un espace où l'on mesure — et il ouvre la porte à trois chapitres : les endomorphismes symétriques du chapitre 9, la recherche d'extrema du chapitre 10, et la méthode des moindres carrés, qui n'est rien d'autre qu'une projection orthogonale.
L'orthonormalisation de Schmidt « pourra être introduite sur des exemples en petite dimension, mais cette méthode n'est pas exigible ». Quant aux matrices orthogonales, « aucune autre connaissance que n'est au programme ». On n'attend donc ni algorithme général, ni théorie des groupes orthogonaux.
4.1 Produit scalaire
4.1.1 Définition et exemples
Soit un espace vectoriel réel. Un produit scalaire sur est une application qui est
- bilinéaire : linéaire par rapport à chacune des deux variables ;
- symétrique : ;
- définie positive : pour tout , avec égalité si et seulement si .
La norme associée est .
- Sur : . C'est le produit scalaire canonique, et .
- Sur : en est un autre, tout aussi légitime — bilinéaire, symétrique, et ne s'annule qu'en .
- Sur : , dont on a vu au chapitre 1 que .
« Orthogonal » n'a de sens que relativement à un produit scalaire donné. Les vecteurs et sont orthogonaux pour — car — mais pas pour le produit canonique, où .
4.1.2 Cauchy-Schwarz
Pour tous d'un espace muni d'un produit scalaire :
avec égalité si et seulement si et sont colinéaires.
Démonstration
Si , les deux membres sont nuls. Sinon, pour tout réel ,
C'est un trinôme en , de coefficient dominant , positif pour tout : son discriminant est donc négatif ou nul, soit . L'égalité a lieu quand le discriminant est nul, c'est-à-dire quand le trinôme admet une racine : alors , donc .
4.1.3 Orthogonalité
Deux vecteurs et sont orthogonaux lorsque . Une famille est
- orthogonale si dès que ;
- orthonormale (ou orthonormée) si de plus pour tout .
Deux sous-espaces et sont orthogonaux si tout vecteur de est orthogonal à tout vecteur de .
Si et sont orthogonaux, alors .
Démonstration
, et le terme croisé est nul.
Toute famille orthogonale ne contenant pas le vecteur nul est libre.
Démonstration
Supposons . Prenons le produit scalaire avec : par bilinéarité,
tous les autres termes étant nuls par orthogonalité. Comme , on a , donc . Ceci pour tout .
4.2 Espaces euclidiens
Un espace euclidien est un espace vectoriel réel de dimension finie muni d'un produit scalaire.
Tout espace euclidien admet une base orthonormée. De plus, toute famille orthonormée peut être complétée en une base orthonormée.
La construction repose sur le procédé d'orthonormalisation de Schmidt : on redresse les vecteurs un à un en leur retirant ce qu'ils ont de commun avec les précédents, puis on les ramène à la longueur . Le programme précise que ce procédé n'est pas exigible : il peut être vu sur un exemple en dimension ou , jamais demandé en général.
Soit une base orthonormée d'un espace euclidien . Alors, pour tout ,
Dans une base quelconque, trouver les coordonnées d'un vecteur demande de résoudre un système. Dans une base orthonormée, chaque coordonnée est un simple produit scalaire : . C'est pour cette seule raison qu'on prend la peine d'en construire.
Si et sont les colonnes de et dans une base orthonormée, alors
La matrice de passage d'une base orthonormée à une base orthonormée est orthogonale, c'est-à-dire vérifie
, et rien de plus. On n'attend ni la caractérisation par les colonnes, ni le groupe orthogonal, ni les rotations. En pratique, la relation sert surtout à alléger un calcul : inverser une telle matrice, c'est la transposer.
4.3 Supplémentaire orthogonal
Soit un sous-espace vectoriel d'un espace euclidien . Son orthogonal est
est un sous-espace vectoriel de , et
Dans muni du produit scalaire canonique, soit . Alors
de dimension . On vérifie : et .
Python : Produit scalaire, norme, orthogonalité
import numpy as np
x = np.array([1., 1., 0.])
y = np.array([1., -1., 0.])
print(x @ y) # 0.0 <- orthogonaux
print(np.linalg.norm(x)**2, x @ x) # 2.0 2.0
# Cauchy-Schwarz
print(abs(x @ y) <= np.linalg.norm(x)*np.linalg.norm(y))
# une base orthonormee obtenue par Schmidt, sur un exemple
u1 = np.array([2., 0.5]); u2 = np.array([1.2, 1.7])
e1 = u1 / np.linalg.norm(u1)
r = u2 - (u2 @ e1) * e1 # on retire la part selon e1
e2 = r / np.linalg.norm(r)
print(round(e1 @ e2, 12), round(e1 @ e1, 12)) # 0.0 1.0
La ligne u2 - (u2 @ e1) e1 est* le procédé de Schmidt : on retire à sa part selon , et ce qui reste lui est orthogonal.