R´esolution d’un syst`eme lin´eaire `a matrice tridiagonale : d´ecomposition LU
Universit´e Pierre et Marie Curie Master de Sciences et Technologies Mention Math´ematiques et Applications
Master I : Informatique scientifique en C++
Travaux dirig´es I. DANAILA
extrait du livre : I. Danaila, F. Hecht, O. Pironneau,
Simulation num´erique en C++, Dunod, 2003
Les matrices tridiagonales sont tr`es faciles `a factoriser par la m´ethode de Gauss. Si le syst`eme AX =F est ´ecrit sous la forme g´en´erale (a1 =cn= 0par convention)
b1 c1 0 0 . . 0 0 0
a2 b2 c2 0 . . 0 0 0
. . . .
. . . .
0 0 0 0 . . an−1 bn−1 cn−1
0 0 0 0 . . . an bn
X1
X2
. . Xn−1
Xn
=
f1
f2
. . fn−1
fn
(1.1)
la matriceApeut se d´ecomposer sous la formeA=LU, avec les matrices
L=
b∗1 0 0 . . 0 0
a2 b∗2 0 0 . 0 0
. . . .
0 0 0 0 an−1 b∗n−1 0 0 0 0 0 . an b∗n
, U =
1 c∗1 0 . . 0 0 0 1 c∗2 0 . 0 0
. . . .
0 0 0 0 . 1 c∗n−1
0 0 0 0 . 0 1
.
En identifiant les coefficients, nous obtenons les r´ecurrences suivantes pour le calcul des coeffi- cientsb∗etc∗ :
( b∗1 =b1
c∗1 =c1/b1
( b∗k =bk−ak·c∗k−1
c∗k =ck/b∗k
k = 2. . . n. (1.2)
Remarque 1.1 Observons que la factorisation LU est possible si les coefficientsb∗ksont non- nuls, donc la matrice A doit ˆetre inversible.
Le syst`eme peut ˆetre r´esolu maintenant en deux ´etapesAX =F =⇒L U X
|{z}
Y
=F :
LY =f =⇒
( Y1 =f1/b∗1
Yk= (fk−ak·Yk−1)/b∗k, k= 2. . . n (1.3) U X =Y =⇒
( Xn =Yn
Xk =Yk−c∗k·Xk+1, k = (n−1). . .1 (1.4)
1