• Aucun résultat trouvé

Chapitre 3 : R ´esolution des syst `emes lin ´eaires

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 3 : R ´esolution des syst `emes lin ´eaires"

Copied!
26
0
0

Texte intégral

(1)

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

1

R

3

R

2

i1 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

1

R

3

R

2

i1 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.

(2)

Syst `eme m ´ecanique x

1 2

x

2

x

3

x

4

K K

3

K

4

K

5

K

1

F

1

F

2

F

2

F

3

F

3

F

4

F

4

F

5

L

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 2

x

2

x

3

x

4

K K

3

K

4

K

5

K

1

F

1

F

2

F

2

F

3

F

3

F

4

F

4

F

5

L

Mod `ele:









(K1+K2)x1−K2x2 = K11−K22

−K2x1+ (K2+K3)x2−K3x3 = K22−K33

−K3x2+ (K3+K4)x3−K4x4 = K33−K44

−K4x3+ (K4+K5)x4 = K44+K5L−K55 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.

(3)

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 = b121x1+ℓ22x2 = b231x1+ℓ32x2+ℓ33x3 = b3

(4)

Syst `eme triangulaire inf ´erieur

11 0 0 b1

2122 0 b2313233 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/ℓ11

x2 = (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 = (biPi−1j=1ijxj)/ℓ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 = (biPnj=i+1uijxj)/uii i=n−1, . . . ,1

(5)

Analyse du co ˆut computationnel (triang. inf.)

x1 = b1/ℓ11

xi = (biPi−1j=1ijxj)/ℓ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 = (bnPn−1j=1njxj)/ℓ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 b1

a21 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

(6)

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+12n276nflops

Complexit ´e de l’ ´elimination de Gauss + Substitution : n2+23n3+12n276n=23n3+32n276nflops

(7)

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

1

M1=



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)

(8)

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





(9)

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.

(10)

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



Ln’est qu’une permutation d’une matrice triangulaire infrieure (Nous ´ecrivons Lau 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 prenonsLtel queA=LU, doncL=AU−1=P1−1M1−1P2−1M2−1P3−1M3−1 Ln’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.

(11)

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 `urk.

(2) Une multiplication `a droite par Pk, c’est- `a-dire un remplacement des co- lonnesketr, o `urk(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

(12)

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

(13)

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=21u1121=a21/u11

. . .

an1=n1u11n1=an1/u11

u22=a2221u12

u23=a2321u13

. . .

32= (a3231u12)/u22

42= (a4241u12)/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

(14)

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

T

H

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 =aijPi−1k=1hkjhki

hii end

end

Ax=b⇔HTHx=b⇔

HTy = b Hx = y

(15)

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).

Références

Documents relatifs

Lay Alg` ebre lin´ eaire, th´ eorie, exercices &amp; applica- tions chez De Boeck, exercices des chapitres 1.1 et 1.2.. Tran Van Hiep

Un peu plus subtile, ne modifie pas b, donc on peut utiliser la même décomposition pour tout vecteur b, donne A-1 et les vecteurs propres.. Gauss Jordan (pivot

En g´en´eral, celui-ci n’est pas connu avec une pr´ecision infinie car il peut y avoir des erreurs de mesures et car la pr´ecision des instruments et de l’ordinateur n’est

Donner les valeurs propres et vecteurs propres de A. On rappelle que la m´ethode QR 1.. consiste `a ´ecrire A sous la forme QR avec Q unitaire et R triangulaire sup´erieure

[r]

En principe, r´ esoudre un syst` eme lin´ eaire, c’est montrer qu’il n’a pas de solution, ou alors en exhiber une r´ esolution (en justifiant). En pratique, on applique la m´

[r]

c) Montrer que, s’il existe une norme matricielle subordonn´ ee k k telle que kBk &lt; 1, alors la m´ ethode it´ erative ci-dessus est convergente... F ) la matrice triangulaire