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éFormuleSignification
PositivitéToujours positive ou nulle
SéparationNulle seulement pour le vecteur nul
HomogénéitéMise à l'échelle
Inégalité triangulaireLe 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

3
4

Norme 1 (Manhattan)

|x₁| + |x₂|

7.00

Norme 2 (Euclidienne)

√(x₁² + x₂²)

5.00

Norme ∞ (Max)

max(|x₁|, |x₂|)

4.00

Vecteur x = (3, 4)ᵀ

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

1-11-1
Cercle : √(x₁² + x₂²) ≤ 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 :

NormeCalculRésultat
7
5
4
normes_vectorielles.pypython
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

45°

Matrice de cisaillement

1.00
1.00
0.00
1.00

‖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) :

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 matricielleConsistante ?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 :

. L'égalité est atteinte si et seulement si est de rang 1.

Pourquoi utiliser Frobenius plutôt que les normes induites ?

CritèreNorme spectrale ‖A‖₂Norme de Frobenius ‖A‖_F
CalculCoûteux : nécessite SVD ou valeurs propres Simple : somme des carrés
DifférentiabilitéNon différentiable en généralDifférentiable partout (sauf en 0)
InterprétationAmplification 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 :

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

normes_matricielles.pypython
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 ?

NormeUtilisation 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é

TypeNormeFormule
VecteurSomme des valeurs absolues
VecteurDistance euclidienne
VecteurMaximum des valeurs absolues
MatriceMax somme colonnes
MatriceMax somme lignes
MatricePlus grande valeur singulière
MatriceRacine 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.