Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

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

modifier

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

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

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

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

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

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