Vous êtes sur la page 1sur 49

Chapitre II : Résolution des systèmes linéaires

A. Ezziani
Université Hassan II de Casablanca
FSJES Aı̈n Sebaâ
Département SMAEG
Filière : LF MASS

2019-2020
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 1/39
Résolution de systèmes linéaires

I) Introduction
II) Système triangulaire supérieur
III) Système triangulaire inférieur
IV) Elimimination de Gauss
V) Factorisation LU
VI) Factorisation de Cholesky
VII) Problèmes mal conditionnés

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 2/39


I) Introduction

Un grand nombre de problèmes rencontré en mathématiques


appliquées aboutit à la résolution d’un système linéaire. Il est donc
indispensable de disposer d’algorithme capables de résoudre ces
systèmes d’une manière efficace.

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

 a21 x1 + a22 x2 + · · · + a2n xn = b2

(SL) ..


 .
an1 x1 + an2 x2 + · · · + ann xn = bn

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 3/39


I) Introduction



 a11 x1 + a12 x2 + · · · + a1n xn = b1
 a21 x1 + a22 x2 + · · · + a2n xn = b2

(SL) ..


 .
an1 x1 + an2 x2 + · · · + ann xn = bn

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 4/39


I) Introduction

    
a11 a12 ··· a1n x1 b1
 a21 a22 ··· a2n  x2   b2 
⇔ =
    
.. .. .. ..  .. .. 
 . . . .  .   . 
an1 an2 · · · ann xn bn
| {z } | {z } | {z }
A X B

(SL)⇔AX = B, X =??
Si A est inversible (det(A) 6= 0) le système (S) admet une solution
unique X = A−1 B. Par la méthode de Cramer, on a

a11 a12 · · · b 1 · · · a1n

det(Aj ) a21 a22 · · · b 2 · · · a2n
xj = avec det(Aj ) = . , ∀ j = 1, · · · , n.

.. .. .. ..
det(A) .. . . . .

an1 an2 · · · b n · · · ann

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 4/39


I) Introduction

On a alors n + 1 déterminant de taille n × n à calculer



a11 a12
· · · a1n
n
a21 a22 · · · a2n X
det(A) = ∆n = . = (−1)i+j aij ∆ijn−1 .

.. .. ..
.. . . .
i=1
an1 an2 · · · ann

le calcul de ∆n ⇒ n! additions et n × n! multiplications. Soit


(n + 1)! opérations pour le calcul de chaque déterminant
⇒(n + 1)(n + 1)! opérations pour le calcul de la solution.
Exemple n = 50, 109 opérations par seconde (ordinateur puissant)

51 × 51!
temps = = 2.5 1051 années.
109 × 3600 × 24 × 365
C’est donc sans espoir ! ! !
⇒ Méthodes efficaces de résolution
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 5/39
I) Système triangulaire supérieur
On considère le système

 u11 x1 + u12 x2 + · · · + u1n xn
 = b1
n
u22 x2 + · · · + u2n xn = b2

 Y
(SU ) .. .. . avec uii 6= 0


 . . = .. i=1
unn xn = bn

Le système (SU ) s’écrit sous la forme matricielle UX = B avec


 
u11 u12 · · · u1n
 0 u22 · · · u2n 
U= . ..  matrice triangulaire supérieur,
 
. .. . .
 . . . . 
0 0 0 unn
   
x1 b1
 x2   b2 
X =  .  et B =  .
   
 ..   ..


xn bn
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 6/39
II) Système triangulaire supérieur

 
x1
 x2 
X =  solution de UX = B (ou de (SU ))
 
..
 . 
xn

 xn = bn /unn


  
=⇒ n
X
 xi = bi − uij xj  /uii , i = n − 1, · · · , 1.

 

j=i+1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 7/39


II) Système triangulaire supérieur

Algorithme
X(n)=B(n)/U(n,n)
pour i=n-1 à 1 faire
S=0
pour j=i+1 à n faire
S=S+U(i,j)*X(j)
finp j
X(i)=(B(i)-S)/U(i,i)
finp i

Calcul de complexité :
additions : n(n − 1)/2
multiplications : n(n − 1)/2
divisions : n
Total : n2
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 8/39
II) Système triangulaire supérieur

Exemple


 x1 − x2 − x3 + x4 = 0 (1)

x2 + x3 + 2x4 = 7 (2)




 2x3 + x4 = 5 (3)

2x4 = 2 (4).

On a
(4) ⇒ x4 = 1
(3) ⇒ x3 = (5 − x4 )/2 = 2
(2) ⇒ x2 = 7 − x3 − 2x4 = 3
(1) ⇒ x1 = x2 + x3 − x4 = 4

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 9/39


III) Système triangulaire inférieur
On considère le système

 l11 x1
 = b1
 l21 x1 + l22 x2 n
= b2

Y
(SL ) .. .. . avec lii 6= 0


 . . = .. i=1
ln1 x1 + ln2 x2 + · · · + lnn xn = bn

Le système (SL ) s’écrit sous la forme matricielle LX = B avec


 
l11 0 · · · 0
 l21 l22 · · · 0 
L= .  matrice triangulaire inférieur,
 
. .. . .
 . . . 0 
ln1 ln2 · · · lnn
   
x1 b1
 x2   b2 
X =  .  et B =  .
   
 ..   ..


xn bn
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 10/39
III) Système triangulaire inférieur

 
x1
 x2 
X =  solution de LX = B (ou de (SL ))
 
..
 . 
xn

 x1 = b1 /l11


  
=⇒ i−1
X
 xi = bi − lij xj  /lii , i = 2, · · · , n.

 

j=1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 11/39


III) Système triangulaire inférieur

Algorithme
X(1)=B(1)/L(1,1)
pour i=2 à n faire
S=0
pour j=1 à i-1 faire
S=S+L(i,j)*X(j)
finp j
X(i)=(B(i)-S)/L(i,i)
finp i

Calcul de complexité :
additions : n(n − 1)/2
multiplications : n(n − 1)/2
divisions : n
Total : n2
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 12/39
III) Système triangulaire inférieur

Exemple


 2x1 = −4 (1)

 x1 + 3x2 = −5 (2)

 −2x2 − x3
 = −2 (3)


4x1 + x3 + 2x4 = 2 (4).

On a
(1) ⇒ x1 = −2
(2) ⇒ x2 = −(5 + x1 )/3 = −1
(3) ⇒ x3 = 2 − 2x2 = 4
(4) ⇒ x4 = (2 − 4x1 − x3 )/2 = 3.

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 13/39


IV) Elimination de Gauss

Le but de la méthode de Gauss est de transformer le système


AX = B à un système triangulaire supérieur facile à résoudre. Les
opérations autorisées par la méthodes sont :
échange de deux lignes
multiplication d’une ligne par un nombre non nul
addition d’un multiple d’une ligne à une autre ligne

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 14/39


IV) Elimination de Gauss

Exemple
 
 x − y + 3z = 6  1 x − y + 3z = 6 L1
3x − 5y + 7z = 14 ⇒ 3x − 5y + 7z = 14 L2 1 le pivot
x + 3y − 11z = −4 x + 3y − 11z = −4 L3
 

 
 x − y + 3z = 6  x − y + 3z = 6
⇒ −2 y − 2z = −4 L2 − 3L1 ⇒ −2y − 2z = −4
4y − 14z = −10 L3 − L1 −18z = −18 L3 + 2L2
 

 z =1
⇒ y = (4 − 2z)/2 = 1
x = 6 + y − 3z = 4.

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 15/39


IV) Elimination de Gauss
Algorithme général


 a11 x1 + a12 x2 + · · · + a1n xn = b1
 a21 x1 + a22 x2 + · · · + a2n xn = b2




 .. .. .. .. ..
. . . . .


 a i1 x1 + ai2 x2 + · · · + ain xn = bi

 .
.. .. .. .. ..
. . . .




an1 x1 + an2 x2 + · · · + ann xn = bn .

On commence par regarder la première variable. On peut supposer


quitte à intervertir des lignes que a11 6= 0 (a11 est alors appelé un
pivot)
1 On élimine x1 dans L2 , L3 , · · · , Lp , en effectuant :
ai1
Li ← Li − L1 , ∀ i = 2, · · · , n.
a11

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 16/39


IV) Elimination de Gauss
Algorithme général On obtient le système :


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

a022 x2 + · · · + 0 x
a2n = b20



 n
.. .. .. ..



. . . .
a 0 x + · · · + 0 x
ain = bi0

 i2 2 n
.. .. .. ..





 . . . .
a0 x 0 x 0

 + ··· +
n2 2 ann n = bn .

2 On pose k = 2.
3 Pour l ≤ n, s’il existe Ll telle que alk 6= 0, on échange Lk et Ll
(Lk ↔ Ll ), sinon on arrête (matrice singulère).
4 On élimine x dans L
k k+1 , Lk+2 , · · · , Ln en effectuant :
Li ← Li − aakkik Lk , ∀ i = k + 1, · · · , n.
5 On reprend l’étape 2. en posant k = k + 1.

Au final on aura un système triangulaire supérieur.


A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 17/39
IV) Elimination de Gauss

Definition
On appelle sous-matrice principale d’ordre k de la matrice A et on
note Ak la matrice

Ak = (aij ), 1 ≤ i ≤ k, 1 ≤ j ≤ k

Théorème
Les deux propositions sont équivalentes
i) Tous les pivots (de l’élimination de Gauss) sont non nuls.
ii) Toutes les sous-matrices principales de A sont inversibles.

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 18/39


IV) Elimination de Gauss

Algorithme (sans permutation)


pour k=1 à n-1 faire
pour i=k+1 à n faire
c=A(i,k)/A(k,k)
b(i)=b(i)-c*b(k)
pour j=k+1 à n faire
A(i,j)=A(i,j)-c*A(k,j)
finp j
finp i
finp k

Exercice
Modifier l’algorithme ci-dessus pour prendre en compte le cas d’un
pivot nul.

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 19/39


V) Factorisation LU

Remarque
Si A = LU avec L (resp. U) une matrice triangulaire inférieure
(resp supérieure) inversible la résolution du système matriciel
AX = B (c-à-d LU X = B) se fait de la manière suivante :
On effectue la résolution successive de deux systèmes
triangulaires.On pose tout d’abord Y = UX et on résout LY = B
(système triangulaire inférieur). Une fois que l’on a calculé Y , on
obtient X en résolvant UX = Y (système triangulaire supérieure).
C’est-à-dire 
LY = B
LU X = B=⇒
UX = Y

La factorisation LU d’une matrice carrée inversible A est basée sur


l’élimination de Gauss.

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 20/39


V) Factorisation LU
La factorisation LU est une variante de la méthode de Gauss
Etape 1 :
 
a11 a12 ··· a1n L1
 a21
 a22 ··· a2n 
 L2
A = A(1) =  a31
 a32 ··· a3n 
 L3 =⇒
 . .. .. ..
 ..

. ··· .  .
an1 an2 ··· ann Ln
L1
 
a11 a12 ··· a1n
 0 a22 − a21 a12 a21  L2 − aa11
21
L1
 
 a11 ··· a2n − a11 a1n 
A =  0 a32 − aa31
(2) a31  L3 − aa31 L1
 

11
a12 ··· a3n − a11 a1n  11
 .. .. ..  ..
 .
 . ··· . 
 .
0 an2 − aan1 a12 ··· ann − an1
a11 a1n Ln − an1
11 a11 L1
Matriciellement : A(2) = M (1) × A(1) , M (1) = ? ? ?
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 21/39
V) Factorisation LU (Etape 1)
Matriciellement : A(2) = M (1) × A(1) , M (1) = ? ? ?
 
a11 a12 ··· a1n
 0 a22 − a21 a12 · · · a2n − a21 a1n
 

 a11 a11 
A =  0 a32 − a11 a12 · · · a3n − aa31
(2) a31
 

11
a1n =

 .. .. .. 
 .
 . ··· . 

0 an2 − a11 a12 · · · ann − aan1
an1
11
a1n

1 0 0 ··· 0 a11 a12 · · · a1n


   
 − a21 1 0 · · · 0 
 21 a22 · · ·
 a a2n 
 a11  
 a   
 − 31 0 1 · · · 0 
 ×  a31 a32 · · · a3n 

 a11 
 . .. .. . . ..    . .. .. 
 . .  .
 . . . .   . . ··· . 

− aan1
11
0 0 ··· 1 an1 an2 · · · ann
M (1) × A(1)
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 22/39
V) Factorisation LU (Etape 1)
Matriciellement : A(2) = M (1) × A(1) , M (1) = ? ? ?
 
(2) (2) (2)
a11 a12 · · · a1n 
1 0 0 ··· 0

 
  
(2) (2) 
 −m21 1 0 · · · 0 

 0
 a 22 · · · a 2n 
  
A(2) =  (2)  =  −m31 0 1 · · · 0  ×

(2)
 
 0 a32 · · · a3n  
 .
 . .. ..  .. .. .. . . .. 
  . . . . . 

 . . ··· .  
−mn1 0 0 · · · 1
 
(2) (2)
0 an2 · · · ann
 (1) (1) (1)

a11 a12 · · · a1n
  
 (1) (1) (1)  (1)
 a21 a22 · · · a2n   (2) (1) ai1 (1)
a = a − a , ∀ i, j = 2, n


   ij
 ij (1) 1j
 (1) (1) (1)  a
 31 a32 · · · a3n  avec 
 a  11
(1)
a i1
 .. .. ..   mi1 = (1)
  

···

 . . .  a
  11
(1) (1) (1)
an1 an2 · · · ann
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 22/39
V) Factorisation LU (Etape k)
Matriciellement : A(k+1) = M (k) × A(k) , M (k) = ? ? ?
 
(k+1) (k+1) (k+1)
a11 ··· a1 k+1 · · · a1n
 
 .. .. .. 
 0
 . . · · · . 

(k+1)
 
A =  (k+1) (k+1)  =
 0 0 ak+1 k+1 · · · ak+1 n  
 .. .. .. .. 
. . . ··· .
 
 
(k+1) (k+1)
0 0 an k+1 · · · ann
 
(k) (k) (k)
  a11 · · · a1 k · · · a1n
1 0 0 ··· 0  
 0 1 0 · · · 0   .. .. .. 
   0 . . ··· . 
 ..  
  
 0 0 1 ··· .  × 

(k) (k)
0 0 akk · · · akn

 .. ..

. .   
 . . −mk+1 k . 0   .. .. .. .. 
. . . ··· .

0 0 −mn k ··· 1 
(k) (k)

0 0 ank · · · ank
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 23/39
V) Factorisation LU (Etape k)
Matriciellement : A(k+1) = M (k) × A(k) , M (k) = ? ? ?
 
(k+1) (k+1) (k+1)
a11 ··· a1 k+1 ··· a1n
 
 .. .. .. 
 0
 . . ··· . 

A(k+1) = 
 
(k+1) (k+1) =
 0
 0 ak+1 k+1 ··· ak+1 n 

 .. .. .. .. 
. . . ··· .
 
 
(k+1) (k+1)
0 0 an k+1 ··· an k+1
 
1 0 0 ··· 0  (k)
(k+1) (k) aik (k)
 0 1 0 ··· 0

a = a − a , i, j = k + 1, n
 


..
  ij
 ij (k) kj
  (k) akk
 0 0 1 ··· .×A ,
(k)
 .. ..

..
  aik
 mik = (k) , i = k + 1, n
 
 . . −mk+1 k . 0  

0 0 −mn k ··· 1 akk

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 23/39


V) Factorisation LU (Etape n − 1)

U = An = M (n−1) A(n−1) = M (n−1) M (n−2) A(n−2) = · · ·

= M (n−1) M (n−2) · · · M (1) A


h i−1 −1 −1
A = M (n−1) M (n−2) · · · M (1) U = M (1) · · · M (n−1) U
=⇒
−1 −
= LU, L = M (1) · · · M (n−1)
−1
M (k) , L ???
   
1 0 0 ··· 0 1 0 0 ··· 0
 0 1
 0 ··· 0 

 m21
 1 0 ··· 
0
 −1 .. ..
M (k)
   
 0 0
= 1 ··· .,
 m31 m32 1
L= ···  .
 .. ..  .. .. ..
 
..  .. 
 . . mk+1 k . 0   . . . . 0 
0 0 mn k ··· 1 mn1 mn2 · · · ··· 1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 24/39


V) Factorisation LU
Algorithme (sans permutation)
L(n,n)=1
pour k=1 à n-1 faire
L(k,k)=1
pour i=k+1 à n faire
L(i,k)=A(i,k)/A(k,k)
pour j=k+1 à n faire
A(i,j)=A(i,j)-L(i,k)*A(k,j)
fpour j
fpour i
fpour k
Calcul de complexité :
additions : (n3 − n)/3
multiplications (n3 − n)/3
divisions (n2 − n)/2
Total : 2n3 /3
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 25/39
V) Factorisation LU

Exemples
1
 
2 1 0 4
0 −3 −12 −1 
A = A(1) = 


 4 1 −2 8 
−4 −2 3 −7
   
2 1 0 4 1 0 0 0
 0 −3 −12 −1  0 1 0 0 
A(2)

=
 0 −1 −2
, L =  
0   2 · 1 0 
0 0 3 1 −2 · · 1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 26/39


V) Factorisation LU

Exemples
1
 
1 2 0 4
−3 −12 −1 
 0
A(2) = 
−1 −2
 0 0 
0 0 3 1
   
2 1 0 4 1 0 0 0
0 −3 −12 −1  , L =  0 1 0 0 
A(3) = 
 

 0 0 2 1/3   2 1/3 1 0 
0 0 3 1 −2 0 · 1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 26/39


V) Factorisation LU

Exemples
1
 
2 1 0 4
 0 −3 −12 −1 
A(3) = 
 0 0

2 1/3 
0 0 3 1
   
2 1 0 4 1 0 0 0
 0 −3 −12 −1   0 1 0 0 
A(4) =U=
 0 0
, L =  
2 1/3   2 1/3 1 0 
0 0 0 1/2 −2 0 3/2 1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 26/39


V) Factorisation LU

Exemples
2
 
8 −4 3 7
4 2 −6 4 
A = A(1) = 


 −16 6 −2 −15 
6 10 −15 10
   
8 −4 3 7 1 0 0 0
0 4 −15/2 1/2   , L =  1/2 1 0 0 
A(2) = 
  
 0 −2 4 −1   −2 · 1 0 
0 13 −69/4 19/4 3/4 · · 1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 27/39


V) Factorisation LU

Exemples
2

8 −4
 
3 7
 0 4 −15/2 1/2 
A(2) =
 0 −2

4 −1 
0 13 −69/4 19/4
   
8 −4 3 7 1 0 0 0
 0 4 −15/2 1/2   , L =  1/2 1 0 0 
A(3)

= 
 0 0 1/4 −3/4   −2 −1/2 1 0 
0 0 57/8 25/8 3/4 13/4 · 1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 27/39


V) Factorisation LU

Exemples
2
 
8 −4 3 7
 0 4 −15/2 1/2 
(3)
A =
 
 0 0 1/4 −3/4 

0 0 57/8 25/8
 
8 −4 3 7
 
1 0 0 0
1
 0 4 −15/2 2

1/2 1 0 0 
A(4) = U = 

, L = 
  
 0 0 1/4 −3/4   −2 −1/2 1 0 
0 0 0 49/2 3/4 13/4 57/2 1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 27/39


VI) Factorisation de Cholesky
Rappel : une matrice symétrique est définie positive si
t XAX > 0, ∀ X 6= 0
 
2 −1 0
Exemple La matrice A =  −1 2 −1  est symétrique
0 −1 2
définie positive. En effet,
  
2 −1 0 x1
t XAX = (x , x , x )  −1 2 −1   x2 
1 2 3
0 −1 2 x3
 
2x1 − x2
= (x1 , x2 , x3 ) −x1 + 2x2 − x3 

−x2 + 2x3
= 2x12 − 2x1 x2 + 2x22 − 2x2 x3 + 2x32
= x12 + (x1 − x2 )2 + (x2 − x3 )2 + x32 > 0, ∀ X 6= 0.

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 28/39


VI) Factorisation de Cholesky

Proposition
Une matrice symétrique est définie positive ssi ses valeurs propre
sont strictement positive.
 
2 −1 0
Exemple La matrice A =  −1 2 −1  est symétrique
0 −1 2
définie positive. En effet,

2−X −1 0

P(X ) = det(A − XI3 ) = −1 2 − X −1
0 −1 2 − X
= (2 − X ) (2 − X )2 − 1 − (2 − X ) = (2 − x) (2 − X )2 − 2
 
√ √
= (2 − X )(2 + 2 − X )(2 − 2 − X )
√ √
Donc Sp(A) = {2 − 2, 2, 2 + 2}
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 29/39
VI) Factorisation de Cholesky

Proposition
Une matrice symétrique est définie positive ssi chacune de ses sous
matrice principales à un déterminant positif.
 
2 −1 0
Exemple A =  −1 2 −1 
0 −1 2
det(A1 ) = det(2) = 2

2 −1
det(A2 ) =
=4−1=3
−1 2
det(A3 ) = det(A) = 4

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 30/39


VI) Factorisation de Cholesky

La méthode de Cholesky ne s’applique qu’aux matrices


symétriques définies positives.

Théorème
Toute matrice A symétrique définie positive admet une
décomposition unique sous la forme A = LLt où L est une matrice
triangulaire inférieure dont tous les éléments diagonaux sont
positifs.

Ce théorème est la base de la méthode de Cholesky

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 31/39


VI) Factorisation de Cholesky

Ecrivons l’équation A = LLt de manière détaillée :


 
l11 · · · l1j ··· l1n
.. . .. ..
. ..
 

 . . 

 .. .. 
 ljj . . 
..
 
..
.
 
 0 . 
lnn

..
   
l11 a11 · · · . ··· ··· 
 .. . .
.. .. ..
 
 . . 0   
   . . . 
 li1 · · · lii   
 ..
   ··· ··· aij 
..   
 . ··· ··· .   
ln1 · · · ··· ··· lnn ··· ··· ··· ···

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 32/39


VI) Factorisation de Cholesky
Ecrivons l’équation A = LLt de manière détaillée :

l11 = a11
j
X j−1
X
pour j < i, aij = lik ljk = lij ljj + lik ljk , d’où
k=1 k=1

j−1
!
X
lij = aij − lik ljk /ljj
k=1

i
X i−1
X
aii = lik lik = lii2 + lik lik , d’où
k=1 k=1

i−1
X
lii = (aii − lik lik )1/2 .
k=1

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 33/39


VI) Factorisation de Cholesky (Algorithme)
L(1,1)=sqrt(A(1,1)) Calcul de complexité
pour i=2 à n faire additions : n3 /6
L(i,1)=A(i,1)/L(1,1)
fpour i multiplications : n3 /6
pour j=2 à n faire
S=0 divisions : n2 /2
pour k=1 à j-1 faire
S=S+L(j,k)*L(j,k) racines : n
fpour k
L(j,j)=sqrt(A(j,j)-s) total : n3 /3
pour i=j+1 à n faire
S=0
pour k=1 à j-1 faire
S=S+L(i,k)*L(j,k)
fpour k
L(i,j)=(A(i,j)-s)/L(j,j)
fpour i
fpour j
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 34/39
VI) Factorisation de Cholesky

Exemple
Lt
}| z
 {
l11 l21 l31
 0 l22 l32 
0 0 l33
   
l11 0 0 2 −1 0
 l21 l22 0   −1 2 −1 
l31 l32 l33 0 −1 2
| {z } | {z }
L A

2 = 2 =⇒ l

l11 11 = 2

l11 l21 = −1 =⇒ l21 = −1/l11 = − 2/2
l11 l31 = 0 =⇒ l31 = 0

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 35/39


VI) Factorisation de Cholesky

Exemple
Lt
z √ √}| {
2 − 2/2 0
 0 l22 l32 
0 0 l33
 √   
√ 2 0 0 2 −1 0
 − 2/2 l22 0   −1 2 −1 
0 l32 l33 0 −1 2
| {z } | {z }
L A

2 = 2 =⇒ l
√ √
1/2 + l22 22 = 3/ 2
√ √
l22 l32 = −1 =⇒ l32 = −1/l22 = − 2/ 3

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 35/39


VI) Factorisation de Cholesky

Exemple
Lt
z √ √ }| {
− 2/2
2 √ √ √ √ 0
 0 3/ 2 − 2/ 3 
0 0 l33
 √   
√ 2 √ √0 0 2 −1 0
 − 2/2
√3/√2 0
  −1 2 −1 
0 − 2/ 3 l33 0 −1 2
| {z } | {z }
L A

2 = 2 =⇒ l

2/3 + l33 33 = 2/ 3

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 35/39


VI) Factorisation de Cholesky

Exemple
Lt
z √
 √ }| {
− 2/2
2 √ √ √ √ 0
 0 3/ 2 − 2/√3 
0 0 2 3
 √   
√ 2 √ √0 0 2 −1 0
 − 2/2
√3/√2 √0
  −1 2 −1 
0 − 2/ 3 2 3 0 −1 2
| {z } | {z }
L A

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 35/39


VII) Problèmes mal conditionnés
Définition
On dira qu’un problème est mal conditionné si une petite
perturbation sur les données engendre une variation importante
du résultat.
On considère l’exemple célèbre suivant :
   
10 7 8 7 32
 7 5 6 5
 et b =  23  .
  
AX = B avec A =   8 6 10 9   33 
7 5 9 10 31
Le déterminant de la matrice A est égal à 1 et par conséquent A
est une matrice inversible et le système ci-dessus admet une
solution et une seule :  
1
 1 
x =  1 .

1
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 36/39
VII) Problèmes mal conditionnés

Introduisons une perturbation du second membre et cherchons la


solution du nouveau système. Prenons
 
32, 01
 22, 99 
b0 = 
 33, 01  .

30, 99

La solution exacte du système Ax 0 = b 0 est alors :


 
1.82
 −0.36 
x0 = 
 1.35  .

0.79

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 37/39


VII) Problèmes mal conditionnés
Reprenons le second membre initial et introduisons cette fois une
perturbation sur la matrice A. Prenons
 
10 7 8.1 7.2
 7.08 5.04 6 5 
A0 =  8
.
5.98 9.89 9 
6.99 4.99 9 9.98
La solution du système linéaire A0 x 00 = b est alors :
 
−81
 137 
x 00 = 
 −34  .

22
On remarque que de petites perturbations sur les données
engendrent une grande variation sur le résultat final, même si
celui-ci est calculé de manière exacte. On dit dans ce cas que le
problème est mal conditionné.
A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 38/39
VII) Problèmes mal conditionnés

Si les données du problème sont soit mesurées, soit le fruit d’un


calcul sur machine, les erreurs de mesures ou d’arrondis peuvent
avoir des conséquences non négligeables sur les résultats et cela
même si les calculs sont par la suite, effectués de manière exacte.
On définit le nombre de conditionnement cond(A) par :

max{|λi |, λi ∈ Sp(A)}
cond(A) =
min{|λi |, λi ∈ Sp(A)}

où Sp(A) est le spectre de A (l’ensemble des valeurs propres de la


matrice A).
si cond(A)>>>1 le problème est mal conditionné
si cond(A)>1 le problème est bien conditionné.
Dans l’exemple précédent le conditionnement de la matrice A est
2984.092701675329.

A. Ezziani S4–Méthodes Numériques LF MASS 2019-2020 39/39

Vous aimerez peut-être aussi