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

Chap4 Meth - Iterative

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 24

3.

2 Méthodes itératives pour la résolution de systèmes linéaires

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.

3.2.1 Modèle général d’un schéma itératif


On considr̀e une matrice A 2 Mn⇥n (K) inversible, K un corp fini, un vecteur b 2 Kn et un
système linéaire
(S) : Ax = b
Le principe général d’une méthode itérative pour résoudre (3.3) est de générer une suite de
vecteurs qui converge vers la solution x = A 1 b. Pour ce faire l’idée est d’écrire le système (S)
sous une forme équivalente permettant de voir la solution comme le point fixe d’une certaine
fonction, i.e
(S) () Bx + c = x, (3.3)
avec B 2 Mn⇥n (K) et c 2 Kn bien choisis c’est-à-dire
1
I B inversible et c = I B A b

Par exemple, si A = M N pour deux matrices M , N 2 Mn⇥n (K) avec M inversible,


1 1
Ax = b () (M N )x = b () M x = b + N x () x = M b+M Nx

on peut choisir d’après (3.3)


1 1
B=M N et c = M b

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(k+1) = Bx(k) + c, k = 1, 2, . . . (3.4)


⇣ ⌘
Si la suite x(k) est convergente, alors elle converge vers la solution x = A 1b de (S).
k2N
En effet, si elle existe, la limite x? est un point fixe de la fonction

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)

soit plus petit que la tolérance notée souvent par ".

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

En posant comme erreur à la k-ème itération : ek = x(k) x, k = 0, . . . , n, on obtient

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 :

Normes, normes matricielles


Les problèmes concrets de l’analyse numérique font intervenir des matrices de grande taille,
pour lesquelles on ne peut espérer obtenir que des solutions approchées.
Ceci soulève trois sortes de problèmes : précision du résultat obtenu, temps de calcul néces-
saire, et stabilité de la solution obtenue par rapport à des perturbations des données. Il existe
des systèmes dits mal conditionnées pour lesquels d’infimes perturbations (dues à des incerti-
tudes de mesures par exemple) provoquent des grands changements dans la solution. On dira
que la matrice est conditionnée. En scilab la commande cond(A) donne un mombre appartenant
à l’intervalle [1, +1[
Une norme matricielle est une norme définie sur un espace vectoriel de matrices.
Définition 15 Soit Mn⇥n (K) l’algèbre des matrices carrées sur le corps K = R ou ( C).
On appelle norme matricielle sur Mn⇥n (K) toute norme ||.|| définie sur l’espace vectoriel
Mn⇥n (K), qui est ainsi une algèbre normée. On a donc, par définition :

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

Si Kn est muni d’une norme vectorielle notée N , on a :


N (Ax)
• ||A|| = sup = sup N (Ax) = sup N (Ax)
x6= 0 N (x) 0N (x) 1 N (x)=1
Ainsi, la norme matricielle est analogue à la norme de l’application linéaire f 2 Hom(Kn , Kn )
dont la matrice, dans des bases données, est A. On dit, d’après la relation précèdente, que
||.|| est une norme subordonnée, ou une norme associée, à la norme N définie sur Kn .
? Des exemples classiques de normes matriciellesPsont les suivants :
• Norme quadratique : Si N = N2 , avec N2 (x) = n 2 2
i=1 xi , la norme subordonnée à N2 ,
notée ||.||2 , est donnée par :
1/2
||A||2 = ⇢(A? A)
où A? = ĀT (adjointe, ou trans-conjuguée, de A) et ⇢(A) = maxi=1,...,n | i |  0 est appelé
rayon spectral de A, avec i 2 Spectre de A. P
• Norme du supremum. Si N = N1 , avec N1 (x) = ni=1 |xi |, la norme subordonnée à
N1 , est généralement notée ||.||1 . Elle est donnée par :

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

Lemme 4 On a les résultats suivants :


1. Soit ||.|| une norme matricielle subordonnée. Alors, pour toute matrice A 2 Mn (K)

⇢(A)  ||A||

2. Pour toute matrice A et tout réel ", il existe une norme subordonnée ||.|| telle que

||A||  ⇢(A) + "

Définition 16 Une méthode itérative est convergente si pour tout x0 , on a

lim ek = 0
k!1

Ceci est équivalent à :

lim B k = 0 () 8 x 2 Kn , lim B k x = 0 () lim ||B||k = 0, 8 la norme matricielle.


k!1 k!1 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

| |||x|| = ||Bx||  ||B||||x||,

soit | |  ||B|| 8 2 Sp(A).

Définition 17 (Matrice normale, unitaire et orthogonale).


Soit A 2 Cn,n . On dit que A est normale si AAH = AH A, AH est la transposée et conjuguée
de A. Si, de plus, AAH = AH A = In on dit que A est unitaire. Si A 2 Rn,n , on dit que A est
orthogonale si AAT = AT A = In .

3.3 Méthodes itératives classiques


3.3.1 Méthode de Jacobi, Gauss-Seidel, relaxation.
Il s’agit ici pour A = M N , de spécifier pour chaque méthode, M et N correspondant.

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

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

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.

Exemple 11 Résoudre l̀’aide de la méthode de Jacobi le système suivant


8
< 2x1 x2 + 0x3 = 1
0x1 x2 + 2x3 = 1
:
x1 + 2x2 x3 = 0

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 )

Le syséme d’itération de Jacobi est alors


8 ⇣ ⌘
> (k+1) 1 (k)
>
> x = 2 ⇣1 + x 2
< 1 ⌘
(k+1) 1 (k) (k)
x2 = x
2⇣ 1 + x 3 , k2N
>
> ⌘
>
: x(k+1) = 1 (k)
3 2 1 + x2

On peut partir de x(0) = (0, 0, 0)t , alors pour


k = 0, x(1) = (1/2, 0, 1/2)t ,
k = 1, x(2) = (1/2, 1/2, 1/2)t
k = 2, x(3) = (3/4, 1/2, 3/4)t
k = 3, x(4) = (3/4, 3/4, 3/4)t
k = 4, x(5) = (7/8, 3/4, 7/8)t
k = 5, x(6) = (7/8, 7/8, 7/8)t
k = 6, x(7) = (15/16, 7/8, 15/16)t
k = 7, x(8) = (15/16, 16/15, 15/16)t
Utilisons le critère d’arrêt
(k+1) (k)
kxi xi k  ", i = 1, · · · , n

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

Voyons ce que (3.5) repreésente matriciellement. D’après (3.5 la décomposition (splitting) de


A est :

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

La matrice d’itération de la méthode de Jacobi est donnée par :


1 1 1
BJ = D (E + F ) = D (D A) = I D A

Définition 18 La méthode de Jacobi est la méthode itérative associée à la décomposition régu-


lière (M, N ) avec M = D et N = E + F . On note BJ sa matrice d’itération :
1
BJ = D (E + F ).

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

La suite d’itérations de Jacobi est définie alors par : Partant de x(0) 2 R



x(0) donné
x (k+1) = D (E + F )x(k) + D 1 b
1

ou ⇢
x(0) donné
x(k+1) = BJ x(k) + D 1b

L’algorithme de Jacobi nécessite le stockage des deux vecteurs : x(k) et x(k+1)

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

Théorème 19 (Condition suffisante de Convergence de Jacobi)


Si A est une matrice à diagonale dominante, alors la méthode de Jacobi converge’

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 1in
j=1

Exemple 12 Dans l’exemple ci-dessus


8 0 1 0 1
< 2x1 x2 + 0x3 = 1 2 1 0 1
x1 + 2x2 x3 = 0 , A= @ 1 2 1 , b= 0 A
A @
:
0x1 x2 + 2x3 = 1 0 1 2 1
0 1 0 1 0 1
2 0 0 0 0 0 0 1 0
D = @0 2 0 A , E=@ 1 0 0A , F =@ 0 1A
0 0 2 0 1 0 0 0 0

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

Sous forme matricielle, on a :

1
Ax = b () (D E F )x = b () (D E)x = b + F x () x = (D E) b + Fx

La suite d’itérations de Gass-Seidel sécrit alors

x(k+1) = (D E) 1
b + F x(k)

Dans ce cas, le splitting de A est

M =D E, N =F
et la matrice d’itérations associée est
1
BGS = (D E) F

qui converge lorsque ⇢ BGS < 1.

Définition 19 La méthode de Gauss-Seidel est la méthode itérative associée à la décomposition


régulière (M, N ) avec M = D E et N = F . On note BGS sa matrice d’itération :
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.

Exemple 14 Pour le système Ax = b,


• 0 1 0 1 0 1
a11 a12 a13 x1 b1
@ A
A = a21 a22 a23 , x = x2 @ A , b = b2 A
@
a31 a32 a33 x3 b3
8 (k) (k)
8 >
> x
(k+1)
=
b1 a12 x2 a13 x3
a
< 11 1x + a x
12 2 + a x
13 3 = b 1 >
< 1 a 11
(k+1) (k)
a21 x1 + a22 x2 + a23 x3 = b2 () (k+1) b2 a21 x1 a23 x3 , k = 0, 1, . . .
: > x 2 = a
a31 x1 + a32 x2 + a33 x3 = b3 >
> (k+1)
22
(k+1)
: x(k+1) = b3 a31 x1 a32 x2
3 a33

(k+1) (k+1) (k+1)
On note x(k+1) = x1 , x2 , x3 , k = 1, 2, . . .
• Application :
0 1 0 1 0 1
3 1 1 1 0
A= @ 1 2 0 A, b = 1A ,
@ x(0) = 0A
@
1 1 4 1 0

(1) (1) (1)
Itération 1, k = 0 , x(1) = x1 , x2 , x3

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

Méthodes de sur-relaxation S.O.R.


A partir des méthodes de Jacobi et de Gauss-Seidel, on peut générer une famille de nou-
velles méthodes en faisant intervenir un paramètre additionnel dans le processus de calcul, afin
d’augmenter la vitesse de convergence. Ce type de technique d’accélération est appelé méthode
de sur-relaxation. Le principe général de la méthode est le suivant :
(k+1)
Si x? est la valeur obtenue du schéma itératif de base, la valeur x(k+1) introduite au prochain
pas sera définie par :
(k+1)
x(k+1) = (1 !)x(k) + !x?
où ! 2 R?+ est le facteur de relaxation.
La méthode de Gauss-Seidel avec accéleration est appelée SOR (de l’anglais Successive Over-
(k+1)
Relaxation). L’algorithme pour obtenir la i-iéme composante xi du vecteur x(k+1) est comme
suit :
(k+1) (k) (k+1)
xi = (1 !)xi + !xi, GS
or d’après (3.6)

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)

x(k+1) =(1 !)x(k) + !(D E) 1


b + F x(k)
=(1 !)x(k) + !(D E) 1 F x(k) + !(D E) 1 b
h i
= (1 !) + !(D E) 1 F x(k) + !(D E) 1 b
=T. x(k) + d
avec T := (1 !) + !(D E) 1 F et d = !(D E) 1 b
L’objectif de la méthode SOR est de trouver ! tel que le rayon spectral de la matrice T ,
⇢(T ) est le plus petit possible.
Il est possible d’écrire pour la méthode de Gauss-Seidel
h i
Ax = b () (D E F )x = b () Dx = b + (E + F )x () x = D 1 b + Ex + F x

Dans ca cas la matrice d’tération de Gauss-Seidel s’écrit


h i
x(k+1) = D 1 b + Ex(k+1) + F x(k)
et la méthode SOR sécrit
h i
x(k+1) = (1 !)x(k) + !D 1
b + Ex(k+1) + F x(k)

Multiplions l’équation par D et en tirant x(k+1) , on obtient :


h i
(D !E)x(k+1) = (1 !)D + !F x(k) + !b

on a alors en divisant par !,


⇣D ⌘ 1h 1 ! i
1
BR = L! := E D + F , et d := !(D !E) b
! !

Définition 20 Soit ! 2 R?+ . On appelle méthode de relaxation, de paramètre de relaxation !,


la méthode itérative associée à la décomposition (M, N ) avec
D 1 !
M= E et N= D+F
! !

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 :

A est hermitienne définie positive. Donc D aussi et M = D


! E est inversibls.
D 1 ! 2 !
M̄ t + N = Ē t + D+F = D
! ! !
car A hermitienne implique Ē t = F . Ainsi, M̄ t + N est aussi définie positive sssi 0 < ! < 2.

Exemple 15 On considère le système linéaire Ax = b, avec


0 1 0 1
3 1 1 1
A=@ 1 3 1A , b = @ 7 A
1 1 3 7
1. Montrer que la méthode de relaxation est applicable pour ! 2]0, 2[.
2. Faire quelques itérations pour ! = 1, 25, partant de x(0) = (0, 0, 0)T .
Réponse
✓ ◆
3 1
det(3) > 0, det = 8, det(A) = 20 > 0
1 3
1)Tous les mimeurs principaux sont strictement positifs et AT = A. La matrice A
est symétrique définie positive. La méthode sor pour résoudre le système converge
8 ! 2 ]0, 2[.
2) L’itérations de la méthode sor est :
(k+1)
x(k+1) = (1 !)x(k) + !xGS , ! = 1, 25 (3.8)
8
< 3x1
> x2 + x3 = 1
x1 + 3x2 x3 = 7
>
:
x1 x2 + 3x3 = 7
(k+1)
Ecrivons les équations correspondant aux iérations de Gauss-Seidel xGS
8 (k+1) (k) (k)
>
> x = 1 + x2 x3 /3
< 1
(k+1) (k+1) (k)
x2 = 7 + x1 + x3 /3
>
>
: (k+1) (k+1) (k+1)
x3 = 7 x1 + x2 /3

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

Soit le système Ax = b, A 2 Mn (R) et x 2 Rn .


a) Donner la définition d’une matrice
0 A symétrique
1 définie positive
2 4 6
b) Montrer que la matrice A = @ 2 8 10A est décomposable en LDU .
6 32 66
c) Peut- décomposer A en LL où L est une matrice triangulaire inférieur et
t

résoudre le système donné ci-dessus pour b = (1, 0, 1)t ? justifier rigoureusement


votre réponse.

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

On cherche à rśoudre le système Ax = b, A 2 Mn (R) et x 2 Rn .


a) Écrire le système d’itérations de Jacobi pour le système :
0 10 1 0 1
2 1 0 x1 1
@0 1 2 A @x2 A = @1 A
1 2 1 x3 0

et en déduire deux itérations partant de x(0) = (0, 0, 0)t vecteur transposé.

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

J(x̄) = inf n J(x)


x 2R

On cherche à calculer x̄ (si J est de classe C 1 , on a nécessairement rJ(x̄) = 0.) On


va donc maintenant développer des algorithmes (ou méthodes de calcul) du point x̄
qui réalise le minimum de J.
Cas d’une fonction quadratique :
Le jacobien d’une fonction J de Rn dans R noté nabla J en un point x 2 R est le
vecteur colonne ⇣ @J @J @J ⌘T
rJ(x) = , ,··· ,
@x1 @x2 @xn

On appelle fonction quadratique , une fonction J de Rn dans R,


1
x 7! J(x) = < Ax, x > < b, x >, A 2 Mn (R), b 2 R, c 2 R (3.10)
2
On vérifie que J est de classe C 1 (Rn , R).
On montrera en TD que son gradient (dérivée de J)
1
rJ(x) = (Ax + At x) b
2
Si A est symétrique
rJ(x) = Ax b.
Son Hessien
1
HJ (x) = D(rJ(x)) = r2 J(x) = A + At
2
Si A est symétrique
HJ (x) = A
Dans le cas où A est symétrique définie positive, J est donc strictement convexe.
De plus J(x) ! +1 lorsque kxk2 ! +1. En effet

< Ax, x > kxk2

où est la plus petite valeur propre de A, et > 0. Donc

J(x) > kxk2 kb.xk |c|

Mais comme kb.xk  kbkkxk, alors


⇣ kxk ⌘
J(x) > kxk kbk |c| ! +1 lq kxk ! +1
2

67
On dira que J est coercive.
On en déduit l’existence et l’unicité de x̄ qui minimise J. On a aussi :

rJ(x̄) = 0 () J(x̄) = infn J(x)


x2R

et donc x̄ est l’unique solution du système Ax = b


On en déduit le théorème suivant, très important, puisqu’il va nous permettre
en particulier le lien entre certains algorithmes d’optimisation et les méthodes de
résolution de systèmes linéaires

Théorème 22 (Minimisation d’une fonction quadratique).


Soit J une fonction définit de Rn dans R (3.10), où A 2 Mn (R) est une matrice
symétrique définie positive et b 2 R Alors il existe un unique x̄ 2 Rn qui minimise J,
et x̄ est l’unique solution du système linéaire Ax = b.

3.5.1 Méthode de la descente


Définition 21 Soit J 2 C(Rn , R)
Soit x 2 Rn , on dit que d 2 Rn? est une direction de descente en x s’il existe ↵0 > 0
tel que
J(x + ↵.d)  J(x), 8 ↵ 2 ]0, ↵0 [
(descente stricte si on a : < au lieu de ).

Une "méthode de descente" pour la recherche de x̄ tel que

J(x̄) = infn J(x)


x2R

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

Proposition 9 (Caractérisation des directions de descente).


Soit J 2 C(Rn , R), x 2 Rn , d 2 Rn? ; alors
1. si d est direction de descente en x alors

d.rJ(x)  0

2. si rJ(x) 6= 0, alors d = rJ(x) est une direction de descente stricte en x.


(C’est aussi la direction la plus forte pente.)

Preuve :

68
1) Soit d 2 Rn? une direction de descente en x : alors par définition,

9↵0 > 0 tel que J(x + ↵.d)  J(x), 8 ↵ 2]0, ↵0 [

Soit la fonction de R dans R définie par

(↵) = J(x + ↵.d)

On a 2 C 1 (R, R) et 0 (↵) = rJ(x + ↵.d).d. Comme d est une direction de


descente, on peut écrire

(↵)  (0), 8 ↵ 2]0, ↵0 [

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

ce qui prouve que d est une direction de descente stricte en x.


Donnons les résultats suivants sur la minimisation de J.

Proposition 10 (Première caractérisation de la convexité).


Soit E un espace vectoriel normé (sur R et J 2 C 1 (E, R) alors :
1. la fonction J est convexe si et seulement si

8(x, y) 2 E 2 , J(y) DJ(x)(y x)

2. la fonction J est strictement convexe si et seulement si

8(x, y) 2 E 2 x 6= y, J(y) > DJ(x)(y x)

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)

1. J est strictement convexe


2. J(x) ! +1 quand |x| ! +1,
et en conséquence, il existe un unique x̄ 2 R tel que J(x̄) = infn J(x).
x2R

Preuve : On va supposer : R dans Rn par

(t) = J(x + t(y x)).

Alors
1) On va supposer : R dans Rn par

(t) = J(x + t(y x)).

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

Ce qui entraîne d’après (3.11)


Z 1
!
J(y) J(x) rJ(x)(y x) ! t|y x|2 dt = |y x|2 > 0, si y 6= x (3.12)
0 2

On a donc, pour tout

(x, y) 2 R2 , J(y) > J(x) rJ(x).(y x),

on en déduit que J est strictement convexe.


2) Montrons maintenant que J(y) ! +1 quand |y| ! +1. D’après (3.12), en
posant x = 0, on obtien
! 2
J(y) > J(0) + rJ(0).y + |y|
2
comme rJ(0).y |rJ(0)|.|y|, on a donc
⇣! ⌘
J(y) > J(0) + |y| |y| |rJ(0)| ! 0, quand |y| ! +1
2
On en déduit qu’il existe un unique x̄ qui minimise J.

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

Théorème 23 (Convergence du gradient à pas fixe).


Soit J 2 C(Rn? , R), vérifiant les hypothèses
⇣ ⌘
9! > 0; rJ(x) rJ(y) .(x y) !|x y|2 , 8 (x, y) 2 R2 (3.13)

9M > 0; rJ(x) rJ(y)  M|x y|, 8 (x, y) 2 R2 (3.14)

La fonction J est donc strictement convexe et croissante à l’infini, et admet donc


un unique minimum. De plus, si
2!
0<↵<
M2

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.

x(k+1) = x(k) + ↵.d(k) = h(x(k) ).

on montre que h est strictement contractante si


2!
0<↵<
M2

Donc la suite (x(k) )k2N converge vers l’unique point fixe x̄ de h, caractérisé par

x̄ = h(x̄) = x̄ ↵r(x̄) =) r(x̄) = 0,

et comme J est strictement convexe, J(x̄) = inf J(x)


x2E

La méthode de descente à pas fixe consiste à construire la suite de terme général


pour une initialisation x(0) par

x(k+1) = x(k) ↵(Ax(k) b) = x(k) ↵rJ(x(k) )

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

On prend ↵k > 0 pas de descente stricte tel que


J(x(k) + ↵k d(k) ) < J(x(k) ).
On pose x(k+1) = x(k) ↵k d(k) .
A chaque itération, le paramètre ↵ est choisi de façon à minimiser la valeur de J
sur la droite x(k) + ↵ + V ect{r(x(k) )}. On cherche ainsi à minimiser alors
gk : ↵ 7 ! J(x(k) + ↵ b Ax(k) )
par rapport à ↵.
rk = b Ax(k)
est le "résidu" (qui converge vers 0).
Cas des fonctionnelles quadratiques :
Application de J : Rn ! R de type
1
J(x) = < Ax , x > < b , x > où A 2 Mn (R) symétrique
2
elle est dite elliptique lorsque la matrice A est définie positive.
Pour rappel, on a J 0 (x) = r(x) = Ax b et est convexe si A est symétrique définie
positive.
La recherche du minimum de J sur Rn devient donc une suite de problèmes de
minimisation sur R que l’on peut résoudre de manière exacte : la fonction gk est en
fait polynomiale de degré 2, et de coefficient de plus haut degré positif. En effet,
↵2 1
gk (↵) = J x(k) + ↵(b Ax(k) ) = . . . =
< Ark , rk > ↵ < rk , rk > + < Ax(k) b, x(k) >
2 2
0
Elle atteint alors son minimum au point unique ↵k vérifiant gk (↵k ) = 0, ce qui nous
amène à l’expression suivante :
< rk , rk > krk k2
↵k = =
< Ark , rk > < Ark , rk >
On obtient alors le nouvel algorithme :
8
>
> x(0) donné dans Rn
>
< r
k = b Ax(k) , k > 0
krk k2
>
> ↵k = <Ar
>
: (k+1) k ,rk >
x = x(k) + ↵k rk
Construction géométrique du processus Réalisons une section à deux dimensions de
l’espace Rn qui passe par x(k) , rk et x(k+1) . Les intersections de cette section avec
les surfaces J(x) = C coube de niveaux, forment une famille d’ellipses ayant même
centre de symétrie x̄. On sait que

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)

Méthode de descente. à pas optimal

Exemple 16 Résoudre

min f (x), f (x) = x21 2x1 x2 + 2x22 + 2x1


x 2 R2

Analytiquement, nous pouvons montrer que le point ( 2, 1) est solution du pro-


blème posé. Mais ici nous allons nous intéresser à l’approximation de cette solution
par la méthode descente gradient partant du point initiale x0 = (0, 0).
On a : x(k+1) = x(k) ↵k rf (x(k) )
✓ ◆
2x1 x2 + 2
rf (x1 , x2 ) =
2x1 + 4x2
✓ ◆
2
— Au point x0 = (x01 , x02 ), on a rf (x0 ) = . On obtient la valeur optimale du
0
pas ↵0 en résolvant

↵0 = min f (x(1) ) = min f (x(0) ↵rf (x(0) )) = 4↵2 4↵


↵ 0 ↵ 0

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

↵1 = min f (x(2) ) = min f (x(1) ↵rf (x(1) )) = 8↵2 4↵ 1


↵ 0 ↵ 0

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.

Exercicee 2 (problène quadratique ) Soit A 2 Mn symétrique définie positive, et b 2


Rn . Soit le problème
1
minn j(x), J(x) = < Ax, x > < b, x >
x2R 2

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

f : R2 ! R : min f (x, y) = 3x2 + 3y 2

Pour chacun de ces algorithmes, appliquer deux itérations de la méthode en prenant


comme point de départ (x0 , y 0 ) = (1, 1).
1. La méthode du gradient à pas optimal,
2. La méthode de Newton.

Exercicee 4 Soit A 2 Mn , et J la fonction définie de

J : Rn ! R, J(x) = kAxk2 ,

où k.k désigne la norme euclidienne sur Rn


1. Montrer que J admet un minimum.
2. On suppose que la matrice A est inversible, montrer que ce minimum est
unique.
3. Ecrire l’algorithme du gradient à pas optimal pour la recherche de ce mini-
mum.
4. A quelle condition suffisante cet algorithme converge-t-il ?

74

Vous aimerez peut-être aussi