Vous êtes sur la page 1sur 59

Chapitre 3

Analyse numérique matricielle

Ibrahim ALAME

ESTP

10/01/2022

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 1 / 59


Système triangulaire
Un système triangulaire supérieur est un système dont la matrice est
triangulaire supérieure.


 a11 x1 + a11 x2 + · · · + a1n xn = b1

a22 x2 + · · · + a2n xn = b2



..
.





ann xn = bn

Si aii non nuls, le système admet une solution unique.


La résolution se fait par substitution arrière :

bn
x =


 n


 ann
 
n
 1 bk −
X

xk = akj xj  ∀k ∈ Jn − 1, . . . , 1K
a

kk


j=k+1

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 2 / 59


Système triangulaire

Algorithm 1: Système triangulaire supérieur


for k from n − 1 to 1 do
xk = bk
for j from k + 1 to n do
xk = xk − akj xj
xk
xk =
akk

Le calcul de xk nécessite n − k flops 1 et une division. Le coût de


l’algorithme est donc 1 + 2 + · · · + n − 1 = n(n−1)
2 flops et n divisions.

1. FLOPS est l’acronyme anglais de FLoating point Operations Per Second signifiant
opérations à virgule flottante par seconde. Il s’agit de la vitesse de calcul d’une opération
élémentaire (addition, multiplication) en informatique.
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 3 / 59
Système triangulaire
Dans le cas d’un système triangulaire inférieur, l’algorithme est analogue
et de même coût :

b1
x1 =





 a11
 
k−1
 1 bk −
X

xk = akj xj  ∀k ∈ J2, nK
akk


j=1

Algorithm 2: Système triangulaire inférieur


for k from 2 to n do
xk = bk
for j from 1 to k − 1 do
xk = xk − akj xj
xk
xk = akk

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 4 / 59


Méthode de Gauss

(1) (1)
On pose A(1) = A, b (1) = b et on note aij = aij et bij = bij les
coefficients de A(1) et B (1) .
On suppose que pour un k fixé on a A(k) =

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 5 / 59


 
(k) (k) ··· · · · a1(k)




a1 1 a1 2 

n 
 

(k) (k) 
0 a2 2 a2 n 




 

 .. 0 .. .. 

. . .
 
 
 
 
.. (k)
 
 



 . ak−1 k−1 



 
(k)
 
0 ak k
 
 
 
 
 
..
 
(k) (k)
···
 



 . ak+1 k ak+1 k+1 



 

 .. .. .. .. 

. . . .
 
 
 
 
(k)
 

(k) (k) 

 0 0 0 an k an k+1 an n

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 6 / 59


Les coefficients de la matrice A(k+1) sont déterminées par récurrence :
Les coefficients dans les lignes Li , 1 6 i 6 k ne sont pas modifiés.
(k)
Pour i > k + 1, si akk 6= 0 :

(k)

 (k+1) (k) aik (k)

 a = a − a ∀i ∈ Jk + 1, nK
 ij ij (k) kj

akk

(k)

 (k+1) (k) aik (k)
b = bi − (k) bk


 i


a kk

On obtient alors un système équivalent, triangulaire A(n) · x = b (n) .


Algorithm 3: Méthode du pivot de Gauss
for k from 1 to n − 1 do
for i from k + 1 to n do
c = aakkik
bi = bi − cbk
aik = 0
for j from k + 1 to n do
aij = aij − cakk
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 7 / 59
Le coût de la méthode de Gauss est de l’ordre de 23 n3 .
À présent, le système est triangulaire supérieur. Nous appliquons
l’algorithme 1 pour achever la résolution.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 8 / 59


Factorisation LU
L’opération algébrique Li ← Li + λLj se traduit matriciellement par la
multiplication à gauche par la matrice P = I + λEij :
1 0 ··· ··· 0
 
. .. 
 0 .. 0

. 
 ..
 

P= .
 

λ
 
 
..
 
. 0
 
0 ··· 0 1
A l’étape k de la méthode de Gauss, l’annulation des coefficients sous la
diagonale de la colonne k est équivalent à la multiplication par la matrice
Qn n
P
Pk = i=k+1 (Id + λik ) = Id + λik Eik . Cette matrice est inversible
i=k+1
d’inverse :
n
Pk−1
X
= Id − λik Eik
i=k+1

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 9 / 59


Factorisation LU

La multiplication P · A ajoute à la ligne i λ fois la ligne j. Cette matrice


est inversible et le produit à droite par P −1 = I − λ · Eij ajoute à la jème
colonne −λ fois la colonne i. Les opérations linéaires simples appliquées à
A afin d’obtenir une matrice triangulaire supérieure se traduisent par la
relation :
Pn−1 · · · P2 · P1 · A = U
On a :
A = (P1−1 P2−1 · · · Pn−1
−1
)·U
Le produit L = P1−1 · P2−1 · · · Pl−1 est une matrice triangulaire inférieure
dont les coefficients diagonaux sont tous égaux à 1.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 10 / 59


Factorisation LU

 −1
n−1
Y n
X
L= Id − λik Eik 
k=1 i=k+1
n−1
XX
= Id + λik Eik
k=1 i>k
 
1

 λ21 1 

 .. .. 
=

. λ32 . 

.. .. ..
 
. .
 
 . 
λn1 λn2 ··· λn n−1 1

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 11 / 59


Factorisation LU
En pratique, les termes non nuls de U et les termes en-dessous de la
diagonale de L sont mémorisés dans la matrice A.
Algorithm 4: Factorisation LU
for k from 1 to n − 1 do
for i from k + 1 to n do
aik
aik =
akk
for j from k + 1 to n do
aij = aij − aik akj

La résolution du système linéaire consiste simplement à résoudre


successivement deux systèmes linéaires triangulaires :
(
L·y =b
A · x = b ⇐⇒ L · U · x = b ⇐⇒
U ·x =y

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 12 / 59


Les éléments non nuls de la matrice L, après factorisation, ne sont que les
coefficients de A sous la diagonale lij = aij (i 6 j).
Algorithm 5: Résolution après factorisation LU(Première étape)
for i from 1 to n do
yi = bi
for j from k + 1 to i − 1 do
yi = yi − aij yj

Les éléments non nuls de la matrice U sont stockés dans la matrice A à la


même position uij = aij (i 6 j).
Algorithm 6: Résolution après factorisation LU(2ème étape)
for i from n − 1 to 1 do
xi = yi
for j from 1 to i − 1 do
xi = xi − aij xj
xi
xi =
aii

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 13 / 59


Méthode de Cholesky
Il s’agit d’une méthode directe adaptée au cas d’une matrice A ∈ Mn (R)
symétrique définie positive (Ax , x ) > 0; ∀x ∈ Rn .
Soit la décomposition L · U de A :
e·U
A=L e

Avec :  
1 0 ··· 0
 .. .. 
 . . 
L=
e 
 .. 
 . 0 
1
Et :
u11
 
 0 u22 
U
e = 
 . ..
 ..

. 
0 · · · 0 unn

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 14 / 59


Soit D une matrice diagonale telle que :
  
u11 0 · · · 0 1 ? ··· ?
 ..   .. 
0 u . 0 1 .
  
U
e =
 22   
 .. ..
 
. .. 0  
 .. 
 .  . . ? 
0 · · · 0 unn 0 ··· 0 1
| {z }| {z }
D Lt
e

On a :
e·D·L
A=L et
 √  √ 
= Le· D · et
D·L
A = L · Lt

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 15 / 59


Example 
Soit A = a b avec a > 0 et ac − b 2 > 0.
b c
A=L·U
  
1 0 a b
=  b  b2 
1 0 c−
a a
a 0
   
1 0 b
=  b  b2   1 a 
1 0 c−
a a 0 1
 √ 

1 0 

a 0

Or A = L · Lt avec L =  b  

1  √ .
ac − b 2 
a 0
a
Donc :  √ 
a 0
 √ 
L= b ac − b 2 
 √ √ 
a a
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 16 / 59
Theorem
Soit A ∈ Mn (R) symétrique définie positive. Alors il existe une unique
matrice L ∈ Mn (R) triangulaire inférieure dont les termes diagonaux sont
tous positifs telle que A = L · Lt .

Par récurrence sur n.



Pour n = 1, A = (a11 ) avec a11 > 0. Donc L = (l11 ) avec l11 = a11 .
Soit A ∈ Mn+1 (R). On écrit A sous la forme :
 
B a
A=
at α
B est symétrique
  et  définie positive car
y y
0< A· , =< B · y , y >. Par hypothèse de récurrence,
0 0
il existe une matrice triangulaire inférieure M dont les coefficients
t
diagonaux sont  telle que B = M · M .
 positifs
M 0
On pose L = où b ∈ Rn et δ > 0.
bt λ
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 17 / 59
On a : !
t M · Mt M ·b
L·L =
bt · M t b · b + λ2
t

Par identification avec la matrice A, on a M · b = a et b t · b + λ2 = α.


D’où b = M −1 · a. et at · M t · M −1 · a + λ2 = α. C’est-à-dire
at · B −1 · a + λ2 = α. D’où λ2 = α − at · B −1 · a.
−1
 
Le signe de α − at · B −1 · a est déterminé en choisissant z = B · a
−1
dans l’inégalité A · z · z > 0.
On obtient
√ bien α − at · B −1 · a > 0. D’où le choix de
λ = α − at · B −1 · a.

M 0
Finalement L =   −1 t  existe et permet de conclure
M ·a λ
la récurrence.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 18 / 59


Calcul de L
Soit L = (`ij )ij et A = (aij )ij .
inf(i,j)
X
A=L· Lt ⇐⇒ aij = `ik `jk ∀(i, j) ∈ J1, nK2
k=1
Pour j = 1 :
ai1 = `i1 `11
(
a11 = `211
⇐⇒
ai1 = `i1 `11 ∀i ∈ J2, nK

 √
`11 = a11

⇐⇒ ai1
`i1 =
 ∀i ∈ J2, nK
`11

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 19 / 59


On suppose avoir calculé les j − 1 premières colonnes de L. On a alors :
j
X
ajj = `jk `jk
k=1
j−1
X
= `2jk + `2jj
k=1
v
u
u j−1
X
`jj = ajj −
t `2jk
k=1

Et pour i ∈ Jj + 1, nK :
j
X j−1
X
ajj = `ik `jk = `ik `jk + `ij `jj
k=1 k=1

j−1
X
aij − `ik `jk
k=1
`ij =
`jj
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 20 / 59
D’où l’algorithme :
Algorithm 7: Factorisation de Cholesky
for j from 1 to n do
s = 0 for k from 1 to j − 1 do
2
s = s + ajk

ajj = ajj − s
for i from j + 1 to n do
s=0
for k from 1 to j − 1 do
s = s + aik ajk
aij − s
aij =
ajj

Choleski conserve le profile de la matrice.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 21 / 59


Coût de calcul de L :
n
X n
X n
X n
X n
X
(2j − 1)(n − j + 1) = 2n j −2 j2 + 2 j+ (j − 1)
j=1 j=1 j=1 j=1 j=1
n(n + 1) n(n + 1)(2n + 1)
= 2n −2
2 6
n3 n2 n
= + +
3 2 6
n3
'
3
À titre de comparaison pour n = 10 :
Gauss : 700 opérations
Cholesky : 350 opérations
Cramer : 40 000 000 opérations

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 22 / 59


Normes matricielles
Norme
On appelle norme matricielle sur Mn (R) induite par la norme vectorielle
de Rn l’application :

A 7−→ kAk = sup kAx k


kx k=1

proposition
kAx k 6 kAk · kx k
kAx k
kAk = max
x 6=0 kx k
kABk 6 kAk · kBk

Examples :
X X q
kAk∞ = max kaij k kAk1 = max |aij | kAk2 = ρ(A · At )
i j
i,j i,j

Si A est symétrique kAk2 = ρ(A).


Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 23 / 59
Normes matricielles
proposition
Soient A ∈ Mn (R) et ε > 0. Il existe une norme induite sur Mn (R) notée
k • kA,ε qui vérifie kAkA,ε 6 ρ(A) + ε.

corollaire
On munit Mn (R) d’une norme k · k. Soit A ∈ Mn (R). Alors ρ(A) < 1 si et
seulement si lim Ak = 0.
k→∞

Si ρ(A) < 1 alors ∃ε > 0 tel que ρ(A) < 1 − 2ε.


kAkA,ε 6 ρ + ε < 1 − ε < 1
kAk kA,ε 6 kAkkA,ε < (1 − ε)k → 0
Donc lim kAk k = 0 en dimension finie.
k→∞
Réciproquement, soit λ une valeur propre de A. On a Ak x = λk x . Donc si
lim Ak = 0, alors lim λk x = 0 et donc |λ| < 1.
k→∞ k→∞
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 24 / 59
proposition
Soit A ∈ Mn (R) muni d’une norme matricielle k · k. Alors :

ρ(A) 6 kAk

corollaire
Pour montrer que la suite x (k+1) = A · x (k) converge, il suffit de trouver
une norme matricielle telle que kAk < 1.

Theorem
Si kAk < 1, alors I + A inversible et on a :

1
(I + A)−1 6
1 − kAk

Si I + A est singulière, alors kAk > 1 pour toute norme matricielle.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 25 / 59


Conditionnement

definition
Soit A ∈ Mn (R) une matrice inversible. On appelle conditionnement de A
par rapport à la norme k • k le nombre :

cond(A) = kAk · kA−1 k

proposition
cond(A) > 1 car kIk 6 kAk · kA−1 k
cond(λA) = cond(A)
cond(A · B) 6 cond(A) · cond(B)
λn
Exemple : Si A symétrique définie positive, alors cond2 (A) = λ1 . Sinon,
q
σ11
cond2 (A) = σ1 où σ1 < · · · < σn valeurs propres de A · At .

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 26 / 59


Propriétés
cond2 (A) = 1 si et seulement si A = αQ avec Q orthogonale
Si A = Q · R, alors cond2 (A) = cond2 (R).
Si A et B sont symétriques définies positives, alors
cond2 (A + B) ≤ max {cond2 (A), cond2 (B)}

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 27 / 59


proposition
Si x solution de Ax = b et x + δx solution de A(x + δx ) = b + δb, alors :

kδx k kδbk
6 cond(A) ·
kx k kbk

Démo :
Nous avons A · x = b et A(x + δx ) = b + δb. Donc A · δx = δb. A est
inversible, donc δx = A−1 · δb. Par passage à la norme :
kδx k 6 kA−1 k · kδbk .
1 kAk
D’autre part, b = A · x , donc kbk 6 kAk · kx k. Donc 6 .
kx k kbk
Par multiplication des deux inégalités, nous obtenons
kδx k −1 · kAk · kδbk .
kx k 6 kAk kbk

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 28 / 59


proposition
Si x solution de A · x = b et x + δx solution de (A + δA)(x + δx ) = b,
alors :
kδx k kδAk
6 cond(A) ·
kx + δx k kAk

Démo :
On a A · x = b et (A + δA)(x + δx ) = b. Donc Aδx = −δA(x + δx ). Par
passage à la norme, nous obtenons :

kδx k 6 kA−1 k · kδAk · kx + δx k


kδx k
6 kA−1 k · kδAk
kx + δx k
kδx k kδAk
6 kA−1 k · kAk ·
kx + δx k kAk

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 29 / 59


Theorem
On suppose kδAk < kA1−1 k et b 6= 0. Alors (A + δA) est inversible et si x
est solution de A · x = b et x + δx de (A + δA)(x + δx ) = b + δb, on a :

kδx k cond(A) kδbk kδAk


 
6 +
kx k 1 − kA−1 k · kδAk kbk kAk

Démo :
La matrice Id + A−1 · δA est inversible car
ρ(A−1 · δA) 6 kA−1 · δAk 6 kA−1 k · kδAk. On applique alors le théorème.
La matrice A + δA = A(I + A−1 · δA) est donc inversible et il existe δx tel
que :
(A + δA)(x + δx ) = b + δb
Ainsi :  
δA · x + A Id + A−1 · δA δx = δb
Donc :
δx δb δA · x
 −1  
= Id + A−1 · δA · A−1 −
kx k kx k kx k
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 30 / 59
Par passage à la norme :

kδx k kδbk
 
6 (Id + A−1 · δA)−1 · kA−1 k + kδAk
kx k kx k
kδbk kδAk
 
6 (Id + A−1 · δA)−1 · cond(A) +
kbk kAk

Par le théorème ?? :
kδx k cond(A) kδbk kδAk
 
6 −1
+
kx k 1 − kA · δAk kbk kAk
cond(A) kδbk kδAk
 
6 +
1 − kA−1 k · kδAk kbk kAk

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 31 / 59


Méthodes itératives
definition
La méthode itérative construit une suite récurrente x (k) qui converge pour
(0)
tout x0 vers x , solution de A · x = b.

On décompose la matrice A sous la forme A = P − N. On a alors


l’équivalence :
P ·x =N ·x +b
 
Si P est inversible, on définit la suite x k par :
k∈N
(
P · x (k+1) = N · x (k) + b
x (0) ∈ Rn donné
Si la suite converge, alors elle converge vers x = A−1 b.
Dans la suite, on pose B = P (−1) N et c = P −1 · b :
(
x (k+1) = B · x (k) + c
x (0) ∈ Rn donné
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 32 / 59
Theorem
 
La suite x (k) converge vers x = A−1 · b ssi ρ(B) < 1.
k∈N
 
La suite x (k) converge vers x = A−1 · b si et seulement si il
k∈N
existe une norme telle que kBk < 1.

Démo :  
Nous avons x (k+1) − x = B x k − x . Donc x (k) − x = B k x 0 − x .


D’après le corollaire , si ρ(B) < 1, alors lim B k = 0. D’où la


k→∞
convergence de la suite vers la solution.
Si kBk < 1, alors kB k k 6 kBkk et donc lim B k = 0. D’où la
k→∞
convergence de la suite.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 33 / 59


example
   
2 −1 −1 1
A= , P = I et N = I − A = = B.
−1 2 1 −1
Les valeurs
(
propres de B sont 0 et −2 ; ρ(B) = 2.
x (k+1) = Nx (k) + b
La suite ne converge pas.
x (0) ∈ Rn donné
Prenons P = βI et N = P − A = βI − A.
Ainsi :
A
B = Id −
β
= Id − αA
 
1 − 2α α
=
α 1 − 2α
où α = β1 . Les valeurs propres de B sont 1 − αλ (où λ valeur propre de
A), 1 − α et 1 − 3α. Donc ρ(B) = max{|1 − α|, |1 − 3α|}

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 34 / 59


1

1
ρ(B) =
2

1 1 2 1
α=
3 2 3

Méthode converge 0 < α < 23


La valeur optimale de ρ(B) correspond à α = 21 .

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 35 / 59


Méthode de Jacobi

Soit la décomposition de la matrice A en somme de trois matrices :


A = D − E − F où D représente la diagonale de A, −E et −F les parties
triangulaires inférieures et supérieures.

a11 0 · · · 0
 

 0 ...
 .. 
D= . 

 . .
 .. .. 0 

0 ann

0 0 ··· 0
   
0 a12 · · · a1n
 .. ..   .. . . .. 
 a21 . .   . . . 
−E = 
 .
; −F =  
 .. ..   .. .. 
. 0  
. . 0 
an1 0 0 0

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 36 / 59


La méthode de Jacobi est itérative telle que P = D et N = E + F . Elle
s’écrit donc : (
x (k+1) = D −1 (E + F )x (k) + D −1 b
x0 ∈ Rn
On note BJ = D −1 (E + F ) et CJ = D −1 b.
 
a12 a1n b1
 
 0 − ··· −
a11 a11  a11
  
  
 a ..  b2
 
21 ..  
−
 . .   
BJ =  a22 CJ =  a22
  
  

 . ..
 . 
 ..  .

. 0  .
 

 an1
 
 bn
  
0 
ann ann

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 37 / 59


La forme développée de la méthode s’écrit :
n
X (k)
bi − aij xj
(k+1) j=1,j6=i
xi = ∀i ∈ J1, nK
aii

où x (0) est un vecteur arbitraire de Rn .


Algorithm 8: Méthode de Jacobi
for i from 1 to n do
s = bi
for j from 1 to i − 1 do
s = s − aij · xj
for j from i + 1 to n do
s = s − aij · xj
s
yi =
aii
for i from i to n do
xi = yi

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 38 / 59


Example

(
10x1 + x2 = 11
Soit à résoudre le système dont la solution est
 
2x1 + 10x2 = 12
x= 1 .
1
En partant de x (0) = 0, on obtient successivement :

11 98 1002 9996
       
 10   100   1000   10000 
x (1) =
 12  ,
 x (2) =
 98  ,
 x (3) =
 1004  ,
 x (4) =
 9992 

10 100 1000 10000


La suite de la méthode de Jacobi semble converger vers la solution x1 = 1,
x2 = 1.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 39 / 59


Example

(
x1 + 10x2 = 11
Soit à résoudre le système dont la solution est aussi
 
10x1 + 2x2 = 12
x= 1 .
1
En partant également de x (0) = 0, on obtient :
       
11 −49 501 −2499
x (1) = , x (2) = , x (3) = , x (4) = , .
6 −49 251 −2499

La suite dans le second cas s’éloigne de la solution et semble diverger.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 40 / 59


La méthode de Gauss-Seidel
Reprenons la méthode de Jacobi sous une forme développée :
(k+1) X (k) X (k)
aii xi =− aij xj − aij xj + bi ∀i ∈ J1, nK
j<i j>i
 
(k+1)
À l’étape i, les termes xj ont été déjà calculés. En général, ils
j<i  
(k)
sont plus proches de la solution que xj dans le cas d’une
j<i
(k) (k+1)
convergence : d’où l’idée de remplacer xj par xj . Ainsi au lieu
d’attendre une itération entière pour corriger chaque composante, la
correction se fait au fur et à mesure :
(
(k+1) (k+1) (k)
=− −
P P
aij xi j<i aij xj j>i aij xj + bi
(0)
x ∈R n

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 41 / 59


La méthode de Gauss-Seidel
Cela revient à choisir une méthode itérative avec P = D − E et N = F . La
méthode de Gauss-Seidel s’écrit matriciellement : fait au fur et à mesure :
(
(D − E )x (k+1) = Fx (k) + b
x (0) ∈ Rn
ou bien :
(
x (k+1) = BGS x k + cGS
x (0) ∈ Rn
où BGS = (D − E )−1 · F et cGS = (D − E )−1 · b.
Algorithm 9: Méthode de Gauss-Seidel
for i from 1 to n do
s = bi
for j from 1 to n do
s = s − aij · xj
s
xi = xi +
aii
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 42 / 59
La méthode de Gauss-Seidel
La programmation de la méthode de Gauss-Seidel ne nécessite pas deux
tableaux X et Y comme dans la méthode de Jacobi. D’où le gain de
stockage. En pratique, la méthode de Gauss-Seidel converge (ou diverge)
souvent plus rapidement que celle de Jacobi car on utilise les nouvelles
valeurs des composantes dès qu’elles sont calculées.
Theorem
Pour une matrice tridiagonale :

ρ(BGS ) = (ρ(BJ ))2

Donc la méthode de Gauss-Seidel converge ou diverge plus vite que celle


de Jacobi.

proposition
Si A est une matrice symétrique définie positive, alors la méthode de
Gauss-Seidel converge.
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 43 / 59
La méthode de Gauss-Seidel
Démo :
A étant symétrique définie positive, on a aii = expti ·A · expi > 0. Donc les
termes diagonaux de D − E sont non nuls. D’où P = D − E inversible et
B = (D − E )−1 a bien un sens.
1
 1 1
−1 1
On a B = D − 2 · Id − D − 2 · E · D − 2 · D− 2 · E t .
1 1
Posons L = D − 2 · E · D − 2 . On a
1 1 1 1
B = D − 2 · (Id − L) · Lt · D 2 = D − 2· B1 · D2 en posant
 1  B1 = (I − L) · L .
t
1
L’équivalence B · x = λ · x ⇐⇒ B1 D 2 · x = λ D 2 x prouve que B et
B1 ont les mêmes valeurs propres.
Soit λ une valeur propre de B1 associée à un vecteur propre x tel que
kx k = 1. On a B1 · x = λx . Donc (I − L)−1 · Lt · x = λx . Donc
x t ·L·x
Lt · x = λ(Id − L) · x . D’où λ = 1−x t ·L·x . Puis en développant l’inégalité
 1
t  1

D − 2 · x · A · D − 2 · x > 0, on trouve x t · L · x < 12 . D’où |λ| < 1. Le
rayon spectral de B étant strictement inférieur à 1, la méthode de
Gauss-Seidel converge.
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 44 / 59
Les méthodes par blocs

En pratique, les systèmes linéaires obtenus par discrétisation des équations


de la physique sont souvent tridiagonales ou tridiagonales par blocs et
s’adaptent bien à une résolution par méthode itérative.
Soit A ∈ Mn (R) une matrice inversible. On suppose qu’elle se décompose
par blocs :  
A11 A12
A =  A21
 

Ann
où AIJ ∈ MnI,nJ (R) est une matrice inversible et (n1 , n2 , . . . , np ) un
p
P
p-uplet tel que nI = n.
I=1

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 45 / 59


On décompose la matrice A en une somme de trois matrices par bloc
A = D − E − F où :
 
A11
D=
 A22 

Ann
 
0 
0 −A12 −A1n

 −A21
0 −A23

E =
 −A −A

 F =
 0 

31 32
0 0

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 46 / 59


Soit (X1t , X2t , . . . , XPt )t une décomposition par blocs de x adaptée à la
décomposition de la matrice de A, c’est-à-dire ∀I ∈ J1, PK, XI ∈ RnI .

X1 B1
   
 X2   B2 
x = .  b= . 
   
 ..   .. 
XP BP

La méthode de Jacobi par blocs s’écrit :



(k+1) X (k) X (k)
AII XI
 =− AIJ XJ − AIJ XJ + BI I = 1, . . . , P
j<i j>i

 (0)
x ∈R
Dans le cas particulier où P = n, chaque bloc AIJ se réduit au coefficient
aij et XI = xi , BI = bi . On retrouve la méthode de Jacobi par points.

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 47 / 59


La méthode de relaxation par blocs devient :
 
i−1 p
(k+1) (k)
Aij xjk+1  + (1 − ω) Aii xi
X X
Aii · xi = ω bi − −ω Aij xjk
j=1 j=i+1

Ce qui est équivalent à :


 
  i−1 p
(k+1) (k)
Aij xjk+1 −
X X
Aii xi − xi = ω bi − Aij xjk 
j=1 j=i

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 48 / 59


Méthode de relaxation
La méthode itérative de relaxation généralise les deux méthodes
précédentes, Jacobi et Gauss-Seidel. Elle est définie par la relaxation :
(k+1) (k)
xi = ω xei (k+1) + (1 − ω)xi

où le réel ω est un paramètre de la méthode et xei (k+1) est la composante


(k)
obtenue à partir de xi par une méthode de Jacobi ou de Gauss-Seidel.
Si la méthode auxiliaire est celle de Jacobi, on obtient pour i ∈ J1, nK :
 
n
(k+1) ω  bi −
X (k) (k)
xi =
aii 
aij xj   + (1 − ω)xi
j=i
j6=i

Soit matriciellement :
 
x (k+1) = Id − ωD −1 · A · x (k) + ωD −1 · b
Cette méthode est très peu utilisée car en général elle n’apporte aucun
gain significatif.
Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 49 / 59
Si la méthode de base choisie est celle de Gauss-Seidel, la méthode de
relaxation est définie par :
 
i−1 n
(k+1) ω  X (k+1) X (k) (k)
xi = bi − aij xj − aij xj  + (1 − ω)xi
aii j=1 j=i+1

(k)
Ou bien en retranchant xi aux deux membres :
 
i−1 n
(k+1) ω  X (k+1) X (k)
xi − xik = bi − aij xj − aij xj 
aii j=1 j=i

Soit matriciellement :
−1 −1 
D D 1
   
(k+1)
x = −E ·b+ −E − 1 · D + F · x (k)
ω ω ω

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 50 / 59


L’algorithme de la méthode de relaxation est aussi simple que celui de
Gauss-Seidel :
Algorithm 10: Méthode de relaxation
for i from 1 to n do
s = bi
for j from 1 to n do
s = s − aij · xj
s
xi = xi + ω
aii

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 51 / 59


Méthode du gradient
A matrice symétrique définie positive, b ∈ Rn et
1
J(x ) = (Ax , x ) − (b, x )
2
Pour h ∈ Rn on a
1
J(x + h) = J(x ) + (Ax − b, h) + (Ah, h)
2
Donc ∇J(x ) = Ax − b

J(x̄ ) minimal =⇒ Ax̄ − b = 0

Donc la solution de Ax = b réalise le min de J :

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


x ∈R

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 52 / 59


x0
h0 x1

h1
x2

J(x0 ) > J(x1 ) > J(x2 ) > · · ·


On pose x1 = x0 + h. On a
1
J(x1 ) = J(x0 + h) = J(x0 ) + (∇J, h) + (Ah, h)
2
On choisit h = −α∇J :

xk+1 = xk − α∇J(xk )

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 53 / 59


Proposition
Soit p ∈ Rn donné et f (α) = J(x − αp). Alors le minimum de f est réalisé
en
(∇J, p)
α=
(Ap, p)

Démo :
α2
J(x − αp) = J(x ) − α(∇J, p) + (Ap, p)
2
d
min =⇒ J(x − αp) = 0 =⇒ −(∇J, p) + α(Ap, p) = 0

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 54 / 59


Méthode du gradient à pas optimal

On a ∇J(x ) = Ax − b On pose r = b − Ax , on a donc



 rk = b − Ax

2
k
krk k
αk = (Ark ,rk )

xk+1 = xk + αk rk

Algorithm 11: Méthode du gradient


x0 donné
while J(xk ) − J(xk+1 ) > ε do
rk = b − Axk
krk k 2
αk = (Ark ,rk )
xk+1 = xk + αk rk

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 55 / 59


Méthode du gradient conjugué

Algorithm 12: Méthode du gradient conjugué


x0 donné
r0 = b − Ax0
p0 = r0
for k from 0 to n − 1 do
krk k2
αk = (Ark ,rk )
xk+1 = xk + αk pk
rk+1 = rk − αk Apk
krk+1 k2
βk = krk k2
pk+1 = rk+1 − βk pk

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 56 / 59


Valeur et vecteur propre
Soit !
10 0
A=
−9 1
On fait (
xk+1 = Axk
x0 arbitraire
! ! ! !
2 20 200 2000
x0 = , x1 = , x2 = , x3 =
1 17 −197 −1997
!
20000
x4 = ···
−19997
 !

 x 1
k // : vecteur propre
=⇒ −1

xk+1 ' 10xk : valeur propre

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 57 / 59


Valeur et vecteur propre

Si A diagonalisable, ici λ1 = 10 associée au vecteur propre v1 = (1, −1) et


λ2 = 10 associée à v2 = (0, 1). D’où
! !k ! !
k 1 0 10 0 1 0 10k 0
A = = k
−1 1 0 1 1 1 −10 + 1 1
Donc
! ! !
k 10k 0 2 2 × 10k
xk = A x0 = =
−10k + 1 1 1 −2 × 10k + 3

Donc
! !
k 1 k 1
xk = 2 × 10 ' 2 × 10
−1 + 1.5 × 10−k −1

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 58 / 59


Algorithm 13: Puissances itérées
q0 ∈ Cn tel que kq0 k = 1
for k from 1 to N do
xk = Aqk−1
ωk = kxk k
xk
qk =
ωk

Ibrahim ALAME (ESTP) Analyse numérique matricielle 10/01/2022 59 / 59

Vous aimerez peut-être aussi