Chapitre 3 : R ´esolution des syst `emes lin ´eaires
Maarten Jansen
Table de mati `eres
— Introduction au calcul num ´erique
— Analyse d’erreurs
—R ´esolution des syst `emes lin ´eaires
— Interpolation
— Lissage (Curve fitting, Smoothing)
— R ´esolution num ´erique des ´equations diff ´erentielles ordinaires
— R ´esolution des ´equations non lin ´eaires
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.1
Exemple : r ´eseau ´electrique V
R
1R
3R
2i1 i2
•Probl `eme r ´eel : ´etant donn ´e ce circuit, trouver le courant passant parR1
•Loi physique: La seconde loi de Kirchhoff s’ ´enonce :
Dans un circuit ferm ´e (une maille) la somme alg ´ebrique des forces ´electromotrices et des diff ´erences de potentiel aux bornes des r ´esistances est nulle
R ´eseau ´electrique V
R
1R
3R
2i1 i2
•Mod `ele : la seconde loi de Kirchoff conduit `a un syst `eme lin ´eaire −V +R3i1+R1(i1+i2) = 0
−V +R2i2+R1(i1+i2) = 0
•Probl `eme math ´ematique: ´etant donn ´e les valeursV,Ri,i= 1, . . .3, trouver les valeursi1eti2.
Syst `eme m ´ecanique x
1 2x
2x
3x
4K K
3K
4K
5K
1F
1F
2F
2F
3F
3F
4F
4F
5L
•Probl `eme r ´eel: ´etant donn ´e ce syst `eme, trouver la position d’ ´equilibre
•Loi physique:
Un ressort exerce sur un solide une force de rappel F proportionnelle
`a son allongement(∆xi−ℓi)
Fi=Ki(∆xi−ℓi) o `uKiest le coefficient de raideur du ressort o `u ℓiest la longueur `a repos dui- `eme ressort
La forceF1exerc ´ee sur le point 1 a intensit ´eK1(x1−ℓ1), alors que la force oppos ´eeF2a intensit ´eK2(x2−x1−ℓ2), etc.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.4
Syst `eme m ´ecanique x
1 2x
2x
3x
4K K
3K
4K
5K
1F
1F
2F
2F
3F
3F
4F
4F
5L
•Mod `ele:
(K1+K2)x1−K2x2 = K1ℓ1−K2ℓ2
−K2x1+ (K2+K3)x2−K3x3 = K2ℓ2−K3ℓ3
−K3x2+ (K3+K4)x3−K4x4 = K3ℓ3−K4ℓ4
−K4x3+ (K4+K5)x4 = K4ℓ4+K5L−K5ℓ5 o `uℓiest la longueur `a repos dui- `eme ressort
•Probl `eme math ´ematique: ´etant donn ´e les valeursKi,ℓi,i= 1, . . .5, trouver les valeursx1,x2,x3, etx4.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.5
R ´esolution ´equations diff ´erentielles partielles
•Utilis ´ees en physique pour mod ´eliser plusieurs ph ´enom `enes
— la diffusion de chaleur, la propagation des ondes,.
•Parfois, leur r ´esolution est bas ´ee sur la r ´esolution de syst `emes lin ´eaires avec un nombre d’ ´equations tr `es large (jusqu’ `a105).
Syst `emes lin ´eaires
Un syst `eme lin ´eaire de N ´equations `a n inconnues est un ensemble de relations alg ´ebriques de la forme
Xn j=1
aijxj=bi i= 1, . . . , N
•aij: coefficients
•xj : inconnues
•bi: composants du 2i `eme membre
On appellesolutiontoutn-couple de valeurs[x1, x2, . . . , xn]qui satisfait lesN relations.
Forme matricielle
Il est commode d’ ´ecrire le syst `eme sous la forme matricielle Ax=b o `u
•A∈RN×nest la matrice des coefficients r ´eels,
•x∈Rn×1est le vecteur colonne inconnu
•b∈RN×1est le vecteur du second membre
Dans ce chapitre, nous traiterons des syst `emescarr ´esd’ordreN =n. Pour des syst `emesrectangulaires, voir chapitre 5 (lissage, curve fitting)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.8
Solution d’un syst `eme lin ´eaire
•La solution d’un syst `eme lin ´eaire carr ´e existe et est unique si une des conditions ´equivalentes suivantes est remplie
—Aest inversible ;
—Aest r ´eguli `ere (non singuli `ere) :det(A)6= 0
— rangrg(A) =n;
— le syst `eme homog `eneAx= 0admet seulement la solution nulle
•D’apr `es la formule de Cramer, la solution du syst `eme est xj = ∆j
det(A), j= 1, . . . , no `u∆j est le d ´eterminant de la matrice obtenue en remplac¸ant laji `eme colonne deApar le vecteurb.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.9
R ´esolution num ´erique
•Formule de Cramer
— Co ˆut inacceptable pour grandn: ordreO((n+ 1)!)d’op ´erations
— Ce co ˆut est d ˆu au calcul du d ´eterminant : l’expression th ´eorique, r ´ecursive d’un d ´eterminant prendO(n!)d’op ´erations En r ´ealit ´e, c’est le calcul d’un d ´eterminant qui se base sur la solution du syst `emeA~x=~bet pas l’inverse
•Alternatives num ´eriques
—m ´ethodes directes : fournissent la solution en un nombre fini d’ ´etapes.
—m ´ethodes it ´eratives : fournissent une approximation conver- gente ;
— matrices creuses (sparse matrices), ´equations diff ´erentielles partielles.
•Choix sur la base des consid ´erations th ´eoriques et architecturales (m ´emoire, temps d’ex ´ecution,. . . )
Syst `eme triangulaire inf ´erieur
ℓ11x1 = b1 ℓ21x1+ℓ22x2 = b2 ℓ31x1+ℓ32x2+ℓ33x3 = b3
Syst `eme triangulaire inf ´erieur
ℓ11 0 0 b1ℓ21 ℓ22 0 b2 ℓ31 ℓ32 ℓ33 b3
•Sii < j,ℓij= 0
• ∀i= 1, . . . , n:ℓii6= 0(pour queAsoit inversible)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.12
Substitution directe
x1 = b1/ℓ11x2 = (b2−ℓ21x1)/ℓ22
x3 = (b3−ℓ31x1−ℓ32x2)/ℓ33
Pour le cas g ´en ´eral d’un syst `emeLx = b o `uL est une matrice triangulaire inf ´erieuren×n,n >2etℓii6= 0 x1 = b1/ℓ11
xi = (bi−Pi−1j=1ℓijxj)/ℓii i= 2, . . . , n
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.13
R ´esolution d’un syst `eme triangulaire sup ´erieur
u11 u12 u13 b1
0 u22 u23 b2
0 0 u33 b3
•Sii > j,uij= 0
• ∀i= 1, . . . , n:uii6= 0(pour queAsoit inversible)
Substitution r ´etrograde
Pour le cas general d’un syst `eme Ux=b, o `u U est une matrice triangulaire sup ´erieure xn = bn/unn
xi = (bi−Pnj=i+1uijxj)/uii i=n−1, . . . ,1
Analyse du co ˆut computationnel (triang. inf.)
x1 = b1/ℓ11
xi = (bi−Pi−1j=1ℓijxj)/ℓii i= 2, . . . , n
x1 = b1/ℓ11 1div
x2 = (b2−ℓ21x1)/ℓ22 1div+ 1add+ 1mul x3 = (b3−ℓ31x1−ℓ32x2)/ℓ33 1div+ 2add+ 2mul x4 = (b4−ℓ41x1−ℓ42x2−ℓ43x3)/ℓ44 1div+ 3add+ 3mul
. . .
xn = (bn−Pn−1j=1ℓnjxj)/ℓnn 1div+ (n−1)add+ (n−1)mul
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.16
Co ˆut computationnel de la substitution
En utilisant la relation suivante : Xn−1 r=1
r=n(n−1) 2
on trouve que le nombre d’op ´erations n ´ecessaires sont :
•ndivisions
•n(n−1)/2multiplications
•n(n−1)/2additions (ou soustractions).
Donc l’algorithme n ´ecessiten2op ´erations en virgule flottante (flops).
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.17
Cas g ´en ´eral : Syst `emes ´equivalents
Syst `eme non triangulaire : comment le r ´esoudre ? Si l’on tient compte que
•Deux syst `emes sont ´equivalentss’ils ont la m ˆeme solution.
•On ne change pas la solution du syst `eme quand
— on inverse deuxlignes.
— onmultiplieune ´equation par une constante.
— on ajoute `a une ´equation donn ´ee unecombinaison lin ´eairedes autres ´equations.
alors on peut
•R ´esoudre un syst `eme lin ´eaire en le remplac¸ant, `a l’aide de combinai- sons lin ´eaires des diverses ´equations, par unsyst `eme ´equivalent plus simple.
M ´ethode d’ ´elimination de Gauss
a11 a12 a13 b1a21 a22 a23 b2 a31 a32 a33 b3
=
a(1)11 a(1)12 a(1)13 b(1)1 a(1)21 a(1)22 a(1)23 b(1)2 a(1)31 a(1)32 a(1)33 b(1)3
a(1)11 a(1)12 a(1)13 b(1)1 a(1)21 −m21a(1)11 a(1)22 −m21a(1)12 a(1)23 −m21a(1)13 b(1)2 −m21b(1)1 a(1)31 −m31a(1)11 a(1)32 −m31a(1)12 a(1)33 −m31a(1)13 b(1)3 −m31b(1)1 Calcul desmultiplicateursm21etm31:
a(1)21 −m21a(1)11 = 0⇔ m21=a(1)21
a(1)11
a(1)31 −m31a(1)11 = 0⇔ m31= a(1)31
a(1)11
Hypoth `ese :a116= 0
L ´el ´ement diagonala11est dit lepivot
It ´eration(s) suivante(s)
a(2)11 a(2)12 a(2)13 b(2)1 0 a(2)22 a(2)23 b(2)2 0 a(2)32 a(2)33 b(2)3
a(2)11 a(2)12 a(2)13 b(2)1 0 a(2)22 a(2)23 b(2)2 0−m320 a(2)32 −m32a(2)22 a(2)33 −m32a(2)23 b(2)3 −m32b(2)1 a(2)32 −m32a(2)22 = 0⇔ m32= a(2)32
a(2)22
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.20
Gauss : analyse du co ˆut
L’algorithme forr= 1, . . . , n−1:
•fori=r+ 1, . . . , n:
• mir= a(r)ir
a(r)rr
•forj=r+ 1, . . . , n:
• a(r+1)ij =a(r)ij −mira(r)rj
• b(r+1)i =b(r)i −mirbr(r)
A premi `ere vue : trois boucles emboˆıt ´ees⇒ co ˆut=O(n×n×n) flops
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.21
Analyse plus pr ´ecise (1)
En utilisant
n−1X
r=1
r= n(n−1) 2
Xn−1 r=1
r2=n(n−1)(2n−1)
6 on arrive `a :
•Divisions Une dans chaque boucle au niveau interm ´ediare•(n− 1) + (n−2) +. . .+ 1 =n(n−1)/2
•Multiplications
— Une dans chaque boucle au niveau inf ´erieur•
— Il y an−rboucles internes dans une boucle interm ´ediaire•
— Il s’ajoute une multiplication dans la boucle interm ´ediare•
— C¸ a faitn−r+ 1dans une boucle interm ´ediaire•
— Chaque boucle interm ´ediare est parcourue n−r fois, donc le nombre total s’ ´el `eve `a
(n−1)n+ (n−2)(n−1) +. . .+ 3·2 + 2·1 = Xn−1
r=1
r(r+ 1)
=
n−1X
r=1
r+ Xn−1
r=1
r2= n(n−1)
2 +n(n−1)(2n−1)
6 = n3
3 −n 3
Analyse plus pr ´ecise (2)
•Additions/soustractions: analogue
•Au total
2
3n3+12n2−76nflops
•Complexit ´e de l’ ´elimination de Gauss + Substitution : n2+23n3+12n2−76n=23n3+32n2−76nflops
La factorisation LU
•Il est souvent int ´eressant de factoriser la matrice non singuli `ere A sous la forme d’un produit de deux matricesA=LU
—Lest une matrice triangulaire inf ´erieure avec des 1 sur la diago- nale.
—U est une matrice triangulaire sup ´erieure.
•Les multiplicateurs de Gauss peuvent ˆetre utilis ´es pour la factorisa- tion.
•Il existe d’autres m ´ethodes (ditesdirectesoucompactes) pour ef- fectuer la d ´ecomposition LU
— Doolitle
— Crout
— Cholesky
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.24
De l’ ´elimination selon Gauss `a une factorisation
A(1)=
a(1)11 a(1)12 a(1)13 a(1)21 a(1)22 a(1)23 a(1)31 a(1)32 a(1)33
A(2)=
a(1)11 a(1)12 a(1)13 0 a(1)22 −m21a(1)12 a(1)23 −m21a(1)13 0 a(1)32 −m31a(1)12 a(1)33 −m31a(1)13
A(2)=
1 0 0
−m21 1 0
−m31 0 1
·
a(1)11 a(1)12 a(1)13 a(1)21 a(1)22 a(1)23 a(1)31 a(1)32 a(1)33
=M1A(1)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.25
Propri ´et ´e de M
1M1=
1 0 0
−m21 1 0
−m31 0 1
Alors :M1−1
1 0 0 m21 1 0 m31 0 1
= 2I−M1
Interpr ´etation
L’op ´eration repr ´esent ´ee par la matriceM1consiste de
— Soustrairem21fois la premi `ere ligne de la seconde
— Soustrairem31fois la premi `ere ligne de la troisi `eme
Evidemment, l’op ´eration inverse annihile cette op ´eration, ceci implique
— Ajouterm21fois la premi `ere ligne `a la seconde
— Ajouterm31fois la premi `ere ligne `a la troisi `eme On peut ´egalement v ´erifier queM1M1−1=I=M1−1M1
La seconde it ´eration
A(2)=
a(2)11 a(2)12 a(2)13 0 a(2)22 a(2)23 0 a(2)32 a(2)33
A(3)=
a(2)11 a(2)12 a(2)13 0 a(2)22 a(2)23 0 0 a(2)33 −m32a(2)23
A(3)=
1 0 0
0 1 0
0 −m32 1
·
a(2)11 a(2)12 a(2)13 0 a(2)22 a(2)23 0 a(2)32 a(2)33
=M2A(2)
A(3)=U =M2A(2)=M2M1A(1)
La factorisation
En g ´en ´erale, une matriceA∈Rn×npeut ˆetre r ´eduite `a une matrice triangulaire sup ´erieure par U = (Mn−1Mn−2. . . M1)A
Les matricesMk, k= 1, . . . , n−1ont la forme d’une matrice identit ´e d’ordre n
o `u la k- `eme colonne est remplac ´ee parMk(:, k) =
0...
1
−mk+1,k ...
−mn,k
Les matricesMk satisfont la propri ´et ´e Mk−1= 2In−Mk o `uInest la matrice unit ´e (matrice identit ´e) de taillen×n
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.28
Factorisation LU
Posons L= (Mn−1Mn−2. . . M1)−1=M1−1M2−1. . . Mn−1−1 On a alorsA=LU
Puisque toutes lesMk−1 sont triangulaires inf ´erieures, laLle sera aussi (voir transparent suivant)
R ´esoudreAx=b⇔LU x=bconsiste `a r ´esoudre deux syst `emes lin ´eaires triangulaires:
Ly=b U x=y
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.29
La matrice L
L=M1−1M2−1. . . Mn−1−1
Interpr ´etation (de la droite vers la gauche) :
•D’abord, appliquerMn−1−1, c. `a.d., ajoutermn,n−1fois la lignen−1 `a la lignen
•Ensuite, appliquerMn−2−1 :
— ajoutermn,n−2fois la lignen−2 `a la lignen
— ajoutermn−1,n−2fois la lignen−2 `a la lignen−1
•etc
Observation centrale : D `es qu’une ligne est modifi ´ee par addition d’une autre, cette ligne n’est plus utilis ´ee dans la modification d’une autre
Un tel argument n’est pas correct pourL−1=Mn−1Mn−2. . . M1
(L−1sera bien une matrice triangulaire inf ´erieure, mais ses ´el ´ements ne seront pas ceux deMn−1, Mn−2, . . . , M1)
La matrice L
PourL, le r ´esultat est qu’
•`a la lignense sont ajout ´ees
—mn,n−1fois la lignen−1
—mn,n−2fois la lignen−2
— etc.
•`a la ligneise sont ajout ´ees
—mi,i−1fois la lignei−1
—mi,i−2fois la lignei−2
— etc.
Cette op ´eration peut ˆetre repr ´esent ´ee par la matrice triangulaire inf ´erieur L=
1 0 0 . . . 0 0
m2,1 1 0 . . . 0 0
m3,1 m3,2 1 . . . 0 0 . . . . . . . . . . . . . . . . mn,1 mn,2 mn,3 . . . mn,n−1 1
L’ ´elimination Gauss vs. la factorisation LU
•Supposons qu’il faut r ´esoudrepsyst `emes lin ´eaires gouvern ´es par la m ˆeme matriceAmais avec diff ´erents seconds membres :
Ax(ℓ)=b(ℓ), ℓ= 1, . . . , p
•Deux alternatives
— Appliquerpfoisl’algorithme de Gauss
— Co ˆut :pO(n3+n2)
— Calculerune seule foisla factorisationLUet r ´esoudrepdoubles syst `emes triangulaires de la formeLy(ℓ)=b(ℓ) U x(ℓ)=y(ℓ)
— Co ˆut :O(n3+pn2)
— Pourn → ∞(c.- `a-d., pour ngrand), le terme n2 est n ´egligible (toujours en comparaison avecn3), donc la seconde alternative est (presque)pfois plus rapide
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.32
Multiplicateurs et pivot
n−kmultiplicateurs `a laki `eme it ´eration (k= 1, . . . , n−1)mik= a(k)ik
a(k)kk i=k+ 1, . . . , n
L’ ´el ´ement diagonala(k)kk est dit lepivot
La m ´ethode ´echoue si un des pivots est 0Dans un algorithme num ´erique, c¸a veut dire : si un des pivots estproche de 0
Notons que les pivots sont aussi les termes diagonaux de la matriceU, construite dans la factorisationLU.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.33
Pivotage = changement de pivot (Gauss)
•Changement de pivot partiel:
— si a(k)kk = 0 `a la k-i `eme ´etape, nous recherchons le plus grand terme (en valeur absolue) non nulapkdans lak-i `eme sous-colonne A(k)(k+ 1 :n, k).
— Ensuite :
— nous remplac¸ons lak-i `eme ligne par la p-i `eme dansA(k) et b(k).
•Changement de pivot total:
— si a(k)kk = 0 `a la k-i `eme ´etape, nous recherchons le plus grand terme (en valeur absolue) non nulaprdans la sous-matriceA(k)(k: n, k:n).
— Ensuite :
— nous remplac¸ons lak-i `eme ligne par la p-i `eme dansA(k) et b(k).
— nous remplac¸ons lak-i `eme colonne par lar-i `eme dansA(k).
Nota bene
•Le pivoting entraˆıne un surco ˆut d ˆu `a la recherche : si le pivoting est effectu ´e `a toutes les ´etapes avec un algo de recherche de complexit ´e O(N)(ensemble de tailleN non ordonn ´e)
— surco ˆut pivoting partiel :O(n2)(toutes les ´etapes confondues)
— surco ˆut pivoting total :O(n3)(toutes les ´etapes confondues)
•Les pivots sont les termes diagonaux de la matriceA(k)et pas de la matriceA.
•Si en effectuant le pivoting total, on ´echange lak-i `eme colonne et la r-i `eme colonne dansA(k), alors la position des variables inconnues xketxrdans la solution finale sera aussi ´echang ´ee.
Exemples de pivoting
A=
1 2 32 4 5 7 8 9
b=
116 24
A(2)=
1 20 0 −31 0 −6 −12
b(2)=
−61
−18
Pivoting partiel
1 2 3 0 −6 −12 0 0 −1
6
−18
−1
Pivoting total
1 3 2
0 −12 −6 0 −1 0
6
−18
−1
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.36
La matrice d’une permutation
Permutation de lignes A=
1 2 3 4 4 6 7 8 9 10 11 12 13 14 15 16
A(l2↔l4)=
1 2 3 4 13 14 15 16
9 10 11 12 4 6 7 8
=
1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0
1 2 3 4 4 6 7 8 9 10 11 12 13 14 15 16
Permutation de la matrice d’identit ´e Permutation de lignes et colonnes A(l2↔l4;c2↔c3)=
1 3 2 4 13 15 14 16
9 11 10 12 4 7 6 8
=
1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0
1 2 3 4 4 6 7 8 9 10 11 12 13 14 15 16
1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.37
L’effet d’un pivotage sur la matrice L
Exemple A=
1 2 3 2 4 5 7 8 9
AvecM1=
1 0 0
−2 1 0
−7 0 1
etP1=
1 0 0 0 0 1 0 1 0
on arrive `aU =P1M1A=
1 2 3 0 −6 −12 0 0 −1
maisL′= (P1M1)−1=
1 0 0 2 0 1 7 1 0
L′n’est qu’une permutation d’une matrice triangulaire infrieure (Nous ´ecrivons L′au lieu deLpour pouvoir r ´eserver la notationLpour une matrice vraiment triangulaire - voir ci-dessous)
L’effet d’un pivotage sur la matrice L (2)
Pour une matriceAde taille4×4, on a la construction compl `eteU =M3P3M2P2M1P1A Nous prenonsL′tel queA=L′U, doncL′=AU−1=P1−1M1−1P2−1M2−1P3−1M3−1 L′n’est pas triangulaire.
Remarque : Les matrices Pi sont autoinverses (“self-inverse”) ( ´echanger deux fois les m ˆemes deux lignes = identit ´e), doncPi−1=Pi
Posons P =P3P2P1 et L=P AU−1 donc P A=LU Alors La matriceLest bien triangulaire inf ´erieure D ´emonstration
L=P AU−1=P L′=P3P2P1P1−1M1−1P2−1M2−1P3−1M3−1=P3
P2(M1−1)P2M2−1 P3M3−1 En g ´en ´eral,Lest le r ´esultat final d’une r ´ecursion
L=L(n−1) o `u L(1)=M1−1 L(k)=PkL(k−1)PkMk−1
Nous d ´emontrons, par induction, que la matriceL(k)a une structure triple : 1. Elle est triangulaire inf ´erieure
2. Les ´el’ements diagonaux sont ´egaux `a 1
3. Hors de la diagonale, les ´el’ements des colonnesk+ 1, . . . , nsont nuls Ceci correspond `a la structure des matrices interm ´ediaires dans le sch ´ema de Gauss sans pivotage.
D ´etails de la d ´emonstration (pour info – hors examen)
Une ´etape de l’it ´eration comprend :
(1) Une multiplication `a gauche parPk, c’est- `a-dire un remplacement des lignes ketr, o `ur≥k.
(2) Une multiplication `a droite par Pk, c’est- `a-dire un remplacement des co- lonnesketr, o `ur≥k(toujours le m ˆemer).
(3) Une multiplication `a droite parMk−1.
En appliquant l’hypoth `ese de l’induction, on d ´eduit que les effets de ces trois sous-
´etapes se d ´ecrivent ainsi :
(1) Puisque les lignes ketrdeL(k−1)ne contiennent que des 0 et 1 dans les colonnesk, . . . , n, la matricePkL(k−1)aura la m ˆeme structure triple queL(k−1)
`a l’exception des ´el ´ements(k, r)et(r, k)qui aurant la valeur de 1, et des
´el ´ements(k, k)et(r, r)qui seront nuls.
(2) Ces exceptions sont r ´epar ´ees par le remplacement des colonnesketr. (3) PuisquePkL(k−1)Pka la m ˆeme structure queL(k−1), l’effet de la multiplication
`a droite par Mk−1 est le m ˆeme qu’en absence du pivoting : la colonnekde PkL(k−1)Pkse remplie par les ´el ´ements de la colonne deMk−1
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.40
La factorisation avec un pivoting partiel
Conclusion des pages pr ´ec ´ecentes :La factorisation prend la forme P A=LU o `u les matricesP,LetU sont construites ainsi
•U =Mn−1Pn−1. . . M1P1A
c’est- `a-dire : pivoter, ensuite annuler une colonne
•P =Pn−1. . . P2P1
c’est- `a-dire : d ´emarrer avec la matrice d’unit ´e, chaque fois appliquer les remplacements des lignes comme dans le calcul deU
Attention :Bien que les matricesPisoient autoinverses, le produit P ne l’est pas : pour l’inversion deP, l’ordre des remplacements doit
ˆetre invers ´e :P−1=P1P2·Pn−16=Pn−1. . . P2P1
•L(k)=PkL(k−1)PkMk−1
En th ´eorie :remplacer les lignesk etr, ensuite les colonnesketr pour remettre en place les ´el ´ements diagonaux, enfin remplir col.k En pratique : remplacer les lignes k et r de la sous-matrice com- pos ´ee des colonnes 1 `ak−1. De cette mani `ere on ´evite la correction des colonnes
Ceci a pour r ´esultat l’algorithme `a la page 43 des slides (en prenantQ=I)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.41
La factorisation avec un pivoting total
La factorisation prend la forme P AQ=LU o `u les matricesP,LetU sont construites ainsi
•U =Mn−1Pn−1. . .[P2M1(P1AQ1)Q2]. . . Qn−1 c’est- `a-dire : pivoter, ensuite annuler une colonne
•Q=Q1Q2. . . Qn−1,
c’est- `a-dire : d ´emarrer avec la matrice d’unit ´e, chaque fois appliquer les remplacements des colonnes
•L=P AQU−1=Pn−1n. . . P3P2(M1−1)P2−1M2−1P3−1M3−1. . .oPn−1−1Mn−1−1 Le calcul deLne d ´epend pas deQ
•P =Pn−1. . . P2P1(ne d ´epend pas deQ)
L’algorithme LU avec pivotage (code Matlab) - (0)
[n m] = size(A);
L = eye(n);
U = A;
for k = 1:n,
%%%%%%%%%%%%%%% PART 1: pivoting %%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%% PART 2: factorisation %%%%%%%%%%%%%%%%%
end
L’algorithme LU avec pivotage (code Matlab) - (2)
%%%%%%%%%%%%%%% PART 1: pivoting %%%%%%%%%%%%%%%%%%%%%%
r = k; c = k;
if (partial_pivoting == true), % look for maximum in column k [u r] = max(abs(U(k:n,k))); % r is between 1 and n-k+1
r = k-1+r; % now r is between k and n
elseif (complete_pivoting == true),
% look for maximum in submatrix
[u r] = max(abs(U(k:n,k:n))); [u c] = max(u); r = r(c);
r = k-1+r; c = k-1+c;
end
if r˜=k, % swap rows in submatrices
U([k r],1:n) = [0 1;1 0]*U([k r],1:n);
P([k r],1:n) = [0 1;1 0]*P([k r],1:n);
L([k r],1:k-1) = [0 1;1 0]*L([k r],1:k-1);
end if c˜=k,
U(1:n,[k c]) = U(1:n,[k c])*[0 1;1 0];
Q(1:n,[k c]) = Q(1:n,[k c])*[0 1;1 0];
end
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.44
L’algorithme LU avec pivotage (code Matlab) - (2)
%%%%%%%%%%%%%%% PART 2: factorisation %%%%%%%%%%%%%%%%%
% U(k,k) is the pivot
% Now, compute the multiplicators and store in L(k+1:n,k):
L(k+1:n,k) = U(k+1:n,k)/U(k,k);
% Now update right lower submatrix of U:
U(k+1:n,k) = 0;
U(k+1:n,k+1:n) = U(k+1:n,k+1:n)-L(k+1:n,k)*U(k,k+1:n));
% Note that L(k+1:n,r)*U(k,k+1:n)) is an outer vector product
% (i.e.: row vector x column vector = matrix)
% This is equivalent to the double for loop:
% for l = k+1:n,
% for m = k+1,n,
% U(l,m) = U(l,m) - L(l,k)*U(k,m);
% end
% end end
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.45
Pivot et pr ´ecision du calcul
La technique de pivoting est conseill ´ee m ˆeme en absence de pivot nuls pour les deux raisons suivantes :
1.Erreur de propagation
Un pivot tr `es petit pourrait ˆetre lacons ´equenced’une erreur d’annulation.
Ce pivot est donc sujet d’une erreur relative tr `es grande ; il faut ´eviter de l’util- ser dans ce r ˆole central.
Attention : on parle ici du conditionnement au niveau de l’ ´etape.
Dans l’ensemble de la factorisation, ceci est un souci de stabilit ´e.
2.Erreur de g ´en ´eration
Un multiplicateur obtenu avec un pivot tr `es petit peut ˆetre `al’origine des erreurs d’absorption, m ˆeme si cette petite valeur est correcte (obtenue en arithm ´etique exacte). Ce pivot, malgr ´e sa valeur correcte, peut ˆetre la source de futures erreurs.
Factorisation et d ´eterminant
•Etant donn ´ee la factorisationA=LU, o `uLest triangulaire inf ´erieure avecℓii= 1etU est triangulaire sup ´erieure
det(A) = det(L) det(U) = Yn k=1
ukk
•Noter aussi que
— la factorisationA=LUpeut ˆetre ´ecrite de la mani `ereA=LDU1 o `uDest une matrice diagonale qui contient les ´el ´ements diago- naux deU
En matlab :
D = diag(diag(U))
etU1n’a que des 1 sur la diagonale
— SiAest sym ´etrique, alorsL=U1T
— SiAest sym ´etrique, d ´efinie positive, les ´el ´ements deDsont tous positifs
Factorisation et Matlab
•L’op ´erateur Matlab\(backslash ou left division)
>> x = A\b;
calcule la solutionx, en utilisant la factorisation LU si la matriceAest une matrice g ´en ´erique carr ´ee et non triangulaire.
•L’op ´erateur Matlab
>> d = det(A);
utilise aussi la factorisation LU.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.48
M ´ethodes directes pour la factorisation
•Ils sont avantageux pour la r ´esolution de plusieurs syst `emes avec la m ˆeme matriceA
•Ils n ´ecessitent moins de r ´esultats interm ´ediaires que la m ´ethode de Gauss.
•Factorisation est formellement ´equivalent `a r ´esoudre le produit matri- cielA=LUc.- `a-d. le syst `eme non-lin ´eaire den2 ´equations etn2+n inconnues :
n+ (n−1) +. . .+ 1 =n(n+ 1)/2variablesℓiret le m ˆeme nombre de variablesurj
aij =
min(i,j)X
r=1
ℓirurj
•Il est n ´ecessaire de fixernvaleurs arbitraires :
— Les termes diagonaux deL: Doolittle (comme Gauss, mais avec moins de r ´esultats interm ´ediaires)
— Les termes diagonaux deU : Crout
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.49
La m ´ethode de Doolittle
1 0 . . . 0 0 ℓ21 1 0 0 . . . ℓ31 ℓ32 1 0 . . .
... ... ... . . . ...
ℓn1 ℓn2 . . . ℓn,n−1 1
u11 u12 . . . u1,n−1 u1n
0 u22 . . . u2,n−1 u2n
. . . 0 . . . . . . . . .
... ... ... . . . ...
0 0 . . . 0 unn
=
a11 a12 . . . a1,n−1 a1n
a21 a22 . . . a2,n−1 . . . . . . . . . . . . . . . .
... ... ... . . . ...
an1 an2 . . . an,n−1 ann
u11=a11
u12=a12
. . . u1n=a1,n
a21=ℓ21u11⇒ℓ21=a21/u11
. . .
an1=ℓn1u11⇒ℓn1=an1/u11
u22=a22−ℓ21u12
u23=a23−ℓ21u13
. . .
ℓ32= (a32−ℓ31u12)/u22
ℓ42= (a42−ℓ41u12)/u22
Algorithme de Doolittle
D’abord lak-i `eme ligne deU, puis lak-i `eme colonne deL for k=1:n
for j=k:n ukj =akj−
Xk−1 r=1
ℓkrurj
end
for i=k+1:n ℓik= 1
ukk aik− Xk−1
r=1
ℓirurk
!
end end
Si au lieu des termes diagonaux deL, les termes diagonaux deUsont choisis
Algorithme de Crout
D’abord lak-i `eme colonne deL, puis lak-i `eme ligne deU for k=1:n
for i=k:n ℓik =aik−
Xk−1 r=1
ℓirurk
end
for j=k+1:n
ukj= 1
ℓkk akj− Xk−1
r=1
ℓkrurj
!
end end
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.52
Factorisation de Cholesky
La n ´ecessit ´e de r ´esoudre d’un syst `eme lin ´eaire o `uAest une matrice sym ´etrique d ´efinie positive est souvent rencontr ´ee dans lastatistiqueet lasimulation
— R ´esolution moindres carr ´es
— D ´ecomposition matrice covariance Th ´eor `eme.
SoitA ∈ Rn×n une matrice sym ´etrique d ´efinie positive. Alors il existe une unique matrice triangulaire sup ´erieureH dont les termes diago- naux sont positifs telle queA=HTH
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.53
Factorisation de Cholesky A = H
TH
h11 0 . . . 0 0 h12 h22 0 0 . . . h13 h23 h33 0 . . .
... ... ... . . . ...
h1n h2n . . . hn−1,n hnn
h11 h12 . . . h1,n−1 h1n
0 h22 . . . h2,n−1 h2n
. . . 0 . . . . . . . . .
... ... ... . . . ...
0 0 . . . 0 hnn
=
a11 a12 . . . a1,n−1 a1n
a21 a22 . . . a2,n−1 . . . . . . . . . . . . . . . .
... ... ... . . . ...
an1 an2 . . . an,n−1 ann
h211=a11 ⇒ h11=√a11 h12h11=a12 ⇒ h12=ah12
11
. . .
h1nh11=a1n ⇒ h1n=ah1n
11
h212+h222=a22 ⇒ h22=pa22−h212 h13h12+h23h22=a23 ⇒ h23= (a22−h13h12)/h22
Formules de Cholesky
for i=1:n
hii= vu utaii−
Xi−1 k=1
h2ki
for j=i+1:n hij =aij−Pi−1k=1hkjhki
hii end
end
Ax=b⇔HTHx=b⇔
HTy = b Hx = y
Propri ´et ´es Cholesky
•Etant la matrice d ´efinie positive, les termes sous la racine sont tou- jours positives.
•Co ˆut algorithmique :O(n3/6)multiplications,O(n3/6)additions,O(n2/2) divisions etnracines carr ´ees. Au total,O(n3/3)par rapport auO(2n3/3) de la m ´ethode de Gauss.
•Algorithme stable.
•Stockage deH :n(n+ 1)/2cases m ´emoire au lieu den2pourLet U.
•A et H dans la m ˆeme location m ´emoire de A. H dans la partie triangulaire inf ´erieure et A (sym ´etrique) dans la partie triangulaire sup ´erieure.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.56
Calculer l’inverse
•En notant X l’inverse d’une matrice non singuli `ere A ∈ Rn×n, les vecteurs colonnesxideXsont les solutions densyst `emes lin ´eaires Axi = ei, i = 1, . . . , no `uei = [0,0, ...,0,1,0, ....0]T avec le 1 sur lai-i `eme position
•Co ˆut en utilisant la factorisation :O(n3) +nO(n2)
•Invertir une matrice est une op ´eration co ˆuteuse et peu stable.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 3: Syst `emes Lin ´eaires p.57
Complexit ´es
Algorithm Complexit ´e(flops)
ADiagonale n
Substitution (triangulaire) n2
M ´ethode de Gauss 2/3n3
Factorisation LU 2/3n3
(avec pivoting partiel) +n2comparaisons
Factorisation LU 2/3n3
(avec pivoting total) +n3comparaisons
Cholesky 1/3n3
(si matrice d ´efinie positive)
Syst `emes lin ´eaires et erreurs num ´eriques
•Dans l’analyse effectu ´ee jusqu’ `a pr ´esent, nous n’avons pas consid ´er ´e la pr ´esence des erreurs d’arrondi.
•La r ´esolution d’un syst `eme lin ´eaire par une m ´ethode num ´erique conduit in ´evitablement `a l’introduction, propagation et g ´en ´eration d’erreurs.
•Afin d’ ´eviter la d ´et ´erioration de la solution deux conditions doivent ˆetre assur ´ees :
1. probl `eme bien conditionn ´e
2. m ´ethodes stables (par exemple pivoting).