Chap4 Meth - Iterative
Chap4 Meth - Iterative
Chap4 Meth - Iterative
Introduction
En analyse numérique, une méthode itérative est un procédé algorithmique utilisé pour
résoudre un problème, par exemple la recherche d’une solution d’un système d’équations ou
d’un problème d’optimisation. En débutant par le choix d’un point initial considéré comme
une première ébauche de solution, la méthode procède par itérations au cours desquelles elle
détermine une succession de solutions approximatives raffinées qui se rapprochent graduellement
de la solution cherchée. Les points générés sont appelés des itérés.
Motivation
Les méthodes itératives deviennent indispensables dès que la taille n du système est très
grande. En effet, les méthodes directes exigent un nombre d’opérations à virgule flottante de
l’ordre de n3 lorsque n tend vers l’infini ce qui les rend lentes pour de grandes valeurs de n. De
tels systèmes apparaissent par exemple dans les techniques de ésolution numérique d’èquations
aux dérivées partielles. Les matrices des systèmes obtenus sont en général ’creuses’ (c’est à-dire
qu’elles ont beaucoup de 0) et (semi) définies positives.
Dans la suite on supposera toujours que B 2 Mn⇥n (K), c 2 Kn sont choisis tels que I B
inversible et c = I B A 1 b c’est à dire méthode itérative consistante On se donne alors un
vecteur x(0) 2 Kn et on construit une suite de vecteurs x(k) 2 Kn à l’aide du schéma itératif
x 7! Bx + x, i.e x? = Bx? + c
51
qui est équivalent à Ax? = b d’après (3.3).
La mise en oeuvre pratique d’une méthode itérative de la forme (3.4) nécessite la donnée d’un
point de départ x(0) (en général, sauf si l’on possède des informations a priori sur la solution, on
choisit le vecteur nul) et d’une tolérance sur la solution que l’on cherche à calculer. On calcule
ensuite les itérés x? , k = 1, 2, . . . en utilisant la formule (3.4) jusqu’à ce que le résidu
rk = b Ax(k)
3.2.2 Convergence
Définition 14
La méthode itérative (3.4) pour résoudre Ax = b est dite convergente si pour toute valeur
initiale x(0) 2 Kn on a limn!+1 x(k) = A 1 b
Lemme 3
Si la méthode itérative (3.4) est convergente et si on note x = A 1b la solution, alors
x(k) x = B k x(0) x
x(k) x = B k x(0) x () ek = B k e0 , 8k 2 N
Démonstration. On a
1
c= I B A b= I B x
d’où
x(k+1) = Bx(k) + I B x () x(k+1) x = B x(k) x
x(k+1) x = B x(k) x () ek+1 = Bek = BBek 1 = . . . = B k e0
d’où le résultat.
Remarquons que ek = x(k) x représente l’erreur à la k-ième itération de sorte que la formule
ci-dessus permet d’estimer cette erreur en fonction de l’erreur initiale.
Le résultat suivant nous donne des critères pour tester la convergence de la méthode itérative.
Rappelons avant les définitions et résultats suivants :
52
1. ||A|| > 0 8 A 2 Mn⇥n (K) tq A 6= On
2. ||On || = 0 ;
3. || A|| = | |||A||, 8 ( , A) 2 K ⇥ Mn⇥n (K)
4. ||A + B|| ||A|| + ||B||, 8 (A, B) 2 (Mn⇥n (K))2
5. ||AB|| ||A||.||B||, 8 (A, B) 2 (Mn⇥n (K))2
X n
N1 (Ax)
||A||1 = sup = max |aij |, avec A = (aij )i,j=1,...,n
x6= 0 N1 (x) i=1,...,n
j=1
• Norme 1.
n
X
||A||1 = max |aij |, avec A = (aij )i,j=1,...,n
j=1,...,n
i=1
On admettra le résultat suivant qui relie le rayon spectral avec les normes matricielles subor-
données
⇢(A) ||A||
2. Pour toute matrice A et tout réel ", il existe une norme subordonnée ||.|| telle que
lim ek = 0
k!1
53
Théorème 18 (Convergence des méthodes itératives)
On a
lim ||B||k = 0 () ⇢(B) < 1
k!1
Pour que la méthode itérative de la forme (3.4) soit convergente il faut et il suffit que ⇢(B) < 1
Démonstration.
(=)) si ⇢(B) 1, il existe valeur propre de B, telle que 1. Soit x 6= 0 le vecteur propre
associé à , alors B k x = k x et comme | |k ! 1 ou 1, alors B k x ne converge pas vers zéro,
ainsi, ainsi limk!1 B k 6= 0.
((=) On suppose ⇢(B) < 1, cest à dire | i | < 1, i = 1, . . . , r avec i valeur propre de B. Toute
matrice est semblable à une matrice de Jordan et on conclut.
Corollaire 5 SI ||B||k 1 alors ⇢(B) < 1 et la méthode itérative de la forme (3.4) converge.
Démonstration.
La preuve est immédiate car ⇢(B) ||B||. En effet, soit Bx = x alors
La méthode de Jacobi.
On remarque que si les éléments diagonaux de A sont non nuls, le système linéaire Ax = b :
8
>
> a11 x1 + a12 x2 + · · · + a1n xn = b1
>
>
>
> a21 x1 + a22 x2 + · · · + a2n xn = b2
>
> .. .
. = ..
<
> ai1 x1 + ai2 x2 + · · · + ain xn = bi
>
>
> .. .
. = ..
>
>
>
>
:
an1 x1 + an2 x2 + · · · + ann xn = bn
est équivalent à : 8 i = 1, 2, · · · , n
1 ⇣ ⌘
n
X
() xi = bi aij xj , i = 1, . . . , n
aii
j=1, j6=i
54
Pour une donnée initiale x(0) choisie, on calcule x(k+1) par
1 ⇣ ⌘
n
X
(k+1) (k)
xi = bi aij xj , i = 1, . . . , n (3.5)
aii
j=1, j6=i
Remarque.
En pratique, on ajoute une condition dans le critère d’arrêt qui consiste à limiter le nombre
d’itérations à un nombre itermax afin d’éviter de boucler sans fin dans un cas de non convergence.
Pour que le système soit dominante par ligne permutons la deuxième et la dernière ligne et
écrivons le système d’itérations de Jacobi
8 8 8 1
< 2x1 x2 + 0x3 = 1 < 2x1 = 1 + x2 0x3 < x1 = 2 (1 + x2 0x3 )
1
x1 + 2x2 x3 = 0 () 2x2 = 0 + x1 + x3 () x2 = 2 (0 + x1 + x3 )
: : : 1
0x1 x2 + 2x3 = 1 2x3 = 1 0x1 + x2 x3 = 2 (1 0x1 + x2 )
afin de donner une solution approchée du système avec une erreur ne dépassant pas " :
kx(8) x(7) k = k 15
16
15
16 k = 0 < "
kx (7) x k = k 16 78 k = 0, 05 < "
(6) 15
kx(7) x(6) k = k 15
16
15
16 k = 0 < "
On peut prendre X = (15/16, 16/15, 15/16)t comme solution à " près.
55
Remarque 5 Une autre façon d’arrêter le critère d’arrêt est de comparer à la tolérence " l’ex-
pression
kx(k) x(k 1) k
kx(k) k
Algorythme de Jacobi :
Fonction x Jacobi(A, b, x)
Tant que (on a pas convergé) faire
Pour i = 1, · · · ,Pn faire Pn
i 1
bi j=1 aij xj j=i 1 aij xj
yi =
aii
Fin pour
Pour i = 1, · · · , n faire
x i = yi
Fin pour
Fait
A= D - E - F
D: diagonale de A
E: triangulaire inférieure avec des 0 sur la diagonale
F : triangulaire inférieure avec des 0 sur la diagonale
0 1
d1,1 F
B .. C
A=@ . A=D E F
E dn,n
0 1 0 1 0 1
d1,1 0 0 ··· 0 0 aij
B .. C B . . .. C F = @ ... . . .
B C
D=@ . A, E=@ . .A , A
0 dn,n aij 0 0 ··· 0
1 1
Ax = b () (D E F )x = b () Dx = (E + F )x + b () x = D (E + F )x + D b
56
Algorythme matriciel de Jacobi :
Fonction x Jacobi(A, b, x)
Tant que (on a pas convergé)
⇣ faire ⌘
x=D b + (E + F )x)
Fait
ou ⇢
x(0) donné
x(k+1) = BJ x(k) + D 1b
D’après le théorème sur la convergence des méthode itérative, il y’a convergence lorsque
BJ = M 1 N = D 1 (E + F ) est telle que
1
⇢(BJ ) = ⇢ D (E + F ) < 1
Preuve : BJ = M 1N =D 1 (E + F ).
0 a12 a1,n 1 a1n 1
0 a11 ... a11 a11
B a21 a2,n 1 a2n C
B a22 0 ... a22 a22 C aij
B = BJ = B .. .. .. .. C ; Bii = 0, et Bij =
@ . . ... . . A aii
an1 an2 an,n 1
ann ann ... ann 0
n
X n
X Xn
aij
Bij = < 1 =) max Bij = |BJ |1 < 1
j=1 j=1; j 6= i
aii 1in
j=1
57
La matrice d’iterations de Jacobi donne
0 10 1 0 1
1/2 0 0 0 1 0 0 1/2 0
BJ = D 1 (E + F ) = @ 0 1/2 0 A @1 0 1A = @1/2 0 1/2A
0 0 1/2 0 1 0 0 1/2 0
0 10 1 0 1
1/2 0 0 1 1/2
D 1 b = @ 0 1/2 0 A @0 A=@ 0 A
0 0 1/2 1 1/2
x(k+1) = BJ x(k) + D 1b donne sous la forme matricielle :
0 (k+1)
1 0 1 0 (k) 1 0 1
x1 0 1/2 0 x1 1/2
B (k+1) C @ B (k) C @
@x 2 A = 1/2 0 1/2A @x2 A+ 0 A
(k+1) 0 1/2 0 (k) 1/2
x3 x3
On retrouve les itérations faites ci-dessus pour k = 0, 1, · · ·
0 1
1/2 0
BJ I = @1/2 1/2A ,
0 1/2
p
3 2
det(BJ I) = + /2 = 0 () 1 = 0 ou 2,3 =±
2
alors le rayon spéctral de la matrice d’itérations de Jacobi est
p
2
⇢(BJ ) = max{| i |} = <1
2
On a alors x(k) k2N
la suite converge vers x = A 1b solution de l’équation Ax = b.
Remarque 6 On remarque que dans la méthode de Jacobi il faut utiliser toutes les coordonnées
de x(k) pour calculer ⇣ ⌘
(k+1) (k+1) (k+1)
x(k+1) = x1 , x2 , x3 , · · · , x(k+1)
n
| {z }
Question peut dans ce processus de calcul de x(k+1) utiliser ses coordonnées déjà calculées, comme
(k+1) (k+1) (k+1)
par exemple pour calculer x3 du vecteur x(k+1) utiliser x1 et x2 ?
Oui la réponse est donnée par Gauss-Seidel.
La méthode de Gauss-Seidel.
Le système est équivalent à : 8 i = 1, 2, · · · , n
ai1 x1 + ai2 x2 + · · · + ai,i 1 xi 1 + aii xi +ai,i+1 xi+1 + · · · + ain xn = bi
|{z}
1 ⇣ ⌘
n
X
() xi = bi aij xj , i = 1, . . . , n
aii
j=1, j6=i
1 h i
i 1
X n
X
() xi = bi aij xj aij xj , i = 1, . . . , n
aii
j=1 j=i+1
Pour cette méthode on a
1 h i
i 1
X n
X
(k+1) (k+1) (k)
xi = bi aij xj aij xj , i = 1, . . . , n (3.6)
aii
j=1 j=i+1
58
Exemple 13 0 1 0 1 0 1
3 1 1 1 0
@1 2 0 A; b = 1A ,
@ x(0) = 0A
@
1 1 4 1 0
• Itération 1
• Itération 2
Algorythme de Gauss-Seidel :
Fonction x Gauss-Seidel(A, b, x)
Tant que (on a pas convergé) faire
Pour i = 1, · · · , P
n faire Pn
i 1
bi j=1 aij xj j=i 1 aij xj
xi =
aii
Fin pour
Fait
1
Ax = b () (D E F )x = b () (D E)x = b + F x () x = (D E) b + Fx
x(k+1) = (D E) 1
b + F x(k)
M =D E, N =F
et la matrice d’itérations associée est
1
BGS = (D E) F
L’avantage de la méthode de Gauss-Seidel est que, pour calculer x(k+1) , on utilise les valeurs
déjà calculées de x(k+1) , pour j < i, au lieu de x(k) comme dans la méthode de Jacobi. Il est en
général plus rapide que l’algorithme de Jacobi, donc préférable.
59
3.3.2 Convergence des méthodes de Jacobi et de Gauss-Seidel.
On a les résultats suivants
Théorème 20
1) Si A est une matrice à diagonale dominante stricte par lignes, alors les méthodes de
Jacobi et de Gauss-Seidel sont convergentes.
2) Si A est une matrice symétrique définie positive, alors la méthode de Gauss-Seidel converge
(la méthode de Jacobi pas forcément).
La preuve pour la méthode de Gauss-Seidel de 1) (qui peut se faire par l’absurde en supposant
qu’il existe un valeur propre de BGS de module supérieure ou égale à 1), et la partie 2) est
laissée en exercice.
Remarque 7 En pratique la stricte dominance n’est pas indispensable. L’inégalité large suffit
pour la plupart des matrices inversibles.
(0) (0)
(1) b1 a12 x2 a13 x3 1 1⇥0 1⇥0 1
x1 = = =
a11 3 3
(1) (0) 1
(1) b2 a21 x1 a23 x3 1 1⇥ 3 0⇥0 1
x2 = = =
a22 2 3
(1) (1) 1 1
(1) b3 a31 x1 a32 x2 1+1⇥ 3 1⇥ 3 1
x3 = = =
a33 3 4
⌘t
1 1 1
() x(1) = 3, 3, 4
60
⌘
(2) (2) (2)
Itération 2, k = 1 , x(2) = x1 , x2 , x3
(1) (1) 1 1
(2) b1 a12 x2 a13 x3 1 1⇥ 3 +1⇥ 4 11
x1 = = =
a11 3 36
(2) (1) 11 1
(2) b2 a21 x1 a23 x3 1 1⇥ 36 0⇥ 4 25
x2 = = =
a22 2 72
(2) (2) 11 25
(2) b3 a31 x1 a32 x2 1+1⇥ 36 1⇥ 72 69
x3 = = =
a33 4 288
⌘t
11 25 69
() x(1) = 36 , 72 , 288
Récapitulation : Soit A = D E F =M N
méthode décomposition B = M 1N
Jacobi A = M N = D (E + F ) D 1 (E + F )
Gauss-Seidel A = M N = (D E) F (D E) 1 F
Remarque 8
1. La méthode de Gauss-Seidel a un sens ssi D est inversible (comme celle de Jacobi).
2. Si A est hermitienne définie positive, alors M̄ t + N = D est aussi hermitienne positive
et donc la méthode de Gauss-Seidel converge.
1 h i
i 1
X n
X
(k+1) (k+1) (k)
xi,GS = bi aij xj aij xj , i = 1, . . . , n
aii
j=1 j=i+1
donc
!h i
i 1
X n
X
(k+1) (k) (k+1) (k)
xi = (1 !)xi + bi aij xj aij xj , i = 1, . . . , n (3.7)
aii
j=1 j=i+1
61
Lorsque ! = 1 on récupère la méthode de Gauss-Seidel. La formulation matricielle de la méthode
SOR suit immédiatement de (3.8)
(k+1) (k+1)
x(k+1) = (1 !)x(k) + !xGS , xGS = (D E) 1
b + F x(k)
Algorythme
Fonction x Relaxation(A, b, x)
Tant que (on a pas convergé) faire
Pour i = 1, · · · , n faire
⇣ bi Pi 1 aij xj Pn ⌘
j=1 j=i 1 aij xj
xi = ! + (1 !)xi
aii
Fin pour
Fait
62
Remarque 9
1. La méthode est bien définie ssi D est inversible (comme pour la méthode de Jacobi).
2. Si ! = 1, il s’agit de la méthode de Gauss-Seidel.
3. Si ! < 1, on parle de sous-relaxation
4. Si ! > 1, on parle de sur-relaxation
5. L’efficacit´e de la méthode est mesurée par ⇢(L! ) et dépend de !. On va donc chercher
! minimisant ⇢(L! ). En général, cet ! est > 1. D’où le nom de "SOR".
Théorème 21
Soit A une matrice hermitienne définie positive (ou symétrique définie positive), alors la
méthode de relaxation converge si 0 < ! < 2
Démonstration :
63
D’où d’après (3.8), on a :
8 (k+1) (k) (k) (k)
>
> x = (1 !)x1 + ! 1 + x2 x3 /3
< 1
(k+1) (k) (k+1) (k)
x2 = (1 !)x2 +! 7 + x1 + x3 /3
>
>
: (k+1) (k) (k+1) (k+1)
x3 = (1 !)x3 +! 7 x1 + x2 /3
64
3.4 Exercices du chapitre
Exercice 1
Exercice 2
0 1
1 a a
Soit A = @a 1 aA. Pour quelle valeur de a, la matrice A est :
a a 1
1. Symétrique définie positive ?
2. La méthode de Jacobi converge t-elle ?
Exercice 3 Le but de cet exercice est de montrer qu’on ne peut rien dire en
général de la comparaison de deux méthodes itératives.
0 1
1 2 2
1. Pour A = @1 1 1 A, comparer les rayons spectraux de BJ et BGS .
2 2 1
0 1
2 1 1
2. A = @ 2 2 2A, comparer les rayons spectraux de BJ et BGS .
1 1 2
3. En déduire une mise en garde.
Exercice 3bis(Rayon spectral).
Soit A 2 Cn,n une matrice symétrique définie positive Montrer que :
1. Si ⇢(A) < 1 =) 9 Q 2 Rn,n symétrique définie positive telle que B = Q At QA
soit symétrique définie positive on note (S.D.P).
2. Montrer que la réciproque est vraie : S’il existe Q 2 Rn,n symétrique définie
positive telle que B = Q At QA soit symétrique définie positive =) ⇢(A) < 1.
3. (Valeurs propres d’une matrice HDP/SDP).
Soit A 2 Cn,n (resp. ARn,n ) une matrice HDP (resp. SDP).Montrer que, toutes
les valeurs propres de A sont réelles et strictement positives.
Exercice 4
65
b) Faire la même chose pour le système
8
>
> 10x1 x2 + 2x3 =6
>
>
< x + 11x2 x3 + 3x4 = 25
1
>
> 2x1 x2 + 10x3 x4 = 11
>
>
: 3x2 x3 + 8x4 = 15
Exercice 4
Trouver les deux premières itération de la méthode SOR pour le système suivant
partant de x(0)) = 0 : 8
<3x1
> x2 + x3 = 1
3x1 + 6x2 + 2x3 = 0
>
:
3x1 + 3x2 + 7x3 = 4
66
3.5 Méthodes variationnelles de résolution Ax = b
Soit une fonction J : Rn ! R, et on cherche à calculer numériquement un x̄ tel
que
8 x 2 Rn , J(x̄) J(x) (3.9)
Autrement dit, on suppose qu’il existe x̄ 2 Rn tel que
67
On dira que J est coercive.
On en déduit l’existence et l’unicité de x̄ qui minimise J. On a aussi :
consiste à construire une suite (xk )k2N par un algorithme de la manière suivante :
a) Initialisation : x(0) 2 Rn ;
b) Itération k : on suppose x(0) , x(1) , . . . , x(k) connus k 0,
1. On cherche dk direction de descente stricte en x(k)
2. On prend xk+1 = xk ↵k dk , avec ↵k "bien choisit".
d.rJ(x) 0
Preuve :
68
1) Soit d 2 Rn? une direction de descente en x : alors par définition,
et donc
(↵)
(0)
8 ↵ 2]0, ↵0 [, 0;
↵
en passant à la limite lorsque ↵ tend vers 0, on déduit que 0 (0) 0, c-à-d
rJ(x).d 0.
2) Soit d = rJ(x) 6= 0. On veut montrer qu’il existe ↵0 > 0 tel que si ↵ 2]0, ↵0 [,
alors
J(x + ↵.d) < J(x),
ou encore (↵) < (0), est une fonction définit ci-dessus. On a
0
(0) = rJ(x).d = |rJ(x)|2 < 0
Comme 0 est continue, alors il existe ↵0 > 0 tel que si ↵ 2]0, ↵0 [, alors 0 (↵) < 0.
Si ↵ 2]0, ↵0 [, alors
Z ↵
0
(↵) (0) = (t)dt < 0 () (↵) < (0), 8↵ 2 ]0, ↵0 [
0
Preuve : En exercice.
69
Proposition 11 (Condition suffisante d’existence et unicité).
Soit J 2 C(Rn? , R). On suppose que :
⇣ ⌘
9! > 0; rJ(x) rJ(y) .(x y) !|x y|2 , 8 (x, y) 2 R2 (3.11)
Alors
1) On va supposer : R dans Rn par
Alors Z 1
J(y) J(x) = (1) (0) = rJ(x + t(y x)).(y x)dt,
0
On en déduit que
Z 1⇣ ⌘
J(y) J(x) rJ(x)(y x) = rJ(x + t(y x)) rJ(x) .(y x) dt
0 | {z }
!t|y x|2
70
• Algorithme du gradient à pas fixe
Soit J 2 C(Rn? , R), on donne ↵ > 0
8
>
> Initialisation : x(0) 2 R
<
Itérationation k : x(k) connu, k 0
>
> d = rJ(x(k) ),
(k)
: (k+1)
x = x(k) + ↵.d(k) .
alors la suite (x(k) )k2N construite à partir de l’algorithme, converge vers x̄ lorsque
k ! +1.
Preuve :
Montrons la convergence de la suite construite par l’algorithme de gradient à
pas fixe en nous ramenant à un algorithme de point fixe. On pose
h(x) = x ↵rJ(x)
L’algorithme du gradient à pas fixe est alors un algorithme de point fixe pour h.
Donc la suite (x(k) )k2N converge vers l’unique point fixe x̄ de h, caractérisé par
71
• Algorithme du gradient à pas optimal
Dans ce nouvel algorithme, on ne prend pas forcément le paramètre optimal
pour ↵, mais on lui permet d’être variable d’une itération à l’autre. L’algorithme
s’écrit :
a) Initialisation : x(0) 2 Rn ;
b) Itération k : on suppose x(k) connus k 0, soit d(k) = rJ(x(k) ) où d(k) 6= 0
( sinon l’algorithme s’arrête.)
72
— rk est normal à l’ellipse passant par x(k) .
— d(k) est tangent à l’ellipse passant par x(k+1) puisque d(k) est normal à x(k+1) .
Nous avons la construction de la figure suivante :
d(k)
x(k+1)
• (k)
rk 1 • x
x̄ • rk
d(k 1)
Exemple 16 Résoudre
Soit
1 1
↵= =) x(1) = (0, 0) (2, 0) = ( 1, 0)
2 2
✓ ◆
0
— En procèdant de la même façon, on construit x(2) . En effet, rf (x1 ) = On
2
obtient la valeur optimale du pas ↵1 en résolvant
Soit
1 1 1
↵= =) x(2) = ( 1, 0) (0, 2) = ( 1, )
4 4 2
73
Exercicee 1 Soit f : (x, y) ! x2 + 2y 2 + xy + y
1. Trouver un minimum local de f
2. Approcher ce minimum par la méthode de gradient p̀as fixe ↵ = 0.2 puis à pas
optimal.
On note (x(k) ) la suite générée par l’algorithme du gradient à pas fixe noté ↵ pour
pour approcher la solution x̄ qui minimise J sur Rn .
1. Ecrire la suite (x(k) ) sous la forme itérative
x(k+1) = Bx(k) + c
où B et c sont à détermimer.
2. En déduire que l’algorithme à pas fixe converge sssi
2
0<↵<
⇢(A)
Exercicee 3
Soit le problème d’optimisation sans contraintes suivant où la fonction
J : Rn ! R, J(x) = kAxk2 ,
74