Normes vectorielles et matricielles
Objectifs d'apprentissage
À la fin de cette leçon, vous serez en mesure de :
- Calculer différentes normes vectorielles (1, 2, infinie)
- Comprendre les propriétés axiomatiques des normes
- Calculer les normes matricielles induites
- Vérifier la compatibilité entre normes vectorielles et matricielles
- Interpréter géométriquement les différentes normes
Prérequis
- Algèbre linéaire de base
- Notion de distance
Pourquoi les normes ?
En calcul numérique, nous avons constamment besoin de mesurer des quantités :
- Quelle est la taille d'une erreur ? Si notre solution approchée est au lieu de , l'erreur est-elle acceptable ?
- Est-ce qu'un algorithme converge ? Les itérations successives se rapprochent-elles de la solution ?
- À quel point une matrice amplifie-t-elle les erreurs ? Si les données d'entrée ont une petite erreur, l'erreur de sortie sera-t-elle grande ?
Les normes généralisent la notion de « longueur » ou « taille » à des vecteurs et matrices de dimension quelconque. Elles permettent de répondre rigoureusement à ces questions.
Analogie
Une norme est comme une règle graduée pour mesurer des vecteurs. Tout comme on peut mesurer une distance en kilomètres, en miles ou en pas, il existe plusieurs normes différentes, chacune adaptée à certains contextes.
Normes vectorielles
Définition axiomatique
Une norme sur est une fonction vérifiant :
| Propriété | Formule | Signification |
|---|---|---|
| Positivité | Toujours positive ou nulle | |
| Séparation | Nulle seulement pour le vecteur nul | |
| Homogénéité | Mise à l'échelle | |
| Inégalité triangulaire | Le chemin direct est le plus court |
Les normes p
La famille des normes p est définie par :
Normes vectorielles
Différentes façons de mesurer la "taille" d'un vecteur
Norme 1 (Manhattan)
|x₁| + |x₂|
7.00
Norme 2 (Euclidienne)
√(x₁² + x₂²)
5.00
Norme ∞ (Max)
max(|x₁|, |x₂|)
4.00
Normes courantes
Les trois normes les plus utilisées en pratique correspondent à .
Norme 1 (Manhattan, taxicab) :
Intuition
Imaginez un taxi à Manhattan qui ne peut se déplacer que le long des rues (horizontalement) et des avenues (verticalement). La norme 1 mesure la distance totale parcourue : on additionne les déplacements dans chaque direction.
Norme 2 (euclidienne) :
Intuition
C'est la distance « à vol d'oiseau », celle qu'on mesure avec une règle. C'est l'extension du théorème de Pythagore à dimensions. La plus naturelle et la plus utilisée.
Norme infinie (max, Tchebychev) :
Intuition
La norme infinie ne retient que la plus grande composante (en valeur absolue). Elle mesure « l'excursion maximale » du vecteur. Elle est utile quand on veut contrôler l'erreur maximale sur chaque composante.
Boules unités : interprétation géométrique
La boule unité d'une norme est l'ensemble des vecteurs de norme inférieure ou égale à 1 :
La forme de la boule unité révèle le « caractère » de chaque norme :
Boules unités
Ensemble des vecteurs de norme ≤ 1
- Norme 1 : Losange (diamant). Favorise les vecteurs « sparse » (peu de composantes non nulles).
- Norme 2 : Cercle. Traite toutes les directions de manière égale.
- Norme ∞ : Carré. Limite chaque composante individuellement.
Exemples de calcul
Pour :
| Norme | Calcul | Résultat |
|---|---|---|
| 7 | ||
| 5 | ||
| 4 |
import numpy as np
def norme_vecteur(x, p=2):
"""
Calcule la norme p du vecteur x.
"""
if p == np.inf:
return np.max(np.abs(x))
else:
return np.sum(np.abs(x) ** p) ** (1/p)
# Exemple
x = np.array([3, -4])
print(f"||x||_1 = {norme_vecteur(x, 1)}")
print(f"||x||_2 = {norme_vecteur(x, 2)}")
print(f"||x||_inf = {norme_vecteur(x, np.inf)}")Équivalence des normes
Théorème
En dimension finie, toutes les normes sont équivalentes : pour deux normes et , il existe des constantes telles que :
Pour les normes 1, 2 et infinie :
Normes matricielles
Les normes vectorielles mesurent la « taille » des vecteurs. Mais comment mesurer la « taille » d'une matrice ?
Une matrice transforme des vecteurs : elle prend un vecteur et produit . La question naturelle est : de combien la matrice peut-elle amplifier un vecteur ?
Norme induite (naturelle)
La norme matricielle induite par une norme vectorielle est :
Interprétation
La norme induite mesure le facteur d'amplification maximal : parmi tous les vecteurs possibles, quel est celui qui est le plus étiré par la matrice ? Le ratio donne le facteur d'étirement, et la norme matricielle est le maximum de ce ratio.
Exemple concret : Considérons . Cette matrice étire les vecteurs par 2 dans la direction et par 3 dans la direction . Le facteur d'amplification maximal est donc 3 (atteint pour ).
Norme matricielle : facteur d'étirement maximal
Matrice de cisaillement
‖A‖₁
max somme colonnes
2.00
‖A‖∞
max somme lignes
2.00
Formules pour les normes induites
Contrairement à la définition (qui nécessite un maximum sur tous les vecteurs), les normes induites ont des formules explicites simples :
Norme 1 matricielle :
Astuce mnémotechnique
Norme 1 = somme sur les colonnes (le 1 est vertical comme une colonne).
Norme infinie matricielle :
Astuce mnémotechnique
Norme ∞ = somme sur les lignes (le symbole ∞ est horizontal comme une ligne).
Norme 2 matricielle (spectrale) :
où est la plus grande valeur singulière de .
Exemple de calcul détaillé
Pour :
Norme 1 : On calcule la somme des valeurs absolues de chaque colonne :
- Colonne 1 :
- Colonne 2 :
Norme ∞ : On calcule la somme des valeurs absolues de chaque ligne :
- Ligne 1 :
- Ligne 2 :
Propriétés des normes matricielles
| Propriété | Formule |
|---|---|
| Sous-multiplicativité | |
| Compatibilité | |
| Norme de l'identité |
Normes consistantes et compatibles
Ces deux notions sont fondamentales pour l'analyse numérique. Elles garantissent que les normes « se comportent bien » lors des opérations matricielles.
Norme consistante (sous-multiplicative)
Une norme matricielle est consistante (ou sous-multiplicative) si :
pour toutes matrices et de dimensions compatibles.
Pourquoi c'est important ?
La consistance garantit que les erreurs ne « explosent » pas lors des multiplications matricielles successives. Si on calcule , la norme du produit est bornée par le produit des normes :
Exemple : Les normes induites () et la norme de Frobenius sont toutes consistantes.
Norme compatible (avec une norme vectorielle)
Une norme matricielle est compatible avec une norme vectorielle si :
pour toute matrice et tout vecteur .
Pourquoi c'est important ?
La compatibilité permet de borner l'erreur de sortie en fonction de l'erreur d'entrée. Si a une erreur , alors l'erreur sur est bornée :
C'est la base de l'analyse d'erreur dans les systèmes linéaires.
Propriété clé : Les normes induites sont automatiquement compatibles avec la norme vectorielle qui les a induites. C'est leur définition même !
Tableau récapitulatif
| Norme matricielle | Consistante ? | Compatible avec |
|---|---|---|
| (induite) | ✓ Oui | |
| (induite) | ✓ Oui | |
| (induite) | ✓ Oui | |
| (Frobenius) | ✓ Oui |
Attention aux mélanges !
Il faut utiliser des normes compatibles ensemble. Par exemple, on ne peut pas écrire car n'est pas compatible avec .
En pratique, on choisit une norme vectorielle (souvent ) et on utilise la norme matricielle induite correspondante.
Norme de Frobenius
La norme de Frobenius est une norme matricielle non induite mais extrêmement utilisée en pratique. Elle généralise la norme euclidienne aux matrices : c'est simplement la racine carrée de la somme des carrés de tous les éléments.
Intuition
Si on « aplatit » la matrice en un seul vecteur contenant tous ses éléments ligne par ligne, la norme de Frobenius est simplement la norme euclidienne de ce vecteur. C'est pourquoi on l'appelle parfois la norme euclidienne matricielle.
Exemple de calcul
Pour :
À comparer avec :
- (plus grande valeur singulière)
Propriétés
Propriétés de Frobenius
- Consistante :
- Compatible avec :
- Facile à calculer : opérations (pas besoin de valeurs propres)
- Invariante par rotation : pour orthogonale
- Lien avec les valeurs singulières :
Relation avec la norme spectrale :
où . L'égalité est atteinte si et seulement si est de rang 1.
Pourquoi utiliser Frobenius plutôt que les normes induites ?
| Critère | Norme spectrale ‖A‖₂ | Norme de Frobenius ‖A‖_F |
|---|---|---|
| Calcul | Coûteux : nécessite SVD ou valeurs propres | Simple : somme des carrés |
| Différentiabilité | Non différentiable en général | Différentiable partout (sauf en 0) |
| Interprétation | Amplification maximale | « Taille totale » de la matrice |
Applications pratiques de la norme de Frobenius
1. Approximation de rang faible (compression de données)
En apprentissage automatique et traitement d'images, on cherche souvent à approximer une matrice par une matrice de rang . Le problème d'optimisation est :
La solution est donnée par la SVD tronquée : on garde les plus grandes valeurs singulières. C'est la base de la compression d'images et de la réduction de dimensionnalité (PCA).
2. Régularisation en apprentissage automatique
Dans la régression ridge et les réseaux de neurones, on pénalise la norme de Frobenius des poids pour éviter le surapprentissage :
où est la matrice des poids et le coefficient de régularisation.
3. Distance entre matrices
La norme de Frobenius définit naturellement une distance entre matrices :
Utile pour mesurer à quel point deux matrices sont « proches », par exemple :
- Comparer une matrice de covariance empirique à une matrice théorique
- Mesurer l'erreur d'une factorisation matricielle
- Évaluer la convergence d'un algorithme itératif sur matrices
4. Sensibilité numérique
Pour analyser comment une perturbation affecte un calcul matriciel, on utilise souvent :
comme mesure de l'erreur relative sur la matrice.
Calcul en Python
import numpy as np
def norme_matrice_1(A):
"""Norme 1 matricielle : max des sommes de colonnes."""
return np.max(np.sum(np.abs(A), axis=0))
def norme_matrice_inf(A):
"""Norme infinie matricielle : max des sommes de lignes."""
return np.max(np.sum(np.abs(A), axis=1))
def norme_matrice_2(A):
"""Norme 2 matricielle (spectrale)."""
return np.max(np.linalg.svd(A, compute_uv=False))
def norme_frobenius(A):
"""Norme de Frobenius."""
return np.sqrt(np.sum(A ** 2))
# Exemple
A = np.array([[1, 2],
[3, 4]])
print(f"||A||_1 = {norme_matrice_1(A)}")
print(f"||A||_inf = {norme_matrice_inf(A)}")
print(f"||A||_2 = {norme_matrice_2(A):.4f}")
print(f"||A||_F = {norme_frobenius(A):.4f}")
# Avec NumPy
print(f"\nNumPy:")
print(f"||A||_1 = {np.linalg.norm(A, 1)}")
print(f"||A||_inf = {np.linalg.norm(A, np.inf)}")
print(f"||A||_2 = {np.linalg.norm(A, 2):.4f}")
print(f"||A||_F = {np.linalg.norm(A, 'fro'):.4f}")Applications
Mesure des erreurs
Pour mesurer l'erreur entre une solution approchée et la solution exacte :
- Erreur absolue :
- Erreur relative :
Exemple : On résout un système et on obtient au lieu de .
L'erreur est .
L'erreur relative (norme 2) est :
Quelle norme choisir ?
| Norme | Utilisation typique |
|---|---|
| Favorise les solutions « sparse » (peu de composantes non nulles). Utilisée en régression LASSO. | |
| Choix par défaut. Correspond à la distance euclidienne intuitive. | |
| Quand on veut borner l'erreur maximale sur chaque composante. |
Convergence d'algorithmes
Un algorithme itératif converge si .
Exemple : La méthode de Jacobi pour résoudre produit une suite . On s'arrête quand pour une tolérance choisie (par exemple ).
Conditionnement (prochaine leçon)
Le nombre de condition utilise les normes pour mesurer la sensibilité d'un système aux perturbations :
- Si : le système est bien conditionné, les erreurs restent petites.
- Si : le système est mal conditionné, de petites erreurs dans peuvent causer de grandes erreurs dans .
Remarques sur les normes
Deux propriétés importantes découlent de la sous-multiplicativité des normes matricielles.
1. La norme de l'identité est toujours ≥ 1
Pour toute matrice et la matrice identité :
En divisant par (pour ), on obtient :
Note
Pour les normes induites, on a exactement (le maximum est atteint pour tout vecteur unitaire). Pour d'autres normes comme Frobenius, en dimension .
2. La norme de l'inverse est bornée inférieurement
Pour une matrice inversible , en utilisant :
En divisant par :
Interprétation
Si une matrice « réduit » les vecteurs (petite norme), son inverse les « amplifie » nécessairement (grande norme). On ne peut pas avoir une matrice et son inverse qui réduisent toutes deux les vecteurs.
Résumé
| Type | Norme | Formule |
|---|---|---|
| Vecteur | Somme des valeurs absolues | |
| Vecteur | Distance euclidienne | |
| Vecteur | Maximum des valeurs absolues | |
| Matrice | Max somme colonnes | |
| Matrice | Max somme lignes | |
| Matrice | Plus grande valeur singulière | |
| Matrice | Racine de la somme des carrés |
Propriété clé de compatibilité :
Pour aller plus loin
La prochaine leçon utilisera les normes pour définir le conditionnement d'une matrice, qui mesure la sensibilité d'un système linéaire aux perturbations.