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
bien conditionnée
κ = 1
Erreur relative ≈ erreur données
mal conditionnée
κ ≈ 21
Erreur amplifiée ×21
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é | Valeur | Explication |
|---|---|---|
| Minimum possible | Car | |
| Matrice orthogonale | Les rotations ne déforment pas les vecteurs | |
| Pour la norme 2 | Ratio des valeurs singulières extrêmes | |
| Matrice singulière | Car 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
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 » :
où 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) |
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 perdus | Chiffres 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égie | Description |
|---|---|
| Reformuler le problème | Changer de variables, normaliser |
| Préconditionnement | Multiplier par une matrice bien choisie |
| Régularisation | Ajouter un terme pour stabiliser |
| Précision étendue | Utiliser plus de chiffres significatifs |
| Méthodes itératives | Contrôler l'erreur à chaque étape |
Résumé
Le nombre de condition mesure la sensibilité du système aux perturbations.
| κ(A) | Interprétation |
|---|---|
| ≈ 1 | Parfaitement 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.