Math Ing Syst Iter
Math Ing Syst Iter
Math Ing Syst Iter
Méthodes itératives
• Introduction
• Normes vectorielles et normes matricielles
• Méthode de Jacobi (1804-1851)
• Méthode de Gauss-Seidel
• Méthode de relaxation
• Convergence et test darrêt
• Conditionnement d’une matrice
1
Introduction
La méthode d’élimination de Gauss ou la factorisation LU sont
efficaces pour la résolution des systèmes d’ordre pas trop grand.
Dans les théories des équations aux dérivées partielles on tombe
facilement sur des systèmes d’ordre 104 ou 105 . Dans ce cas,
l’application de la méthode d’élimination de Gauss ou la factorisation
LU devient très coûteuse en terme de temps de calcul.
Comme pour la recherche de zéro de fonction non linéaie f (x) = 0,
on a ramené le problème à la recherche de point fixe x = g(x) par les
méthodes itératives en regardant la convergence de la suite
xn+1 = g(xn ) pour un x0 initialement choisi.
De manière similaire, le système d’ordre n: Ax = b peut être écrit
sous la forme: x = Bx + c où B est une matrice n × n et c un
2
vecteur. On genére la suite:
x(0) donne
x(k+1) = Bx(k) + c , pour k = 0, 1, 2, . . . (1)
et étudié sa convergence.
Avant d’exposer ses méthodes itératives, nous présentons d’abord
quelques notions sur les normes vectorielles et normes matricielles.
3
Normes vectorielles et normes matricielles
Introduction
Lorsque nous avons étudié les solutions de f (x) = 0, nous avons
utilisés |xn − s| pour comparer la solution approximative xn calculer
par itération et la valeur exacte s. Nous avons également calculé
|xn+1 − xn | comme test d’arrêt des itérations.
Lorsqu’on s’intéresse à la résoluton des systèmes du type Ax = b par
méthode itérative, on doit se poser la question suivante:
Comment peut on définir la limite limk→+∞ x(k) = x?
Dans le cas à une variable, on a pu définir l’erreur relative comme
étant |xn − xn−1 |/|xn |, dans le cas des vecteurs la division n’est pas
définie.
On a donc besoin d’un moyen pour mesurer les écarts entre deux
vecteurs. Nous allons donc étendre la notion de valeur absolue dans
4
le cas à une dimension au cas vectoriel.
5
Norme vectorielle
Rn = {x|x = (x1 , x2 , . . . , xn )t ; x1 , x2 , . . . , xn ∈ R}
Par norme vectorielle sur Rn nous sous entendons une fonction réelle
kk de Rn vers R+ qui satisfait les conditions suivantes:
(i) kxk ≥ 0 pour tout x ∈ Rn et kxk = 0 ssi x = 0
(ii) kλxk = λkxk pour tou λ ∈ R et x ∈ Rn
(iii) kx + yk ≤ kxk + kyk, pour tout x, y ∈ Rn
Dans le cas de Rn , les normes les plus utilisées en pratique sont: pour
6
tout x = (x1 , x2 , . . . , xn )t ∈ Rn
n
X
kxk1 = |x1 | + |x2 | + . . . + |xn | = |xi |
i=1
q
kxk2 = x21 + x22 + . . . + x2n
kxk∞ = max{|x1 |, |x2 |, . . . , |xn |}
7
vecteur et les vecteurs d’origine 0Rn = (0, 0, . . . , 0)t , la distance entre
deux vecteurs peut être définie comme la norme de la différence des
deux vecteurs.
8
Définition: Si x = (x1 , x2 , . . . , xn )t et y = (y1 , y2 , . . . , yn )t sont deux
vecteurs de Rn , la distance entre x et y est d(x, y) = kx − yk avec
x − y = (x1 − y1 , x2 − y2 , . . . , xn − yn )t . Dans le cas de l2 et l∞ , on a:
n
X
kx − yk2 = { (xi − yi )2 }1/2 et kx − yk∞ = max1≤i≤n |xi − yi |
i=1
9
Exemples
10
Limite d’une suite vectorielle
11
Théorème: limk→∞ x(k) = x ssi limk→∞ kx(k) − xk = 0, où kk
représente une norme quelconque.
12
Norme matricielle
kABk ≤ kAkkBk
13
Définition: Une norme matricielle est une application de Mn vers
R+ qui vérifie les propriétés suivantes:
(1) kAk ≥ 0 pour tout A ∈ Mn and kAk = 0 ssi A = 0.
(2) kαAk = αkAk pour tout α ∈ R et A ∈ Mn
(3) kA + Bk ≤ kAk + kBk pour tout A, B ∈ Mn
(4) kABk ≤ kAkkBk pour tout A, B ∈ Mn .
Il y a plusieurs façons de définir des normes matricielles qui satisfont
les conditions précédentes. Cependant, les seules normes que nous
considérons sont ceux qui sont une conséquence naturelle des normes
vectorielles.
14
Théorème: Si k.k est une norme vectorielle de Rn , alors
est une norme matricielle, elle est appelée norme matricielle naturelle.
15
Corollaire: Pour tout x ∈ Rn , x 6= 0, A ∈ Mn une matrice d’ordre n
et k.k une norme matricielle naturelle de Mn , on a:
kAxk ≤ kAkkxk
Preuve:
x
Pour tout x 6= 0, la norme k kxk k = 1 donc:
x
kA( )k ≤ kAk
kxk
x 1
or A( kxk )= kxk Ax et par suite:
1 1 x
kAxk = k Axk = kA( ) ≤ kAk
kxk kxk kxk
ce qui implique que:
kAxk ≤ kAkkxk
16
Nous donnons dans le tableau suivant, les principaux normes
vectorielles et les normes matricielles associées
Norme vectorielle norme matricielle associée
Pn Pn
kxk1 = i=1 |xi | kAk1 = maxj i=1 |aij |
le max porte sur la somme des colonnes
Pn p
kxk2 = ( i=1 x2i )1/2 kAk2 = ρ(At A)
ρ est le rayon spectral de At A
Pn
kxk∞ = maxi |xi | kAk∞ = maxi j=1 |aij |
le max porte sur la somme des lignes
17
0.0.1 Exemples
18
1 Méthode de Jacobi (1804-1851)
On expose d’abords cette méthode itérative sur un exemple, le cas
général sera traité juste après.
1.1 Exemple
Soit à résoudre le système suivant:
4x + x = 5
1 2
(3)
x1 − 5x2 = −4
19
(k) (k)
A ce niveau, on introduit la suite x(k) = (x1 , x2 )t ou x = (x1 , x2 )t
avec une valeur d’initialisation x(0) = (0, 0):
pour x(0) = (0, 0), on a x(1) = (1.25, 0.8), x(2) = (1.05, 1.5) ... les
valeurs de la suite x(k) pour k = 0, 1, ..., 10 sont données dans le
tableau suivant:
20
(k) (k) kx(k+1) −x(k+1) k
k x1 x2 kx(k+1) k
kx(k) − (1, 1)t k
0 0 0 1 1.00069
1 1.25 0.8 0.23793 0.25
2 1.05 1.05 0.0618812 0.0500347
3 0.9875 1.01 0.0125226 0.0125
4 0.9975 0.9975 0.00312217 0.00250173
5 1.00063 0.9995 0.000624489 0.000625
6 1.00013 1.00013 0.000156142 0.000125087
7 0.999969 1.00003 0.0000312285 0.00003125
8 0.999994 0.999994 7.80709 10−6 6.2543310−6
9 1.000002 0.999999 1.56142 10−6 1.562510−6
21
On voit clairement que pour k grand la suite x(k) converge vers la
solution exacte.
Sur ce tableau nous avons illustrés également l’erreur relative
kx(k+1) −x(k+1) k
kx(k+1) k
et l’erreur absolue kx(k) − (1, 1)t k. Il est clair d’après
kx(k+1) −x(k+1) k
ce tableau que kx(k+1) k
et kx(k) − (1, 1)t k sont du même ordre
kx(k+1) −x(k+1) k
de grandeur, on pourra donc utiliser comme test
kx(k+1) k
d’arrêt des itérations.
Par la suite, nous allons introduire le principe général des méthodes
itératives.
22
1.2 Méthode de Jacobi (1804-1851)
Si tous les éléments diagonaux aii sont non nuls, alors on peut
23
reécrire le système (6) comme suit:
x1 = (b1 − a12 x2 − . . . − a1n xn )/a11
x2 = (b2 − a21 x1 − . . . − a2n xn )/a22
... .. ..
. .
(7)
xi = (bi − ai1 x1 − ai2 x2 − . . . − ain xn )/aii
.. .. ..
. . .
x = (b − a x − a x − . . . − a
n n n1 1 n2 2 nn−1 xn−1 )/ann
si aii 6= 0.
24
La méthode itérative de Jacobi est définie par:
n
(k+1) 1 X (k)
xi = (bi − aij xj ) , i = 1, 2, . . . , n et k = 0, 1, ... (9)
aii
j=1,j6=i
25
matrice strictement inférieure et sont données par:
a 0 ... 0 0 0 ... 0 0 a12
11
0 a22 . . . 0 a21 0 ... 0 0 0
D= .
. . .
, L= .
. . .
, U =
.. ..
.. .. .. .. .. .. .. ..
. .
0 0 . . . ann an1 an2 . . . 0 0 0
26
1.2.1 Exemple
27
La solution exacte est x1 = 3, x2 = −1 et x3 = 0.
On applique l’algorithme de l’équation avec
1
3 0 0 0 0 0 0 1 −1
−1
1
D = 0 5 0 , L= 1 0 0 , U =
0 0 1
0 0 81 1 −1 0 0 0 0
1 1 8
8 0 3 − 3 3
b= −2 , D −1 (L + U ) = 1 0 1 , D −1
b= 2(16)
−5
5 5
1 1 1
4 8 − 8 0 2
On a alors:
(k+1) (k)
1
x 0 − 13 x1 8
1(k+1) 3
(k)
3
x = − 1 0 1 x2 + − 25 (17)
2 5 5
(k+1) 1 (k)
x3 8 − 18 0 x3 1
2
28
On choisit x(0) = (0, 0, 0)t pour initialiser, on obtient pour x(1) et x(2)
les valeurs suivantes: x(1) = ( 38 , − 25 , 21 )t , x(2) = ( 89 31 7 t
30 , − 30 , 60 ) . Les
résultats des 10 premières itérations de Jacobi sont donnés dans le
tableau suivant
29
(k) (k) (k)
k x1 x2 x3
0 0 0 0
1 2.6666667 -0.4 0.5
2 2.9666667 -1.033333 0.1166667
3 3.0500000 -1.016667 0
4 3.0055556 -1.010000 -0.0083333
5 3.0005556 -0.999444 -0.0019444
6 2.9991667 -0.999722 0.0000000
7 2.9999074 -0.999833 0.0001389
8 2.9999907 -1.000009 0.0000324
9 3.0000139 -1.000005 0.0000000
10 3.0000015 -1.000003 -2.314815 10−6
20 2.9999999 -1.000000 2.5006 10−12
30
On remarque que la suite x(k) converge vers la solution exacte
x1 = 3, x2 = −1 et x3 = 0.
31
2 Méthode de Gauss-Seidel
Dans le but de résoudre l’équation (6) par la méthode de Gauss-Seidel
(1821-1896), on reécrit l’équation (8) de la façon suivante:
i−1 n
1 X X
xi = (bi − aij xj − aij xj ) , i = 1, 2, . . . , n (18)
aii
j=1,j6=i j=i+1,j6=i
32
(0)
déja stocké et xi+1,...,n .
On procède de la même façon pour la kème itération, c’est à dire que
(k) (k)
pour le calcul de xi on utilise les valeurs de x1,2,...,i−1 déja évaluées
(k−1)
et xi+1,...,n de l’itération précédente.
La méthode itérative de Gauss-Seidel peut être écrite comme:
i−1 n
(k+1) 1 X (k+1)
X (k)
xi = (bi − aij xj − aij xj ) , i = 1, 2, . . . , n , k = 0, 1
aii
j=1,j6=i j=i+1,j6=i
33
Cette équation peut être écrite de la manière suivante:
(k+1) (k)
a11 x1 = b1 − a12 x2 − . . . − a1n
(k+1) (k+1) (k)
a21 x1 + a22 x2 = b2 − a13 x3 . . . − a2n x(n
.. .. ..
. . .
(k+1) (k+1) (k+1)
an−11 x1 + an−12 x2 + ... + an−1n−1 xn−1 = bn−1 − an−1n x(k)
n
(k+1) (k+1) (k+1)
an1 x1 + an2 x2 + an3 x3 + . . . + ann x(k+1)
n = bn
34
en utilisant les matrices D, L et U , on aura:
2.0.2 Exemple
35
On choisit x(0) = (0, 0, 0)t pour initialiser, on trouve
14 1 t
x(1) = ( 83 , − 15 539
, 20 ) , x(2) = ( 180 227
, − 225 1
, − 2400 )t . Les résultats des 10
premières itérations de Gauss-Seidel sont donnés dans le tableau
suivant
36
(k) (k) (k)
k x1 x2 x3
0 0 0 0
1 2.666666667 -0.933333333 0.05000000000
2 2.994444444 -1.008888889 -0.0004166666667
3 3.002824074 -1.000481481 -0.0004131944444
4 3.000022762 -0.999921913 6.91550925910−6
5 2.999976276 -0.999996638 3.38565779310−6
6 3.000000008 -1.000000679 -8.58430587710−8
7 3.000000198 -1.000000022 -2.74984561210−8
8 2.999999998 -0.999999994 9.44512624110−10
9 2.999999998 -1.000000000 2.21282862510−10
10 3.000000000 -1.000000000 -9.71496238810−12
37
On remarque qu’il y a convergence vers x = (3, −1, 0), la convergence
dans le cas de Gauss-Seidel est relativement plus rapide que dans le
cas de Jacobi.
38
3 Méthode de relaxation
Les méthodes de Jacobi et Gauss-seidel etudiées précédement
convergent. Il est possible d’améliorer la convergence de la méthode
de Gauss-Seidel. Dans le but de résoudre Ax = b par la méthode de
Gauss-Seidel nous avons introduit la méthode itérative:
i−1 n
(k+1) 1 X (k+1)
X (k)
x̃i = (bi − aij xj − aij xj (26)
aii j=1 j=i+1
pour i = 1, 2, . . . , n.
On pourra généraliser la méthode de Gauss-Seidel en introduisant un
paramètre de relaxation ω pour former une combinaison qui converge
plus vite que Gauss-Seidel pour un choix approprié de ω. Le
paramètre ω est introduit de telle sorte à ce que
(k+1) (k) (k+1) (k)
xi = xj + ω(x̃j − xj ) (27)
39
si ω = 1, la méthode de relaxation (27) se réduit a Gauss-Seidel.
En injectant la relation (26) dans (27) on trouve
i−1 n
(k+1) (k) ω X (k+1)
X (k)
xi = (1 − ω)xj + (bi − aij xj − aij xj (28)
aii j=1 j=i+1
40
Si les aii 6= 0 pour tout i, D + ωL est une matrice triangulaire
inférieure et donc det(D + ωL)=detD = Πni=1 aii 6= 0. La matrice
D + ωL est donc inversible et la relation (30) devient:
(k+1) (k)
xi = (D + ωL)−1 [(1 − ω)D − ωU ]xj + ω(D + ωL)−1 b (31)
41
Exemple
42
(k) (k) (k) kx(k+1) −x(k+1) k
k ω x1 x2 x3 kx(k+1) k
0 0.5 0 0 0 1
1 0.5 1.33333 -0.333333 0.145833 0.358932
2 0.5 2.07986 -0.589236 0.156098 0.167218
3 0.5 2.49749 -0.759976 0.124458 0.0849963
4 0.5 2.72948 -0.865382 0.0875498 0.0445988
5 0.5 2.8569 -0.927136 0.0572729 0.0235669
6 0.5 2.92585 -0.96188 0.0356533 0.012376
7 0.5 2.96251 -0.980757 0.0213723 0.00640525
8 0.5 2.98161 -0.990677 0.0124181 0.00324604
9 0.5 2.99132 -0.995712 0.00701942 0.00160023
10 0.5 2.99612 -0.99817 0.00386684 0.000760862
0 1.073 0 0 0 1
1 1.073 2.86133 -1.04324
43 0.0127988 0.0557175
Convergence et test darrêt
Test d’arrêt
44
La convergence est réalisée lorsque l’erreur e(k+1) est toujours
inférieur à e(k) , ou si limk→+∞ ke(k) k = 0.
Comme x(0) est arbitrairement choisi alors e(0) est aussi arbitraire,
on conclut qu’on a convergence de la méthode si limk→+∞ kB k k = 0.
Ils existent plusieurs tests pour arrêter les itérations. Elles sont tous
basés sur le vecteur derreur qui doit atteindre un critère prédéfini et
tendant vers une valeur proche de zéro.
On utilise le test darrêt basé sur:
kx(k+1) − x(k) k
<ǫ
kx(k) k
On peut aussi se contanter du critère darrêt suivant:
45
Convergence
46
Théorème: Pour tout choix de x(0) ∈ Rn , la suite x(k) définie par
x(k+1) = Bx(k) + c pour tout k ≥ 1 converge vers l’unique solution de
x = Bx + c si et seulement si ρ(B) < 1.
47
√
Les valeurs propres de B sont ±i/(2 5), le rayon spectral de B est
√
ρ(B) = 1/(2 5) < 1, la méthode de Jacobi est bien convergente dans
ce cas.
La matrice de la méthode
de Gass-Seidel
est
−1
0 1/4
B = (D + L) U = . Les valeurs propres de B sont: 0,
0 1/20
1/20. Le rayon spectral de B est ρ(B) = 1/20 < 1. Comme nous
l’avons vu, la méthode de Gauss-Seidel est bien convergente dans ce
cas.
48
Corollaire: Si kBk < 1 pour une norme matricielle naturelle et
c ∈ Rn , alors pour tout x(0) ∈ Rn la méthode itérative
x(k+1) = Bx(k) + c , pour tout k ≥ 1, converge vers x et on les
relations suivantes:
49
Définition: Une matrice A est dite à diagonale strictement
dominante si
n
X
|aii | > |aij | , ∀i = 1, . . . , n (37)
j=1,i6=j
3 1 1
Exemples: 1.) La matrice: 1 4 −1
est à diagonale
2 3 8
strictement dominante car:
3 > 1 + 1, 4 > |1| + | − 1| et 8 > 2 + 3.
4x + x = 5
1 2
2.) La matrice du système est aussi à diagonale
x1 − 5x2 = −4
strictement dominante car: 4 > 1 et 5 > 1.
50
Théorème: Si la matrice du système Ax = b est à diagonale
strictement dominante alors les méthodes de Jacobi et de
Gauss-Seidel convergent vers l’unique solution de Ax = b pour
n’importe quelle valeur d’initialisation x(0) .
Exemples:
4x + x = 5
1 2
1.) La matrice du système est à diagonale
x1 − 5x2 = −4
strictement dominante, donc la méthode de Jacobi étudiée
précédement est convergente.
3x1 + x2 − x3 = 8
2.) La matrice du système x1 + 5x2 + x3 = −2 est à diagonale
x1 − x2 + 8x3 = 4
strictement dominante, donc la méthode de Gauss-Seidel étudiée
51
précédement est convergente.
3.) La condition “à diagonale strictement dominante” est suffisante
pour garantir la convergence de la méthode de Jacobi et
Gauss-Seidel, mais elle n’est pas necessaire, c’est à dire on peut avoir
des systèmes avec des matrices qui ne sont pas à diagonale
strictement dominante mais la méthode itérative de Jacobi et/ou
Gauss-Seidel converge. C’est ce qu’illustre l’exemple suivant:
−3x1 + x2 = −4
−x1 − 2x2 − 2x3 = −1
x2 − 2x3 = −3
52
0 −1/3 0
−1
BJ = D (L + U ) =
1/2 0 . Le spectre de la matrice
1
0 −1/2 0
√ √
BJ est: σ(BJ ) = 0, ±i √23 .
Le rayon spectral est ρ(BJ ) = √2
3
< 1,
donc la méthode de Jacobi converge.
Partant de x(0) = (0, 0, 0)t , on donne dans le tableau suivant les
(k)
résultats des ittération xi , k = 1, . . . , 10, 20, 40 ainsi que l’erreur
kx(k+1) −x(k+1) k
relative: kx(k+1) k
en norme infinie.
53
(k) (k) (k) kx(k+1) −x(k+1) k
k x1 x2 x3 kx(k+1) k
0 0 0 0 1
1 1.333333333 0.5000000000 1.500000000 1.238095238
2 1.500000000 -1.666666667 1.750000000 0.5416666667
3 0.7777777778 -2.000000000 0.6666666667 2.166666667
4 0.6666666667 -0.5555555556 0.5000000000 0.5909090909
5 1.148148148 -0.3333333333 1.222222222 0.7222222222
6 1.222222222 -1.296296296 1.333333333 0.3333333333
7 0.9012345679 -1.444444444 0.8518518519 0.7536231884
8 0.8518518519 -0.8024691358 0.7777777778 0.2921348315
9 1.065843621 -0.7037037037 1.098765432 0.3727598564
10 1.098765432 -1.131687243 1.148148148 0.1786941581
20 0.9869938526 -0.9826584701 0.9804907788 0.02793620306
40 0.9997744535 -0.9996992713
54 0.9996616803 0.0004881632774
On remarque√que la convergence est très lente, car le rayon spectral
est ρ(BJ ) = √23 ≈ 0.82 < 1 qui est proche de 1.
De même, la matrice de la méthode de Gauss-Seidel est
0 −1/3 0
−1
BG = (D + L) U = 0 1/6
1 . Le spectre de la matrice
0 1/12 1/2
BG est: σ(BG ) = 2/3, 0, 0, le rayon spectral est ρ(BG ) = 2/3 < 1,
donc la méthode de Gauss-Seidel converge.
55
(k) (k) (k) kx(k+1) −x(k+1) k
k x1 x2 x3 kx(k+1) k
0 0 0 0 1
1 1.333333333 -0.1666666667 1.416666667 0.8928571429
2 1.277777778 -1.555555556 0.7222222222 0.7812500000
3 0.8148148148 -0.6296296296 1.185185185 0.4950495050
4 1.123456790 -1.246913580 0.8765432099 0.3802281369
5 0.9176954733 -0.8353909465 1.082304527 0.2472187886
6 1.054869684 -1.109739369 0.9451303155 0.1764446405
7 0.9634202103 -0.9268404207 1.036579790 0.1162621712
8 1.024386526 -1.048773053 0.9756134736 0.07998800180
9 0.9837423157 -0.9674846314 1.016257684 0.05304248248
10 1.010838456 -1.021676912 0.9891615438 0.03586901084
20 1.000187955 -1.000375911 0.9998120446 0.0006258746386
40 1.000000057 -1.000000113
56 0.9999999435 1.882050576 10−7
Dans le cas de la méthode de Gauss-Seidel, la convergence est plus
vite que celle de Jacobi mais est relativement lente aussi.
57
Théorème: Si A est une matrice symétrique, définie positive et
tridiagonale, alors les méthodes de Jacobi, Gauss-Seidel et de
ralaxation avec 0 < ω < 2 convergent pour tout x(0) ∈ Rn . Pour la
méthode de relaxation, le choix optimal de ω est donné par:
2
ωo = p
1+ 1 − ρ(BJ )2
58
la matrice du système est:
2 1 0
A
1 2 1
1 2
59
0 1/2 0
−1
BG = (D + L) U = 0 −1/4 1/2 . Le spectre de la matrice
0 1/8 −1/4
BG est: σ(BG ) = −1/2, 0, 0, le rayon spectral est ρ(BG ) = 1/2 < 1,
donc la méthode de Gauss-Seidel converge.
Pour la méthode de ralaxation, le choix optimal de ω est
2 2
ωo = p = q √ = 1.17
1 + 1 − ρ(BJ ) 2
1 + 1 − (1/ 2)2
60
Conditionnement d’une matrice
Exemple
61
système devient donc
x + 3x = 4
1 2
1.0001x1 + 3x2 = 4.0004
kb − b̃k 0.0003
= = 0.7510−4 (38)
kbk 4.0001
kx − x̃k 3
= =3 (39)
kxk 1
pour une petite erreur relative sur le second membre du système, on
a une grande erreur relative sur x.
62
Pour comprendre ce phénomène, on a tracé sur la figure (1) les
droites d1 d’équation x1 + 3x2 = 4 et la droite d2 d’équation
1.0001x1 + 3x2 = 4.0001. Evidement, l’unique solution du système
est le point d’intersection de d1 et d2 . Après perturbation du second
membre, les droites d˜1 d’équation x1 + 3x2 = 4 et la droite d˜2
d’équation 1.0001x1 + 3x2 = 4.0004 seront complètement confondues
avec d1 et d2 . Cependant, la solution exacte x̃ = (4, 0)t est sur la
droite d1 , qui est très proche de d2 . Ce qui implique que x̃ est aussi
sur la droite d2 (voir figure (1)).
63
d2 4
d1 3
2
1
1 2 3 4
Cet exemple nous montre bien les difficultés qui peuvent apparaı̂tre.
Pour savoir quand ce genre de phénomème pourra apparaı̂tre, il est
necessaire de considérer la norme de la matrice A et celle de A−1 .
64
Ceci nous conduit à introduire la notion de conditionnement d’une
matrice.
65
Conditionnement d’une matrice
Preuve:
66
i) On a A(x + δx) = b + δb = Ax + A(δx) ce qui donne A(δx) = δb et
donc δx = A−1 δb. En passant à la norme:
kδxk = kA−1 δbk ≤ kA−1 kkδbk d’où le résultat.
ii) Puisque b = Ax est équivalent à x = A−1 b, alors on a
kbk = kAxk ≤ kAkkxk et kxk ≤ kA−1 kkbk. On a aussi
kδxk =≤ kA−1 kkδbk et kδbk =≤ kAkkδxk donc:
67
kδxk = kA−1 (A(x + δx)k ≤ kA−1 kkδAkkx + δxk. Ce qui donne:
kδxk
≤ kA−1 kkδAk
kx + δxk
−1 kδAk
≤ kAkkA k (41)
kAk
68
Définition: On appelle conditionnement dune matrice carrée A,
relatif à une norme naturelle, le nombre réel
κ(A) = kAkkA−1 k
69
Définition: Un système est dit:
• bien conditionnési κ(A) est proche de 1
• mal conditionné si κ(A) est grand.
Soit AX=B un système linéaire, de ce qui précéde on a les relations
suivantes:
kδxk kδbk
≤ κ(A) , perturbation du second membre(42)
kxk kbk
kδxk kδAk
≤ κ(A) perturbation de la matrice (43)
kx + δxk kAk
Ses deux relations nous montrent que si une matrice A est mal
conditionnée, κ(A) est grand, alors des petites variations sur les
données A ou b entraı̂nent de très fortes variations sur le résultat x
équations (42,43).
Le conditionnement est donc l’outil mathématique permettant de
70
quantifier l’instabilité numérique des résolutions des systèmes
linéaires.
Propriétés :
(i) κ(αA) = κ(A) pour toute matrice A et tout scalaire α non nul.
(ii) κ(αA) = κ(αA−1 )
(iii) κ(AB) ≤ κ(A)κ(B)
(iv) Si A est une matrice symétrique définie positive alors si Λ et λ
représentent respectivement la plus grande et la plus petite valeur
propre de A alors κ(A) pour la norme 2 est égale à: κ(A) = Λ/λ
(v) Si A est une matrice unitaire (AA∗ = A∗ A = I) ou orthogonale
réelle (AAt = At A = I) alors pour la norme k.k2 on a: κ(A) = 1.
Remarques:
1.) La propriété (v) montre que les systèmes à matrice unitaire ou
71
orthogonale sont bien conditionnés.
2.) La propriété (iv) est utile pour trouver une valeur approchée de
κ(A) sans passer par le calcul de la norme de A et A−1 , surtout que
le calcul de A−1 est très coûteux O(n3 ).
Exemple: La matrice du système considérée dans l’exemple
précédent est
1 3
A=
1.0001 3
sa norme est kAk∞ = 4.0001, cette norme ne sera pas considerée très
grande. Cependant, la norme de A−1 est:
−1 −10000 10000
A = donc kA−1 k∞ = 20000
3333.67 −3333.33
72
un grand nombre.
kδbk
Comme nous l’avons vu dans l’exemple si kbk = 0.7510−4 , à partir
kδxk kδxk
de la majoration de kxk donnée par kxk ≤ κ(A) kδbk
kbk , on trouve:
kδxk kδxk
kxk ≤ 6.00015. On a calculé kxk = 3 ce qui est consistent avec ce
kδxk
qu’on a trouvé à partir de la majoration de kxk .
73