Conditionnement (analyse numérique)

Un article de Wikipédia, l'encyclopédie libre.

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[modifier | modifier le code]

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[modifier | modifier le code]

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 :

σmax et σmin sont les valeurs singulières maximales et minimales de A. En conséquence :

  • si A est normale, alors

    λ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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Note[modifier | modifier le code]

  1. F. Kwok - Analyse Numérique (Université de Genève)
  2. (en) Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, Soc. Ind. Appl. Math., , 688 p. (ISBN 0-89871-355-2), p. 126
  3. 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
  4. (en) Carl R. de Boor, « An empty exercise » [PDF] (consulté le )
  5. 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 ).

Articles connexes[modifier | modifier le code]