Conditionnement des systèmes linéaires

Objectifs d'apprentissage

À la fin de cette leçon, vous serez en mesure de :

  • Calculer le nombre de condition d'une matrice
  • Interpréter le conditionnement comme facteur d'amplification d'erreur
  • Appliquer les théorèmes de perturbation
  • Utiliser le raffinement itératif pour améliorer la précision
  • Reconnaître un système mal conditionné

Prérequis

  • Normes vectorielles et matricielles
  • Factorisation LU

Qu'est-ce que le conditionnement ?

Motivation

Considérons le système . En pratique :

  • Les coefficients de et sont connus avec une précision limitée
  • Les calculs introduisent des erreurs d'arrondi
  • La solution calculée diffère de la solution exacte

Question fondamentale : De petites erreurs sur les données produisent-elles de petites ou de grandes erreurs sur la solution ?

Exemple introductif : deux systèmes très différents

Considérons deux systèmes 2×2 et voyons comment ils réagissent à une perturbation de 5% sur le second membre.

Système 1 — Bien conditionné (matrice identité) :

Solution exacte : .

Perturbons de 5% : (on ajoute 5% à chaque composante).

Nouvelle solution : .

L'erreur sur est exactement 5%. Le système est parfaitement stable.

Système 2 — Mal conditionné :

Solution exacte : .

Perturbons de 5% : .

Résolvons le système perturbé :

  • Ligne 2 - Ligne 1 : , donc
  • De la ligne 1 :

Nouvelle solution : .

Ici aussi l'erreur est de 5%, mais si on perturbe différemment (par exemple ), on obtient — une erreur énorme ! Le système est très sensible à la direction de la perturbation.

Nombre de condition κ(A)

Mesure la sensibilité de la solution aux perturbations

0.100

bien conditionnée

1
0
0
1

κ = 1

Erreur relative ≈ erreur données

mal conditionnée

1.000
1.000
1.000
1.100

κ ≈ 21

Erreur amplifiée ×21

Règle pratique : On perd environ log₁₀(κ) chiffres significatifs. Si κ ≈ 21, on perd 1.3 chiffres.

Système bien conditionné vs mal conditionné

💡

Définition intuitive

  • Bien conditionné : De petites perturbations des données causent de petites perturbations de la solution.
  • Mal conditionné : De petites perturbations des données peuvent causer d'énormes perturbations de la solution.

Interprétation géométrique : Dans la visualisation ci-dessus, les lignes représentent les équations du système. Pour un système bien conditionné, les lignes se croisent à angle droit (ou proche). Pour un système mal conditionné, les lignes sont presque parallèles — un petit déplacement d'une ligne déplace beaucoup le point d'intersection.


Le nombre de condition

Définition

Le nombre de condition d'une matrice inversible est :

Il dépend du choix de la norme. On note pour la norme .

💡

Note sur la notation

Dans la littérature, le nombre de condition est noté de différentes façons :

  • (lettre grecque kappa) — notation utilisée dans ce cours
  • — notation alternative courante

Ces deux notations désignent exactement la même quantité. La notation est plus compacte et courante dans les ouvrages d'analyse numérique, tandis que est parfois préférée car elle est plus explicite.

💡

Pourquoi ce produit ?

Le nombre de condition mesure à quel point peut amplifier et réduire des vecteurs :

  • mesure l'amplification maximale par
  • mesure l'amplification maximale par (ou de manière équivalente, la réduction minimale par )

Le ratio entre ces deux quantités donne la « plage d'étirement » de la matrice.

Calcul détaillé : système bien conditionné

Reprenons le Système 1 avec (matrice identité).

Étape 1 : Calculer (max des sommes de lignes)

  • Ligne 1 :
  • Ligne 2 :

Étape 2 : Calculer

Pour la matrice identité, l'inverse est elle-même :

Étape 3 : Calculer

  • Ligne 1 :
  • Ligne 2 :

Étape 4 : Calculer

Interprétation

est le minimum possible. La matrice identité est parfaitement conditionnée : une erreur de 5% sur les données donne exactement 5% d'erreur sur la solution, jamais plus.

Calcul détaillé : système mal conditionné

Reprenons le Système 2 avec .

Étape 1 : Calculer

  • Ligne 1 :
  • Ligne 2 :

Étape 2 : Calculer

Pour une matrice 2×2, on utilise la formule :

Calculons le déterminant :

Donc :

Étape 3 : Calculer

  • Ligne 1 :
  • Ligne 2 :

Étape 4 : Calculer

⚠️

Interprétation

signifie qu'une erreur de 5% sur les données peut produire jusqu'à d'erreur sur la solution ! C'est ce qu'on a observé avec la perturbation défavorable.

Propriétés du nombre de condition

PropriétéValeurExplication
Minimum possibleCar
Matrice orthogonaleLes rotations ne déforment pas les vecteurs
Pour la norme 2Ratio des valeurs singulières extrêmes
Matrice singulièreCar n'existe pas

Théorèmes de perturbation

Perturbation du second membre

Si on résout avec perturbé en , la solution perturbée est .

🚨

Théorème 1 — Borne sur l'erreur

L'erreur relative sur est au plus fois l'erreur relative sur .

Démonstration

De et , on déduit .

Donc , ce qui donne :

De plus, , donc .

En combinant :

Application numérique avec ε = 0,05 (5%)

Système bien conditionné () :

Si l'erreur relative sur est (5%), alors :

Système mal conditionné () :

Avec la même erreur sur :

⚠️

Attention

C'est une borne supérieure. L'erreur réelle peut être plus petite, mais dans le pire cas, elle atteint cette borne.

Amplification des erreurs

A = [1, 1; 1, 1.01],b = [2, 2.01]ᵀ,x* = [1, 1]ᵀ,κ(A) ≈ 404
5.0%

Entrée (b perturbé)

Original : (2, 2.01)

Perturbé : (2.100, 2.010)

‖δb‖/‖b‖ = 4.98%

Sortie (x perturbé)

Exact : (1, 1)

Perturbé : (11.10, -9.00)

‖δx‖/‖x‖ = 1010.0%

Amplification réelle : ×203 (pour cette perturbation)

Borne théorique (pire cas) : ×κ = ×404

L'amplification dépend de la direction de δb. Ici ×203 ≤ ×404

Vérification sur notre exemple

Reprenons le système mal conditionné avec la perturbation défavorable .

Calcul de l'erreur relative sur :

Calcul de l'erreur relative sur :

Solution exacte : , solution perturbée : (calculé plus haut).

Vérification de la borne :

L'erreur réelle (800%) est bien inférieure à la borne (2020%), mais reste énorme !

Perturbation de la matrice

Si est perturbée en :

🚨

Théorème 2 — Perturbation de A

Pour :

La même règle s'applique : le nombre de condition amplifie les erreurs relatives.

Perturbation combinée (CSE)

En pratique, on a souvent des erreurs sur et sur simultanément. Le Componentwise Sensitivity Estimate (CSE) donne :

🚨

Théorème 3 — Erreurs combinées

Application numérique

Si les données ont une erreur de mesure de 5% à la fois sur et sur :

Système bien conditionné () :

Système mal conditionné () :

Résidu et erreur

Le résidu mesure « à quel point la solution approchée satisfait l'équation » :

est notre solution calculée.

💡

Attention : résidu ≠ erreur

  • Le résidu mesure (facile à calculer)
  • L'erreur mesure la différence avec la vraie solution (impossible à calculer directement !)

La relation entre résidu et erreur est :

Interprétation avec ε = 0,05

Supposons qu'on calcule une solution avec un résidu relatif de 5% : .

Système bien conditionné () :

L'erreur relative est exactement 5%. Résidu et erreur sont équivalents.

Système mal conditionné () :

L'erreur peut être κ fois plus grande ou κ fois plus petite que le résidu relatif, soit un écart de κ² = 160 000 entre les bornes !

⚠️

Piège classique

Un petit résidu ne garantit pas une petite erreur si est grand ! Ne vous fiez jamais au résidu seul pour juger de la qualité d'une solution.


Exemples de matrices mal conditionnées

Matrice de Hilbert

Taille nκ₂(Hₙ)
3≈ 524
5≈ 4.8 × 10⁵
10≈ 1.6 × 10¹³
15≈ 10¹⁷ (limite de la précision double)
conditionnement.pypython
import numpy as np

def nombre_condition(A, p=2):
  """
  Calcule le nombre de condition de A.
  """
  if p == 2:
      s = np.linalg.svd(A, compute_uv=False)
      return s[0] / s[-1]
  else:
      return np.linalg.norm(A, p) * np.linalg.norm(np.linalg.inv(A), p)

# Matrices de Hilbert
for n in [3, 5, 10]:
  H = np.array([[1/(i+j+1) for j in range(n)] for i in range(n)])
  kappa = nombre_condition(H)
  print(f"κ(H_{n}) = {kappa:.2e}")

Perte de chiffres significatifs

Règle pratique

🚨

Règle de la perte de précision

Si , alors on perd environ chiffres significatifs dans la solution.

Démonstration

Supposons que les données soient connues avec une précision de chiffres significatifs. Cela correspond à une erreur relative de l'ordre de (l'epsilon machine pour la précision ).

D'après le théorème de perturbation, l'erreur relative sur la solution est bornée par :

Si , alors :

Une erreur relative de signifie que seuls chiffres sont fiables. On a donc perdu chiffres à cause du conditionnement.

Application à notre exemple

Pour le système mal conditionné avec :

On perd environ 2 à 3 chiffres significatifs.

Vérification numérique :

Supposons qu'on travaille avec des données à 3 chiffres significatifs (erreur relative ).

L'erreur sur la solution peut atteindre :

Une erreur relative de signifie qu'on n'a plus que chiffre fiable — presque aucun !

Dans notre exemple concret, avec 5% d'erreur sur , on a observé jusqu'à 800% d'erreur sur . La borne théorique était . L'erreur réelle (800%) est inférieure à la borne, ce qui est cohérent.

Tableau récapitulatif

Avec une précision double (≈ 16 chiffres) :

κ(A)log₁₀(κ)Chiffres perdusChiffres fiables
1≈ 1≈ 15
4≈ 4≈ 12
10≈ 10≈ 6
16≈ 16≈ 0 (aucun !)
⚠️

Attention

Pour les matrices de Hilbert avec , le conditionnement dépasse . En précision double, aucun chiffre de la solution n'est fiable !


Que faire face à un mauvais conditionnement ?

StratégieDescription
Reformuler le problèmeChanger de variables, normaliser
PréconditionnementMultiplier par une matrice bien choisie
RégularisationAjouter un terme pour stabiliser
Précision étendueUtiliser plus de chiffres significatifs
Méthodes itérativesContrôler l'erreur à chaque étape

Résumé

Le nombre de condition mesure la sensibilité du système aux perturbations.

κ(A)Interprétation
≈ 1Parfaitement conditionné
≈ 10²-10³Bien conditionné
≈ 10⁶-10⁸Modérément mal conditionné
> 10¹⁰Très mal conditionné
Singulier (pas de solution unique)

Points clés :

  • L'erreur relative peut être amplifiée par
  • Un petit résidu ne garantit pas une petite erreur
  • On perd environ chiffres significatifs

Pour aller plus loin

La prochaine leçon présentera le raffinement itératif, une technique élégante pour récupérer la précision perdue à cause du conditionnement, en réutilisant la factorisation LU déjà calculée.