Conditionnement (analyse numérique)
En analyse numérique, une discipline des mathématiques, le conditionnement mesure la dépendance de la solution d'un problème numérique par rapport aux données du problème, ceci afin de contrôler la validité d'une solution calculée par rapport à ces données. En effet, les données d'un problème numérique dépendent en général de mesures expérimentales et sont donc entachées d'erreurs.
Il s'agit le plus souvent d'une quantité numérique.
De façon plus générale, on peut dire que le conditionnement associé à un problème est une mesure de la difficulté de calcul numérique du problème. Un problème dont le conditionnement est faible est dit bien conditionné, et un problème dont le conditionnement est élevé est dit mal conditionné.
Conditionnement d'un problème
Soit un problème . Soit aussi une variable perturbée , avec , où ε est la précision de la machine. Alors, la condition k du problème est le plus petit nombre tel que :
Le problème P est bien conditionné si k n'est pas très grand par rapport à . Sinon, ce problème P est mal conditionné[1].
Selon N. Higham[2], il semble que la notion de conditionnement ait été introduite par Alan Turing[3] qui, par exemple, a défini le conditionnement d'une matrice carrée de taille n à partir de la norme de Frobenius par :
Conditionnement d'une matrice
Le conditionnement d'une matrice inversible A relativement à une norme subordonnée, notée est défini par la formule:
- .
Comme on suppose que la norme est subordonnée, le conditionnement est supérieur à 1 :
Notons que la matrice vide 0 × 0 est son propre inverse et que sa norme est nulle quelle que soit la norme retenue. Son conditionnement est donc 0 selon cette définition[4]. Certains définissent cependant cond()0 × 0 = 1 car l'application linéaire nulle a une précision parfaite (donc un score de 1) et cette matrice vide est une identité, les matrices unités ayant toutes un conditionnement de 1[5].
Pour le système linéaire Ax = b, où les données sont la matrice A et le vecteur du second membre b, le conditionnement donne une borne de l'erreur relative commise sur la solution x lorsque les données A ou b sont perturbées. Il peut s'avérer que cette borne soit très grande, de sorte que l'erreur qui pourrait en découler rende la solution numérique inexploitable.
Le conditionnement dépend de la norme utilisée. Pour la norme d'espace ℓ2 , notée ∥⋅∥2, on a alors :
où σmax et σmin sont les valeurs singulières maximales et minimales de A. En conséquence :
- si A est normale, alors
où λmax et λmin sont les valeurs propres maximales et minimales de A ; - si A est unitaire, alors
.
Pour la norme d'espace ℓ∞, notée ∥⋅∥∞, si A est une matrice triangulaire inférieure non singulière (c'est-à -dire que ∀i, aii ≠0), alors :
Formules de majoration de l'erreur
Dans les formules suivantes, les calculs sont supposés faits avec une précision infinie, c'est-à -dire que les systèmes perturbés sont résolus de manière exacte.
On considère deux cas, selon que c'est le second membre b ou la matrice A qui n'est pas connu précisément.
Cas où le second membre varie
Le calcul effectif de l'inversion du système Ax = b, où la matrice A est connue avec précision et où la valeur du second membre b, supposé non nul, est entachée d'une erreur , produira une erreur relative théorique sur la solution x majorée par
- .
Cas où la matrice varie
Si la matrice A subit une modification de , on dispose d'une majoration de l'erreur par rapport au calcul avec la matrice exacte A donnée par
- .
Un exemple de matrice mal conditionnée
Soit la matrice
- ,
et le vecteur
- .
La résolution du système Ax = b donne
- .
Si on substitue au second membre b le second membre perturbé
- ,
la solution x' correspondante sera
Les erreurs relatives de b et x sont respectivement de 0,004 et 3,4108 ce qui représente une multiplication par environ 860 de l'erreur relative. Ce nombre est du même ordre que le conditionnement de la matrice A qui est de 1 425 (le conditionnement est pris relativement à la norme matricielle induite par la norme euclidienne sur ).
Annexes
Note
- F. Kwok - Analyse Numérique (Université de Genève)
- (en) Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, Soc. Ind. Appl. Math., , 688 p. (ISBN 0-89871-355-2), p. 126
- J. Todd, Programmation en mathématiques numériques, vol. 7, Besançon, Editions du CNRS, , 392 p., 16 × 25 cm (ISBN 978-2-222-01037-1), « On condition numbers », p. 141-159
- (en) Carl de Boor, « An empty exercise » [PDF] (consulté le )
- C'est par exemple le choix du logiciel Scilab des versions 5.3 à 6.0, voir « Matrice vide (Scilab 5.3.0) », sur help.scilab.org, (consulté le ) et « Matrice vide (Scilab 6.0.1) », sur help.scilab.org, (consulté le ).