Chapitre 3 : M´ethodes de r´esolution de syst`emes lin´eaires
Parmi les erreurs intervenant dans la r´esolution d’un syst`eme lin´eaire :
les erreurs d’arrondis r´esultant du codage des valeurs r´eelles sur un nombre fini de bits (32, 64 bits,...),
les erreurs r´esultant de l’´eventuelle m´ethode d’approximation.
Une fa¸con de minimiser ces erreurs est d’´etudier le conditionnement de la matrice du syst`eme.3.1
El´´ ements d’analyse matricielle SoitV un espace vectoriel surRn.
On dit qu’une applicationk · kdeV dansR+est unenormesurV si :
1 ∀v∈Rn,kvk= 0 ⇒ v= 0,
2 ∀v∈Rn,∀α∈R,kαvk=|α|kvk(propri´et´e d’homog´en´eit´e),
3 ∀v,w∈Rn,kv+wk ≤ kvk+kwk(in´egalit´e triangulaire).
D´efinition 1(Norme vectorielle)
Les normesl∞,l1etl2d’un vecteurxxx= (x1,x2,· · ·,xn)t deRnsont d´efinies respective- ment par :
kxxxk∞= max
1≤i≤n|xi|, kxxxk1=
n
X
i=1
|xi|, et kxxxk2= ( n
X
i=1
xi2 )12
.
La normel2est appel´eenorme euclidiennedu vecteurxxx.
D´efinition 2
Pour tout vecteurxxxdeRn, on akxxxk∞≤ kxxxk2≤√ nkxxxk∞. Th´eor`eme 1
Soientxxx= (x1,x2,· · ·,xn)t etyyy = (y1,y2,· · ·,yn)t deux vecteurs deRn. Les distances l2etl∞entrexxxetyyysont d´efinies par
kxxx−yyyk2= ( n
X
i=1
(xi−yi)2 )1
2
, et kxxxk∞= max
1≤i≤n|xi−yi|.
D´efinition 3
Exemple :La solution du syst`eme lin´eaire
3.3330x1 + 15920x2 − 10.333x3 = 15913 2.2220x1 + 16.710x2 + 9.6120x3 = 28.544 1.5611x1 + 5.1791x2 + 1.6852x3 = 8.4254
est (x1,x2,x3)t = (1.0000,1.0000,1.0000). Supposons maintenant que la pr´ecision est de 5 chiffres apr`es la virgule. Alors l’algorithme de Gauss conduit `a la solution
˜ x
xx= (˜x1,˜x2,˜x3)t= (1.2001,0.99991,0.92538)t.
L’erreur comise peut ˆetre mesur´ee en calculant les normesl2etl∞dexxx−˜xxx: kxxx−xx˜xk2= 0.21356 et kxxx−x˜xxk∞= 0.2001.
On dit qu’une applicationk · kdeMn(R) dansR+est unenorme matricielle si :
1 ∀A∈ Mn(R),kAk= 0 ⇒ A= 0,
2 ∀A∈ Mn(R),∀α∈R,kαAk=|α|kAk(propri´et´e d’homog´en´eit´e),
3 ∀A,B∈ Mn(R),kA+Bk ≤ kAk+kBk(in´egalit´e triangulaire),
4 ∀A,B∈ Mn(R), kABk ≤ kAkkBk.
D´efinition 4(Norme matricielle)
Remarque : La notation des normes vectorielle et matricielle est la mˆeme.
Sik · kest une norme vectorielle surRn, alorskAk= max
kxk=1kAxxxkest une norme matricielle. Cette norme est appel´eenorme subordonn´ee`a la norme vectoriellek · k.
Soientxxxun vecteur non nul deRnetAune matricen×n. AlorskAxxxk ≤ kAk kxxxk.
Proposition 1
On d´efinit les normesl∞,l1etl2d’une matriceAsurMn(R) respectivement par : kAk∞= max
kxxxk∞=1kAxxxk∞, kAk1= max
kxxxk1=1kAxxxk1 et kAk2= max
kxxxk2=1kAxxxk2. D´efinition 5
SoitA= (aij) une matrice deMn(R). Alors,
kAk∞= max
1≤i≤n n
X
j=1
|aij|, kAk1= max
1≤j≤n n
X
i=1
|aij|.
Proposition 2
3.2 Conditionnement d’une matrice Le syst`eme lin´eaireAxxx=bbbavecA=
1 2 1.0001 2
etbbb=
3 3.0001
a pour solution x
xx= (1,1)t. Notons ˜xxx= (3,0)t une approximation de la solution de ce syst`eme. Alors levecteur r´esidu rrrest :
rrr=bbb−A˜xxx= 0
−0.0002
, et donckrrrk∞= 0.0002. Orkxxx−xxxk˜ ∞= 2 ! !
Soit le syst`eme lin´eaireAxxx=bbbavecAune matrice inversible. Soient ˜xxxune approximation dexxxetrrr=b−A˜xxxle vecteur r´esidu. Alors pour n’importe quelle norme,
kx−xx˜xk ≤ krrrk kA−1k, et sixxx6= 0,bbb6= 0,
kxxx−xx˜xk
kxxxk ≤ kAk kA−1kkrrrk kbbbk. Proposition 3
Remarque :Les quantit´eskA−1ketkAk kA−1kdonnent une indication sur le lien entre le vecteur r´esidu et la pr´ecision de l’approximation.
Pour une matriceA∈ Mn(R) inversible on d´efinit lenombre de conditionnementdeA par rapport `a la normek · kpar
cond(A) =kAk kA−1k.
D´efinition 6
Ainsi,kxxx−xxxk ≤˜ cond(A)kkrrrk
kAk et kxxx−xxxk˜
kxxxk ≤cond(A)kkrrrk
kbbbk.Remarques.
1 Le conditionnement exprime la sensibilit´e de la solution aux perturbations des donn´ees.
2 cond(A)≥1. Une matrice est ditemal conditionn´eesicond(A)1.
3 Il faut calculerA−1pour calculercond(A) ce qui est g´en´eralement trop coˆuteux : on calcule alors une approximation decond(A).
Exemple de R.S. Wilson :
On s’int´eresse `a la sensibilit´e du syst`eme lin´eaireAx=b`a des perturbations du second membreb
ou de la matriceAavecA=
10 7 8 7
7 5 6 5
8 6 10 9
7 5 9 10
etb=
32 23 33 31
.
La solution de ce syst`eme est :x= (1,1,1,1).
Perturbons le second membre de sorte quebp= (32.01,22.99,33.01,30.99). La solution de Axp=bpestxp= (1.82,−0.36,1.35,0.79).
L’erreur relative surxest kx−xpk2 kxk2
= 0.8198 alors que l’erreur relative surbest k∆bk2
kbk2
= 3.3119 10−4.
Soit une amplification de la perturbation de l’ordre de 2460 !
Exemple de matrice mal conditionn´ee : la matrice de Hilbert
Hn=
1 12 13 . . . 1n
1 2
1 3
1
4 . . . n+11
1 3
1 4
1
4 . . . n+11
.. .
.. .
..
. . . .
.. .
1 n
1 n+1
1
n+2 . . . 2n−11
n 2 3 4 5 6
cond(Hn) 1.93 101 5.24 102 1.55 104 4.77 105 1.49 107
3.3 M´ethodes directes de r´esolution de syst`emes lin´eaires
On cherche `a r´esoudre des syst`emes lin´eaires de la formeAx=bavecAune matrice carr´ee d’ordren.
Quelques rappels
Produit matriciel. SoientA= (aij)1≤i≤n,1≤j≤metB= (bij)1≤i≤m,1≤j≤pdeux matrices de taillen×metm×presp. Alors les coefficients de la matriceC=ABsont :
Cij=Pm k=1aikbkj.
Une matrice carr´ee est ditetriangulaire sup´erieurelorsqueaij= 0 d`es quei>j et est dite triangulaire inf´erieurelorsqueaij= 0 d`es quei<j.
Une matrice carr´eeAd’ordrenest diteinversible ou r´eguli`ere ou non singuli`eres’il existe une matriceBd’ordrentelle queAB=BA=In,In´etant la matrice identit´e d’ordren. On note alorsB,A−1. Une matrice qui n’est pas inversible est ditesinguli`ere.
Le d´eterminant d’une matriceA= (aij) d’ordrenest :det(A) =Pn
j=1(−1)1+ja1jdetA1javec A1jles sous-matrices d’ordren.
SoientAune matrice r´eelle d’ordrenetb∈Rn. On consid`ere le syst`eme lin´eaire
Ax=b. (S)
Le syst`eme (S) admet une unique solution si et seulement si l’une des propositions ci- dessous est vraie.
1 La matriceAest inversible.
2 rg(A) =n.
3 Le syst`eme homog`eneAx= 0 admet uniquement la solution nulle.
Ces trois propositions sont ´equivalentes.
Proposition 4(Existence et unicit´e.)
La solution du syst`eme (S) est donn´ee par la formule de Cramer : xj= Dj
det(A), j= 1, . . . ,n.
Djest le d´eterminant de la matrice obtenue en rempla¸cant laj-`eme colonne deAparb.
Proposition 5
On peut montrer que le nombre de multiplications requises pour calculer le d´eterminant d’une matrice carr´een×nest sup´erieur `an!.
Sin= 50, r´esoudre un syst`eme lin´eairen×npar la m´ethode de Cramer sur un ordinateur 1 gigaflop n´ecessite environ4,8.1049ann´ees ! !
Objectif: R´eduire le temps de calcul pour r´esoudre un syst`eme lin´eaire en utilisant des m´ethodes de r´esolution exacte ou approch´ee.
m´ethodes directesde r´esolution d’un syst`eme lin´eaire sont des m´ethodes num´eriques permettant d’obtenir une solution en un nombre fini d’it´erations.
m´ethodes it´erativesde r´esolution d’un syst`eme lin´eaire sont des m´ethodes num´eriques permettant d’obtenir une solution en un nombre infini (th´eoriquement) d’it´erations.
3.3.1 M´ethode de Gauss
Objectif :Transformer le syst`emeAx=ben un syst`eme ´equivalent de la formeUx=ˆb, o`uUest une matrice triangulaire sup´erieure etˆbest le second membre convenablement modifi´e.
On appelleop´erations ´el´ementairessur les lignes d’une matrice les trois op´erations sui- vantes :
i) ´Echangede deux lignes (Li ↔Lj).
ii) Multiplicationd’une ligne par une constante non nulle (Li←λLi).
iii) Substitution : remplacer une ligne par elle-mˆeme plus un multiple d’une autre ligne (Li←Li+λLj).
D´efinition 7
On rappelle que deux syst`emes sont dits´equivalentss’ils ont le mˆeme ensemble de solutions.
On ne modifie pas l’ensemble des solutions d’un syst`eme lin´eaire en appliquant une ou plusieurs op´erations ´el´ementaires `a sa matrice augment´ee.
Th´eor`eme 2
SoitA= (aij).
It´erationk: en permutant ´eventuellement deux lignes du syst`eme (S), on peut supposer queakk6= 0.
On transforme toutes les lignesLi aveci>k de la fa¸con suivante : Li←Li− aik
akk
Lk. Le termeakk est appel´epivot.
M´ethode(du pivot de Gauss)
Remarques
L’algorithme de Gauss ci-dessus ne prend pas en compte la recherche d’un pivot non nul ! Dans la pratique il faut rajouter cette ´etape.
Le nombre d’op´erations n´ecessaires `a la r´esolution d’un syst`eme de taillen
I pour l’algorithme de Gauss `a l’it´erationkest :
F (n−k) + (n−k)(n−k+ 1) = (n−k)(n−k+ 2) multiplications/divisions, F (n−k)(n−k+ 1) additions/soustractions,
le nombre total d’op´erations pour l’algorithme de Gauss est donc 16(2n3+ 3n2−5n) +13(n3−n).
I pour l’algorithme de substitution r´etrograde :
F 1
2(n2+n) multiplications/divisions, F 1
2(n2−n) additions/soustractions.
Le nombre total d’op´erations est : (n33+n2−n3) + (n33+n22 −5n6), c’est-`a-dire de l’ordre de O(23n3).
Une matrice est unematrice ´el´ementairesi elle r´esulte d’une unique op´eration ´el´ementaire effectu´ee sur les lignes de la matrice identit´e.
D´efinition 8
Il existe donc trois types de matrices ´el´ementaires, correspondant aux trois types d’op´erations
´el´ementaires :
Ea: multiplier une (ou plusieurs) ligne(s) de la matrice identit´e para6= 0, Ee: permuter deux lignes de la matrice identit´e,
Ej(c) : ajoutercfois laj-`eme ligne de la matrice identit´e `a une (ou plusieurs) de ses autres lignes.
SoientAune matrice quelconque etEune matrice ´el´ementaire r´esultant d’une certaine op´eration ´el´ementaire effectu´ee sur une lignes de la matrice identit´e. Alors, la matriceEA est le r´esultat de la mˆeme op´eration ´el´ementaire appliqu´ee aux lignes deA.
Proposition 6
Toute matrice ´el´ementaire est inversible, et on a : [Ea]−1=E1
a
,a6= 0, [eE]−1=Ee,
[E(c)]−1=E(−c).
Proposition 7
Soienta(k)ij les coefficients de la matrice obtenue `a lak-`eme it´eration de l’algorithme de Gauss appliqu´ee `aAd’ordren.
Supposons que tous les pivotsa(k)kk sont non nuls.
La matrice ´el´ementaire,E(k), correspondant `a lak-`eme it´eration de l’algorithme de Gauss vaut :
E(k)=
1 0
0 . .. 0
..
. 1 0
..
. −mk+1k 1 0
.. .
..
. . .. 0
0 −mnk 1
, avecmik= a(k)ik a(k)kk
, pouri=k+ 1, . . . ,n.
La matrice triangulaire sup´erieure,U, obtenue apr`es (au plus)nit´erations de l’algorithme de Gauss s’´ecrit :
U=E(n−1)E(n−2). . .E(1)A.
3.3.2 D´ecomposition (factorisation)LU
Principe :Ecrire la matrice´ Acomme produit d’une matriceLtriangulaire inf´erieure et d’une matriceUtriangulaire sup´erieure.
L=
l11 0 0 . . . 0
l21 l22 0 . . . 0
l31 l32 l33 . . . 0
.. .
.. .
..
. . .. ... ln1 ln2 ln3 . . . lnn
U=
u11 u12 u13 . . . u1n
0 u22 u23 . . . u2n
0 0 u23 . . . u2n
.. .
.. .
..
. . .. ...
0 0 0 . . . unn
Ainsi la solution du syst`emeAx=best obtenue en r´esolvant successivement les deux syst`emes triangulairesLy=betUx=y.
Les matricesLetUainsi d´efinies ne sont pas uniques. En effet, il y an2coefficients dans la matriceAetn2+ncoefficients inconnus dans les matricesLetU.
On impose par exemple aux coefficients diagonaux deLd’ˆetre ´egaux `a 1.
Appliquons l’algorithme de Gauss `a la matriceAet supposons que tous les pivotsa(k)kk sont non nuls. L’´ecriture matricielle de l’algorithme de Gauss,U=E(n−1)E(n−2). . .E(1)A, conduit `a
A= [E(n−1)E(n−2). . .E(1)]−1U.
En posantL= [E(n−1)E(n−2). . .E(1)]−1= (E(1))−1. . .(E(n−1))−1, on obtient bien la d´ecompositionA=LU. On v´erifie que :
la matriceUest triangulaire sup´erieure,
la matriceLainsi d´efinie est une matrice triangulaire inf´erieure, lak-i`eme colonne deLest lak-i`eme colonne de (E(k))−1vaut
(0 . . .1mk+1k . . .mn k)t.
Quelles sont les matrices ne n´ecessitant pas de permutation de lignes dans l’algorithme de Gauss ?
SoitA= (aij)1≤i,j≤nune matrice carr´een×n. La matriceAest dite `adiagonale stric- tement dominantesi|aii|>Pn
j=1,j6=1|aij|,i= 1, . . . ,n.
D´efinition 9
Une matrice `a diagonale strictement dominante est inversible.
Proposition 8
On appellesous-matrices diagonales d’ordrek les matrices d´efinies pourk = 1,· · ·,n par
∆k=
a11 . . . a1k
..
. . .. . . .
ak1 . . . akk
. D´efinition 10
SoitA= (ai,j)1≤i,j≤n une matrice d’ordren. Si les sous-matrices diagonales d’ordrek deAsont inversibles, alors la d´ecompositionLUdeAexiste et est unique.
Th´eor`eme 3(Existence et Unicit´e de la d´ecomposition)
Que faire si un pivot est nul ?
On ´echange deux lignes de la matriceA, autrement dit on applique une matrice de permutation `a A.
Pour toute matriceA, il existe au moins une matrice de permutationPtelle que la matrice PAadmette une d´ecompsitionLU.
Proposition 9
3.3.4 D´ecomposition de Cholesky
Principe : Pour une matriceAsym´etrique d´efinie positive faire une d´ecompositionLUo`u U=LT.
La matriceAest ditesym´etrique d´efinie positivesi elle est sym´etrique et sixAxT >0 pour tout vecteurxdeRnnon nul.
D´efinition 11
SiAest une matrice d´efinie positive alors i) Aest inversible.
ii) aii>0 pouri= 1,· · ·,n.
iii) maxi≤k,j≤n|akj| ≤max1≤i≤n|aii|.
Une matrice est d´efinie positive si et seulement si ses sous-matrices diagonales ont un d´eterminant strictement positif.
Proposition 10
LorsqueAest d´efinie il existe une matriceMinversible telle queA=MMT. IciMn’est pas unique.
Soit A ∈ Rn×n une matrice sym´etrique d´efinie positive. Alors, il existe une unique matrice triangulaire inf´erieureHdont les coefficients diagonaux sont strictement positifs
Th´eor`eme 4
Comment calcule-t-on la matriceH?
De la d´efinition du produit matriciel et du fait queLetUsont des matrices triangulaires on a
aij=
n
X
s=1
hishsj=
min(i,j)
X
s=1
hishsj.
On en d´eduit queh11=√
a11et pouri= 2, . . . ,n
hij=
aij−
j−1
X
k=1
hjkhik
/hjj, j= 1, . . . ,i−1,
hii= v u u t aii−
i−1
X
k=1
h2ik
! .
Pourquoi faire une d´ecompositionLU?
1 La d´ecompositionLUn´ecessite un nombre d’op´erations de l’ordre de n33.
2 La d´ecompositionLUpermet de calculerA−1,det(A),rg(A),Ker(A)
3 Une approximation deLet deUfournit un pr´econditionneur deA. Pourquoi faire une d´ecomposition de Cholesky ?
1 La d´ecomposition de Cholesky n´ecessite un nombre d’op´erations de l’ordre de n63, alors que la m´ethode de Gauss n´ecessite un nombre d’op´erations de l’ordre de n33.
2 La d´ecomposition de Cholesky permet de calculerA−1,det(A) de calculer le conditionnement deA, de calculer un pr´econditionneur.