Vous êtes sur la page 1sur 46

Cours L2 Résolution numérique des systèmes

d’équations linéaires et non linéaires

Roland Masson

2019-2020
Chapitre III: Factorisation LU
Objectifs

Soit A ∈ Mn (R) une matrice inversible. On cherche à construire


une factorisation LU de A définie par les matrices triangulaires
inférieure L ∈ Mn (R) et supérieure U ∈ Mn (R) ainsi que, dans
le cas avec pivotage, des permutations P et Q telles que
PAQ = LU.

On pourra ensuite résoudre un système linéaire Ax = b en


appliquant l’algorithme de descente suivi de l’algorithme de
remontée.

Ce type de résolution des sytèmes linéaires est appelée


méthode directe
Chapitre III: Factorisation LU
Section 1: Factorisation LU sans pivotage
Lemmes préliminaires

Soit A ∈ Mn (R), A = (ai,j )i,j=1,··· ,n . On note


 
Lignei (A) = ai,1 , · · · ai,j , · · · , ai,n

et  
a1,j
 .. 
 . 
Colj (A) =  ai,j 
 
 . 
 .. 
an,j
Lemmes préliminaires

Soient A, B ∈ Mn (R), A = (ai,j )i,j=1,··· ,n , B = (bi,j )i,j=1,··· ,n , on a


n
X
Lignei (AB) = ai,p Lignep (B),
p=1

et n
X
Colj (AB) = bp,j Colp (A).
p=1

C’est une conséquence directe du produit matriciel


n
X
(AB)i,j = ai,p bp,j
p=1
Lemmes préliminaires

Lemme 1: Soient `i,k ∈ R, i = k + 1, · · · , n et la matrice de


Mn (R) de type
1 0 ... ... ... 0
 
.
 0 1
 ... . . . . . . .. 
 .
.

(k)
 . 0 1 ... ... 0 
L± = 

.. 

 0 0 ±`k+1,k 1 0 . 

 0 0 .. 
. 0 1 0 
0 0 ±`n,k . . . 0 1
alors
(k) (k)
(L+ )−1 = L− .
(k)
Rq: par la suite on notera L(k) = L+ .
Preuve du Lemme 1

1 0 ... ... ... 0


 
.

 0 1 ... . . . . . . .. 
 .. 
(k)
 . 0 1 ... ... 0  (k) (k)
L± = ..  et soit C = L+ L−

0 0 ±`k+1,k 1 0 . 


 .. 
 0 0 . 0 1 0 
0 0 ±`n,k ... 0 1
n
X (k)
Pour j 6= k: (Col)j (C ) = Ip,j Colp (L+ ) = Colj (I )
p=1
n
X
(k)
Pour j= k: (Col)k (C ) = Colk (L+ ) + −`p,j Colp (I ) = Colk (I )
p=k+1
Donc C = I .
Lemmes préliminaires

Lemme 2: Soient L(1) , · · · , L(n−1) des matrices de Mn (R) du type


précédent et
L = L(1) · · · L(k) · · · L(n−1) ,
alors  
1 0 ... ... ... 0
.. 
`2,1 1 0 ... ... . 


 .. . . 
 . . 1 0 ... 0 
L=
 
.. .. .. 
 . . `k+1,k 1 0 . 
 .. .. .. 
. . . `k+2,k+1 1 0 
 

..
`n,1 . `n,k `n,k+1 `n,n−1 1
Attention: cela ne marche pas dans le sens L(n−1) · · · L(k) · · · L(1)
Preuve du Lemme 2

Soit pour k = 1, · · · , n − 1 la matrice


 
1 0 ... ... ... 0
. 
. . . .. 

 `2,1 1 0 ...
 ..
 
.. 
 . . 1 0 ... 0 
M (k) = .
 
.. . 
 .. . `k+1,k 1 0 .. 
 
 . .. ..
 ..

 . . 0 1 0  
..
`n,1 . `n,k 0 0 1

On va montrer que M (k+1) = M (k) L(k+1) .


Preuve du Lemme 2 suite

Soit pour k = 1, · · · , n − 1 la matrice


  
1 0 ... ... ... 0 1 0 ... ... ... 0
.  . 
. . . ..  . . . .. 

 `2,1 1 0 ...  0 1 0 ...
 .. ..
  
..  .. 
 . . 1 0 ... 0   . . 1 0 ... 0 
M (k+1) =  .
  
.. ..  .. .. .. 
 .. . `k+1,k 1 0 .   . . 0 1 0 . 
  
 . .. .. .. .. ..
 ..
 
 . . 0 1 0  
 . . . `k+2,k+1 1 0  
.. ..
`n,1 . `n,k 0 0 1 0 . 0 `n,k+1 0 1
n
X
(k+1) (k+1)
Au vu de Colj (M )= Lp,j Colp (M (k) ), seule la colonne
p=1
k + 1 est modifiée et égale à
n
X
Colk+1 (M (k+1) ) = Colk+1 (I ) + `p,k+1 Colp (I ) = Colk+1 (L(k+1) )
p=k+2
Lemmes préliminaires

Corollaire: Soient L(1) , · · · , L(n−1) des matrices de Mn (R) du type


précédent et  −1
L = L(n−1) · · · L(k) · · · L(1) ,
alors
 
1 0 ... ... ... 0
.. 
 −`2,1 1 0 ... ... . 

 . .
 .. ..

1 0 ... 0 
L =  ..
 
.. .. 
 .
 . . −`k+1,k 1 0 . 
 . .
.. .
..

 . −`k+2,k+1 1 0 

..
−`n,1 . −`n,k −`n,k+1 −`n,n−1 1
Factorisation LU sans pivotage pour A ∈ M3 (R) inversible

Initialisation: A(1) = A
(1)
Etape 1: on suppose que a1,1 6= 0 (premier pivot)

   (1) (1) (1)  


(1) (1) (1)

1 0 0 a1,1 a1,2 a1,3 a1,1 a1,2 a1,3
 `2,1 1 0   a(1) a(1) a(1)
 (2) (2) 
 =  0 a2,2 a2,3 
 
2,1 2,2 2,3
`3,1 0 1 (1) (1) (1) (2) (2)
| {z } | a3,1 a{z
3,2 a3,3
} |
0 a3,2 a3,3
{z }
L (1)
A(1) A(2)

(2) (1) (1) (1) (1)


a2,1 = `2,1 a1,1 + a2,1 = 0 ⇐⇒ `2,1 = −a2,1 /a1,1
(2) (1) (1) (1) (1)
a3,1 = `3,1 a1,1 + a3,1 = 0 ⇐⇒ `3,1 = −a3,1 /a1,1
(1) (1)
(2) (1) (1) ai,1 a1,j (1)
ai,j = `i,1 a1,j + ai,j = − (1) + ai,j pour tout i, j = 2, 3
a1,1
Factorisation LU sans pivotage pour A ∈ M3 (R) inversible

(2)
Etape 2: on suppose que a2,2 6= 0 (deuxième pivot)

   (1) (1) (1)  


(1) (1) (1)

1 0 0 a1,1 a1,2 a1,3 a1,1 a1,2 a1,3
 0 1 0  (2) (2) (2) (2) 
 0 a2,2 a2,3  =  0 a2,2 a2,3 
 
0 `3,2 1 (2) (2) (3)
| {z } | 0 a{z 3,2 a3,3
} |
0 0 a3,3
{z }
L(2)
A(2) A(3) =U

(3) (2) (2) (2) (2)


a3,2 = `3,2 a2,2 + a3,2 = 0 ⇐⇒ `3,2 = −a3,2 /a2,2
(2) (2)
(3) (2) (2) a3,2 a2,3 (2)
a3,3 = `3,2 a2,3 + a3,3 = − (2) + a3,3
a2,2
Factorisation LU sans pivotage pour A ∈ M3 (R) inversible

Bilan:
U = A(3)
(1) (2)
L(2) L(1) A = U ⇐⇒ A = (L(2) L(1) )−1 U = (L− L− ) U
| {z }
L
avec
1 0 0
 
(1)
 a2,1 
(1) (2)

 (1) 1 0 
L= L− L− =  a1,1


 (1) (2) 
 a3,1 a3,2 
(1) (2) 1
a1,1 a2,2
Généralisation: Factorisation LU sans pivotage
A ∈ Mn (R) inversible
(k)
Etape k: on suppose que ak,k 6= 0 (k ieme pivot)

  (1) (1)

1 0 ... ...
... 0 a ... ... ... ... a1,n
 ..  1,1 (2) (2) 
 0 1 ... . . . . . . .  0
  a2,2 ... ... ... a2,n 
..  ..
 
 (k) (k) 
(k+1)  . 0 1 ... ... 0   . 0 ak,k . . . . . . ak,n
  
A = ..  0 (k) (k)

 0 0 `k+1,k 1 0 .   ... ak+1,k . . . . . . ak+1,n 

  . .. .. .. .. 
..  .
1 0  . . . . .
 
 0 0 . 0 
(k) (k)
0 0 `n,k ... 0 1 0 ... an,k . . . . . . an,n
| {z }| {z }
L(k) A(k)

(k)
ai,k
`i,k = − (k)
, i = k + 1, · · · , n.
ak,k
Généralisation: Factorisation LU sans pivotage
A ∈ Mn (R) inversible

 
(1) (1)
a1,1 . . . . . . ... ... a1,n
 (2) (2) 
 0 a2,2 . . . ... ... a2,n 
 .. (k) (k) (k)

 . 0 ak,k ak,k+1 ... ak,n 
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,n
avec
(k) (k)
(k+1) (k) ai,k ak,j
ai,j = ai,j − (k)
, i, j = k + 1, · · · , n
ak,k
Généralisation: Factorisation LU sans pivotage
A ∈ Mn (R) inversible

U = An = L(n−1) · · · L(k) · · · L(1) A


 −1
(n−1) (k) (1)
⇒A= L ···L ···L U
| {z }
L

avec
 
(1) (1)
a1,1 . . . . . . ... ... a1,n
 (2) (2) 
 0 a2,2 . . . ... ... a2,n 
 .. (k) (k) (k) 

. 0 ak,k ak,k+1 . . . ak,n 

U = A(n) =

(k+1) (k+1) 
 0 . . . 0 ak+1,k+1 . . . ak+1,n 
.. .. .. .. .. 
 
. . . . . 


(n)
0 ... 0 0 0 an,n
Généralisation: Factorisation LU sans pivotage
A ∈ Mn (R) inversible

 −1
(n−1) (k) (1) (1) (k) (n−1)
L= L ···L ···L = L− · · · L− · · · L−

1 0 ... ... ... 0


 
 a(1) .. 
 2,1 1 0 ... ... . 
 (1) 
 a1,1 
 
 .. .. 
 .
 . 1 0 ... 0  
(k)
 ..

.. ak+1,k .. 

 .
L= . (k)
ak,k
1 0 . 

 
 (k+1) 
 .
 .. .. .. ak+2,k+1 
 . . (k+1)
1 0  

 (1) ak+1,k+1 

(k) (k+1) (n−1)
 a
 n,1 .. an,k an,k+1 an,n−1 
. 1

(1) (k) (k+1) (n−1)
a1,1 ak,k ak+1,k+1 an−1,n−1
Algorithme: Factorisation LU sans pivotage de
A ∈ Mn (R) inversible

Initialisation: A(1) = A, L = I
For k = 1, · · · , n − 1 (boucle sur les pivots ak,k
(k)
supposés non nuls)
For i = k + 1, · · · , n
(k)
ai,k
`i,k = (k)
ak,k
For j = k + 1, · · · , n
(k+1) (k) (k)
ai,j = ai,j − `i,k ak,j
End For
End For
End For
U = A(n)
Algorithme: Factorisation LU sans pivotage de
A ∈ Mn (R) inversible

Initialisation: U = A, L = I
For k = 1, · · · , n − 1 (boucle sur les pivots Uk,k supposés non nuls)
For i = k + 1, · · · , n
Ui,k
`i,k =
Uk,k
For j = k + 1, · · · , n
Ui,j ← Ui,j − `i,k Uk,j
End For
End For
End For
U ← triu(U)
Algorithme: Factorisation LU sans pivotage avec stockage
dans A

For k = 1, · · · , n − 1 (boucle sur les pivots Ak,k supposés non nuls)


For i = k + 1, · · · , n
Ai,k
Ai,k ←
Ak,k
For j = k + 1, · · · , n
Ai,j ← Ai,j − Ai,k Ak,j
End For
End For
End For
U = partie supérieure de A
L − I = partie inférieure stricte de A
Existence et unicité de la factorisation A = LU sans
pivotage

Proposition:
Soit A ∈ Mn (R), on suppose que les sous matrices diagonales
de dimension k
a1,1 · · · a1,k
 

B (k) =  ... · · · ... 


ak,1 · · · ak,k
sont inversibles pour tous k = 1, · · · n.
Alors la factorisation A = LU avec Li,i = 1, i = 1, · · · , n existe
et est unique.
Existence et unicité de la factorisation A = LU sans
pivotage (preuve)

Existence (par récurrence): si la factorisation LU de A jusqu’à


l’étape k − 1 existe, alors on a
det(B (k) ) = Πkp=1 ap,p
(p)
6= 0.
(1)
Comme a1,1 = a1,1 6= 0, la factorisation existe jusqu’à l’étape 1.

Si on suppose qu’elle existe jusqu’à l’étape k − 1 (i.e. les pivots


(p)
ap,p sont non nuls pour p = 1, · · · , k − 1), alors la relation
(k)
précédente montre que le pivot ak,k est non nul et donc la
factorisation LU existe jusqu’à l’étape k.

Ceci montre par récurrence que la factorisation LU existe


jusqu’à l’étape n − 1.
Existence et unicité de la factorisation A = LU sans
pivotage (preuve)

Unicité: A = L1 U1 = L2 U2 implique L−1 −1


2 L1 = U2 U1 .

Comme L−1 2 L1 est une matrice triangulaire inférieure de


diagonale identité et que U2 U1−1 est une matrice triangulaire
supérieure, on a

L−1 −1
2 L1 = U2 U1 = I ⇒ L2 = L1 et U2 = U1 .
Existence et unicité de la factorisation A = LU sans
pivotage
Corollaire: soit A ∈ Mn (R) SDP, alors elle admet une unique
factorisation LU sans pivotage.

Preuve: Montrons que B (k) est SDP et donc inversible. Comme A


(k) k
ceci implique que B est symétrique. Soit y ∈ R
est symétrique

y1
 .. 
 . 
 y 
 
et x =  k  ∈ Rn , alors comme A est SDP on a
 0 
 . 
 .. 
0
hB (k) y, yi = hAx, xi ≥ 0
et hB (k) y, yi = 0 ⇒ hAx, xi = 0 ⇒ x = 0 ⇒ y = 0.
Résolution de Ax = b ⇐⇒ LUx = b

Descente: Ly = b
For i = 1, · · · , n (dans cet ordre)
Xi−1
yi = bi − Li,j yj
j=1
End For

Remontée: Ux = y
For i = n, · · · , 1 (dans cet ordre)
n
1  X 
xi = yi − Ui,j xj
Ui,i j=i+1
End For
Complexité de l’algorithme

On compte le nombre d’additions, soustractions et de multiplications


et de divisions (opérations flottantes)
Factorisation: 2/3n3 + O(n2 )
Descente remontée: 2n2 + O(n)
Conservation de la largeur de bande

Définition: la lageur de bande d’une matrice A ∈ Mn (R)est


q= max |j − i|
{i,j=1,··· ,n tels que Ai,j 6=0}

Propriété: la factorisation A = LU sans pivotage conserve la


largeur de bande q pour U et L au sens où les largeurs de bande de
L et U sont inférieures ou égales à q.

Preuve: On montre par récurrence que la largeur de bande est


inférieure ou égale à q pour toutes les matrices A(k) , k = 1, · · · , n et
L(k) , k = 1, · · · , n − 1.
La propriété est vraie pour A(1) = A, et elle se conserve à chaque
étape de la factorisation pour L(k) et pour A(k+1) .
Algorithme: Factorisation LU sans pivotage pour une
matrice A ∈ Mn (R) inversible de largeur de bande q.
Initialisation: U = A, L = I
For k = 1, · · · , n − 1 (boucle sur les pivots Uk,k supposés non nuls)
For i = k + 1, · · · , min(k + q, n)
Ui,k
`i,k =
Uk,k
For j = k + 1, · · · , min(k + q, n)
Ui,j ← Ui,j − `i,k Uk,j
End For
End For
End For
U ← triu(U)
Complexité: : pour q fixé indépendant de n:
Factorisation: 2nq 2 + O(nq)
Résolution de LUx = b dans le cas d’une largeur de bande
q de la matrice A
Descente: Ly = b
For i = 1, · · · , n (dans cet ordre)
Xi−1
yi = bi − Li,j yj
j=max(i−q,1)
End For

Remontée: Ux = y
For i = n, · · · , 1 (dans cet ordre)
Pmin(i+q,n)
yi − i+1 Ui,j xj
xi =
Ui,i
End For

Complexité: pour q fixé indépendant de n:


Descente remontée: 4nq + O(n)
Chapitre III: Factorisation LU
Section 2: Factorisation LU avec pivotage
Objectifs

Le pivotage a pour but d’éviter les pivots nuls


Il sert également à stabiliser la factorisation en cas de petits
pivots en choisissant le plus grand des pivots possibles à chaque
étape k
Le pivotage implique la transposition de lignes et/ou de
colonnes de la matrice A(k) à chaque étape k de la factorisation
 (1) (1)

a1,1 ... ... ... ... a1,n
 (2) (2) 
 0 a2,2 ... ... ... a2,n 
..
 
 (k) (k) 
. 0 ak,k . . . . . . ak,n
A(k)
 
= (k) (k)


 0 ... ak+1,k . . . . . . ak+1,n 

 .. .. .. .. .. 
. . . . .
 
 
(k) (k)
0 ... an,k . . . . . . an,n

Ces transpositions ne changent pas la structure des matrices A(k)


Permutations

Définition: Une permutation est une bijection de {1, · · · , n} dans


{1, · · · , n}
 
Représentation: P = P(1), · · · , P(n)

Action de P sur les vecteurs x ∈ Rn : x ∈ Rn → Px ∈ Rn

(Px)i = xP(i) pour tout i = 1, · · · , n.


Permutations

Action de P sur les matrices A ∈ Mn (R):

(PA)x = P(Ax) pour tout x ∈ Rn , ce qui donne

(PA)i,j = AP(i),j i, j = 1, · · · , n
i.e. on permute les lignes de A.

(AP)x = A(Px) pour tout x ∈ Rn , ce qui donne


(AP)i,j = Ai,P(j) i, j = 1, · · · , n
i.e. on permute les colonnes de A.
Permutations: exemple

 
n = 3, P = 2, 3, 1 .
   
x1 x2
x =  x2  ⇒ Px =  x3 
x3 x1
 
a1,1 a1,2 a1,3
A =  a2,1 a2,2 a2,3 
a3,1 a3,2 a3,3
   
a2,1 a2,2 a2,3 a1,2 a1,3 a1,1
⇒ PA =  a3,1 a3,2 a3,3  AP =  a2,2 a2,3 a2,1 
a1,1 a1,2 a1,3 a3,2 a3,3 a3,1
Transpositions

Définition: la transposition τ = (i1 , i2 ) est la permutation telle que


τ (i1 ) = i2 , τ (i2 ) = i1 , τ (i) = i ∀ i 6= i1 , i2 .

On a
τ2 = I,
donc
τ −1 = τ.
 
Exemple: n = 3. La permutation P = 2, 1, 3 est la transposition
(1, 2)
Factorisation avec pivotage des colonnes AP = LU

A chaque étape k = 1, · · · , n − 1 de la factorisation:

(k)
soient jk = argmaxj=k,··· ,n |ak,j | (choix du pivot) et τ (k) = (k, jk )

transposition des colonnes: A(k+1/2) = A(k) τ (k)


A(k+1) = L(k) A(k+1/2) = L(k) A(k) τ (k) avec
(k+1/2)
ai,k
`i,k = − (k+1/2)
, i = k + 1, · · · , n.
ak,k
Factorisation avec pivotage des colonnes AP = LU

On obtient donc

A(n) = U = L(n−1) A(n−1) τ (n−1) = L(n−1) L(n−2) A(n−2) τ (n−2) τ (n−1)


= |L(n−1){z
· · · L(1)} |{z}
A(1) τ| (1) · ·{z
· τ (n−1)}
L−1 A P

d’où AP = LU. On note Q = P −1 = τ (n−1) · · · τ (1) .


Algorithme avec pivotage des colonnes AP = LU et avec stockage de L (sans la
diagonale) et de U dans la matrice A. On calcule Q = P −1 .

Initialisation: Q = (1, · · · , n)
For k = 1, · · · , n − 1 (boucle sur les pivots)
jk = argmaxj=k,··· ,n |Ak,j | (choix du pivot), transposition: τ = (k, jk )
A ← Aτ = transposition des colonnes k et jk
Q ← τ Q mise à jour de Q i.e. (Q(k) ← Q(jk ) et Q(jk ) ← Q(k))
For i = k + 1, · · · , n
Ai,k
Ai,k ←
Ak,k
For j = k + 1, · · · , n
Ai,j ← Ai,j − Ai,k Ak,j
End For
End For
End For
L est la partie triangulaire inférieure stricte de A plus la diagonale unité.
U est la partie triangulaire supérieure de A (avec la diagonale).
Q = P −1 .
Ax = b ⇐⇒ AP(Qx) = LUy = b avec Qx = y, version
avec stockage dans A

Descente: Lz = b
For i = 1, · · · , n (dans cet ordre)
i−1
X
zi = bi − Ai,j zj
j=1
End For
Remontée: Uy = z
For i = n, · · · , 1 (dans cet ordre)
n
1  X 
yi = zi − Ai,j yj
Ai,i j=i+1
End For

Inversion de Qx = y: xQ(i) = yi pour i = 1, · · · , n


Factorisation avec pivotage des lignes PA = LU

A chaque étape k = 1, · · · , n − 1 de la factorisation:

(k)
soient ik = argmaxi=k,··· ,n |ai,k | (choix du pivot) et τ (k) = (k, ik )

transposition des lignes: A(k+1/2) = τ (k) A(k)


A(k+1) = L(k) A(k+1/2) = L(k) τ (k) A(k) avec
(k+1/2)
ai,k
`i,k = − (k+1/2)
, i = k + 1, · · · , n.
ak,k
Factorisation avec pivotage des lignes PA = LU

On obtient donc

A(n) = U = L(n−1) τ (n−1) L(n−2) τ (n−2) · · · τ (k+1) L(k) τ (k) · · · τ (2) L(1) τ (1) A

qui s’écrit aussi


 
U =L(n−1) τ (n−1) L(n−2) τ (n−1)
  
· · · τ (n−1) · · · τ (2) L(1) τ (2) · · · τ (n−1) τ (n−1) · · · τ (1) A

d’où
   
L = τ (n−1) · · · τ (2) (L(1) )−1 τ (2) · · · τ (n−1) · · · τ (n−1) (L(n−2) )−1 τ (n−1) (L(n−1) )−1

et
P = τ (n−1) · · · τ (2) τ (1)
Algorithme avec pivotage des lignes PA = LU

Initialisation: U = A, L = I , P = (1, · · · , n)
For k = 1, · · · , n − 1 (boucle sur les pivots)
ik = argmaxi=k,··· ,n |Ui,k | (choix du pivot) transposition: τ = (k, ik )
U ← τ U permutation des lignes de U
L ← τ Lτ permutation des lignes de L hors diagonale
P ← τ P mise à jour de la permutation P
For i = k + 1, · · · , n
Ui,k
Li,k =
Uk,k
For j = k + 1, · · · , n
Ui,k Uk,j
Ui,j ← Ui,j −
Uk,k
End For
End For
End For
U ← triu(U)
Algorithme avec pivotage des lignes PA = LU et avec stockage de L
(sans la diagonale) et de U dans la matrice A.

Initialisation: P = (1, · · · , n)
For k = 1, · · · , n − 1 (boucle sur les pivots)
ik = argmaxi=k,··· ,n |Ai,k | (choix du pivot) transposition: τ = (k, ik )
A ← τ A permutation des lignes k et ik
P ← τ P mise à jour de la permutation
For i = k + 1, · · · , n
Ai,k
Ai,k ←
Ak,k
For j = k + 1, · · · , n
Ai,j ← Ai,j − Ai,k Ak,j
End For
End For
End For

L est la partie triangulaire inférieure stricte de A plus la diagonale unité.


U est la partie triangulaire supérieure de A (avec la diagonale).
Ax = b ⇐⇒ PAx = LUx = Pb, version avec stockage
dans A

Descente: Ly = Pb
For i = 1, · · · , n (dans cet ordre)
Xi−1
yi = bP(i) − Ai,j yj
j=1
End For

Remontée: Ux = y
For i = n, · · · , 1 (dans cet ordre)
n
1  X 
xi = yi − Ai,j xj
Ai,i j=i+1
End For

Vous aimerez peut-être aussi