• 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

[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

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´