Académique Documents
Professionnel Documents
Culture Documents
Méthodes directeslinéaires
1 Notations et Rappels
Nous nous plaçons dans le corps IK, en général IR ou IC.
1
4 il existe B ∈ Mm (IK) telle que AB = I ,
5 il existe B ∈ Mm (IK) telle que BA = I
2
symétrique dénie positive, lorsque IK = IR, si A est symétrique et si pour
tout vecteur v de IKm \{0}, v T Av > 0.
hermitienne positive, lorsque IK = IC, si A est hermitienne et si pour tout
vecteur v de IKm , v T Av ≥ 0,
hermitienne dénie positive, lorsque IK = IC, si A est hermitienne et si
pour tout vecteur v de IKm \{0}, v T Av > 0.
triangulaire inférieure si Aij = 0 pour tout (i, j) tel que i < j .
triangulaire supérieure si Aij = 0 pour tout (i, j) tel que i > j .
3
Considérons que notre ordinateur calcule à 1 Gops (c'est-à-dire 1 milliard
d'opérations à la seconde, ce qui est déjà très bien). Considérons le cas très
petit d'une matrice 50 × 50. Le temps de calcul serait, en années :
51!
≥ 4.91049
109 60 60 24 365
Il s'agit bien d'un petit cas.
On appelle matrice pleine une matrice dont le nombre d'éléments nécessai-
rement nuls n'est pas important. A contrario, on appelle matrice creuse, une
matrice dont le nombre d'éléments nécessairement nuls est grand (exemple :
les matrices tridiagonales ).
Un des points essentiels dans l'ecacité des méthodes envisagées concerne la
taille des systèmes à résoudre.
Entre 1980 et 2000, la taille de la mémoire des ordinateurs a augmenté de
façon drastique. La taille des systèmes à résoudre sur ordinateurs a donc
également augmenté, selon l'ordre de grandeur suivant :
1980 : matrice "pleine" N = 102
matrice"creuse" N = 106
2000 : matrice "pleine" N = 106
matrice "creuse" N = 108
Le développement des méthodes de résolution de systèmes linéaires est lié à
l'évolution des machines informatiques.
Un grand nombre de recherches sont d'ailleurs en cours pour proter au
mieux de l'architecture des ordinateurs (méthode de décomposition en sous
domaines pour proter des architectures parallèles par exemple).
4
liorer. Par contre on a l'assurance de terminer.
Les méthodes itératives : On construit une suite qui tend vers la solu-
tion. Si on n'est pas satisfait du résultat, on peut continuer. Cette fois
la qualité de la solution est primordiale.
Exemple :
On a alors :
b4
x4 =
a4,4
b3 − a3,4 x4
x3 =
a3,3
b2 − a2,3 x3 − a2,4 x4
x2 =
a2,2
b1 − a1,2 x2 − a1,3 x3 − a1,4 x4
x1 =
a1,1
5
n
X
bi − ai,j xj
pour i = n − 1, · · · , 1
j=i+1
xi =
ai,i
Exemple :
a1,1 0 0 0 x1 b1
a2,1 a2,2 0 0
x2
=
b2
a3,1 a3,2 a3,3 0 x3 b3
a4,1 a4,2 a4,3 a4,4 x4 b4
On a alors :
b1
x1 =
a1,1
b2 − a2,1 x1
x2 =
a2,2
b3 − a3,1 x1 − a3,2 x2
x3 =
a3,3
b4 − a4,1 x1 − a4,2 x2 − a4,3 x3
x4 =
a4,4
D'une manière générale, on peut trouver toutes les valeurs de xi par la mé-
thode itérative suivante (substitution avant) :
b1
x1 =
a1,1
i−1
X
bi − ai,j xj
pour i = 2, · · · , n
j=1
xi =
ai,i
6
triangulaire, inférieure ou supérieur, et en suite calculer les solutions en uti-
lisant une substitution avant ou arrière.
x1 + 2x2 + 2x3 = 2 L1
x2 − 4x3 = −3 L2 ← L2 − L1
− x2 + 2x3 = 2 L3 ← L3 − 3L1
7
x1 = 2 − 2x2 − 2x3 = 2 + 2 − 1 = 3
x1 + 2x2 + 2x3 = 2 L1 1 2 2 x1 2
=
x1 + 3x2 − 2x3 = −1 L2 1 3 −2 x2
−1
3x1 + 5x2 + 8x3 = 8 L3 3 5 8 x3 8
x1 + 2x2 + 2x3 = 2 L1 1 2 2 x1 2
=
x2 − 4x3 = −3 L2 ← L2 − L1 0 1 −4 x2
−3
− x2 + 2x3 = 2 L3 ← L3 − 3L1 0 −1 2
x3 2
x1 + 2x2 + 2x3 = 2 L1 1 2 2 x1 2
x2 − 4x3 = −3 L2 0 1 4 x2 −3
− 2x3 = −1 L3 ← L3 + L2 0 0 −2 −1
x3
a1,1 a1,2 · · · a1,n b1
a2,1
a2,1 a2,2 · · · a2,n b2 L2 ← L2 − ∗ L1
a1,1
.. .. .. .. .. ..
. . . . . .
ak,1
ak,1 ak,2 · · · ak,n bk Lk ← Lk − ∗ L1
a1,1
.. .. .. .. .. ..
. . . . . .
an,1
an,1 an,2 · · · an,n bn Ln ← Ln − an,1
∗ L1
8
done
(1) (1) (1) (1)
a1,1 a1,2 · · · a1,n b1
(1) (1) (1)
0 a2,2 · · · a2,n b2
.. .. .. .. ..
. . . . .
(1) (1) (1)
0 ak,2 · · · ak,n bk
.. .. .. .. ..
. . . . .
(1)
0 an,2 · · · a(1) (1)
n,n bn
avec
∀ j = 1, · · · , n a1,j = a1,j et b1 = b1
(1) (1)
ak,1 ak,1
∗ a1,j et bk = bk −
(1) (1)
∀ k, j = 2, · · · , n ak,j = ak,j − ∗ b1
a1,1 a1,1
9
de sorte que le système devient :
Une fois que le système matrice a été mis sous forme triangulaire supérieur
on n'a plus qu'à résoudre un système triangulaire par la méthode de susbs-
titution arrière.
10
P ermuter la ligne k avec la ligne m
P ermuter bk avec bm
F in Si
F in Si
P our i = k + 1 jusqu0 à n
P our j = k + 1 jusqu0 à n
ai,k
ai,j = ai,j − ak,j
pivot
F in P our
ai,k
bi = bi − bk
pivot
F in P our
F in P our
Si an,n 6= 0 alors
bn
xn =
an,n
P our i = n − 1 jusqu0 à 1
n
X
bi − ai,j xj
j=i+1
xi =
ai,i
F in P our
Sinon FIN ( matrice pas inversible)
F in Si
11
Exemple : Considérons le système suivant :
(
10−4 x1 + x2 = 1
x1 + x2 = 2
2 − 104
par conséquent x2 = = 1 ( exacte !), mais pour x1 nous obtenons
1 − 104
1−1
x1 = =0.
10−4
(
x1 + x2 = 2
10−4 x1 + x2 = 1
(
x1 + x2 = 2
(1 − 10−4 )x2 = 1 − 10−4
2 − 1.000
par conséquent x2 = 1.000 et x1 = = 1.
1
Les deux valeurs numériques sont correctes.
12
2.1.4 Méthode de Gauss pivot partiel
L'idée est de ne pas se contenter d'un pivot qui soit diérent de zéro (
a11 6= 0), mais d'échanger les équations du système an que a11 soit le
plus grand élément en valeur absolue de la première colonne de A. La même
stratégie est répétée pour les sous-systèmes apparaissant dans l'élimination
de Gauss.
l'algorithme de Gauss pivot partiel :
P our k = 1 jusqu' à n − 1
13
P our i = n − 1 jusqu0 à 1
n
X
bi − ai,j xj
j=i+1
xi =
ai,i
Sinon F IN ( matrice pas inversible )
P our k = 1 jusqu' à n − 1
14
P our j = k + 1 jusqu0 à n
ai,k
ai,j ← ai,j − ak,j
pivot
F in P our
ai,k
bi ← bi − bk
pivot
F in P our
F in Si
F in P our
Si an,n 6= 0 alors
Réordonner les inconnues
bn
xn =
an,n
P our i = n − 1 jusqu0 à 1
n
X
bi − ai,j xj
j=i+1
xi =
ai,i
F in P our
Sinon F IN ( matrice pas inversible )
F in Si
15
a1,1 · · · a1,n 1 ··· 0
.. ... .. .. . . ..
. . . . .
(A|In ) =
an,1 · · · an,n 0 ··· 1
Exemple :
Soit la matrice
3 2 −1
A = 1 −1 1
2 −4 5
3 2 −1 1 0 0 L1
1 −1 1 0 1 0
L2
2 −4 5 0 0 1 L3
2 −1
3 1 0 0 L1
5 4 1 1
0
− − 1 0 L2 ← L2 −
L1
3 3 3 3
16 17 2 2
0 − − 0 1 L3 ← L3 − L1
3 3 3 3
16
2 −1
3 1 0 0
5 4 1 L1
0 − − L2
1 0
3 3 3 16 −3
7 2 16
L3 ← L3 + L2
0 0 − 1 3 5
5 5 5
3 3 6
3 0 0 3
5 5 5 L1 ← L1 + 2 L2
5 4 1
5
0 − − 1 0
L2
3 3 3
7 2 16
L
0 0 − 1 3
5 5 5
3 18 3
3 0 0 − 3
5 4 7 7 7 L1 ← L1 − L3
1
0 −
7
3 3 − 1 0
L2
3
7 2 16
L
0 0 − 1 3
5 5 5
3 18 3
30 0 − L1
5 7 7 7
5 85 20
L ← L − 20 L
0 − 0
3 − − 2 2 3
7 21 21 21
7 2 16 L
0 0 − 1 3
5 5 5
1 6 1 1
− L1 ← L1
1 0 0 7 7 7 3
3 17 4 3
0 1 0 − L2 ← − L2
0 0 1 7 7 7 5
2 16 5 5
− L3 ← L3
7 7 7 7
17
P our j = 1 jusqu'à n
Si i = j P oser ci,j = 1
Sinon P oser ci,j = 0
F in Si
F in P our
F in P our
P our i = 1 jusqu'à n
Si ai,i = 0 alors
Si P our m = i + 1 jusqu'à n tous les am,i = 0 Fin (matrice pas
inversible)
Sinon
P ermuter am,k et ai,k pour k = i jusqu'à à n
P ermuter entre cm,k et ci,k pour k = 1 jusqu'à à n
F in Si
F in Si
P our j = 1 jusqu'à n
Si i 6= j alors
aj,i
T ←
ai,i
P our k = 1 jusqu'à n
aj,k ← aj,k − T ai,k
cj,k ← cj,k − T ci,k
F in P our
F in Si
F in P our
F in P our
ci,j
ci,j ← P our i = 1 jusqu'à n et j = 1 jusqu'à n (éléments de la matrice
ai,i
inverse)
18
2.1.7 Décomposition L U
A = LU
19
a1,1 · · · · · · a1,p
2,1 · · · · · · a1,p
a
.. ..
. .
ap,1 · · · · · · ap,p
! ! ! !
Ap A0p Lp 0 Up Up0 Lp Up Lp Up0
A = LU = = =
A00p A000
p L00p L000
p 0 Up000 L00p Up L00p Up0 + L000 000
p Up
=⇒ Ap = Lp Up
! !
L0 0 U0 y
A=
xt 1 0 z
20
où x, y ∈ IRn−1 et z ∈ IR, ou de manière équivalente
L0 y = (a1,n , · · · , an−1,n )t
t
U 0 x = (an,1 , · · · , an,n−1 )t
xt y + z = an,n
ce qui implique L = L0 et U = U 0 .
21
Pour Calculer L et U facilement on se sert de la méthode du pivot de Gauss.
Exemple : Soit A ∈ M3 (IR) :
1 2 1
A= 4 3 1
2 2 3
1 2 1
4 3 1
2 2 3
première étape :
1 2 1 L1
0 −5 −3 L2 ← L2 − 4L1
0 −2 1 L3 ← L3 − 2L1
1 2 1 L1
4 −5 −3 L2 ← L2 − 4L1
2 −2 1 L3 ← L3 − 2L1
deuxième étape :
1 2 1 L1
4 −5 −3 L2 ← L2
11 2
2 0 L3 ← L3 − L2
5 5
22
Idée : Au lieu de garder le 0 dans la nouvelle matrice , on conserve dans
cette case le coecient par lequel on a multiplié L2 .
1 2 1 L1
4 −5 −3 L2 ← L2
2 11 2
2 L3 ← L3 − L2
5 5 5
On en déduit L et U
1 0 0
L= 4 1 0
2
2 1
5
1 2 1
0 −5 −3
U =
11
0 0
5
23
P our i = k + 1, · · · , n
P our j = 1, · · · , k
ai,j = 0
F in P our
F in P our
P our i = k + 1, · · · , n
P our j = k + 1, · · · , n
aij = ai,j − li,k ak,j
F in P our
F in P our
F in P our
P our i = 1, · · · , n − 1
li,n = 0
F in P our
ln,n = 1
Une fois qu'on possède la décomposition LU , on obtient facilement le déter-
minant de A : det(A) = det(L)det(U ) = det(U )
Avantage de la méthode LU : on calcule L et U une seule fois.
Nous allons donner une variante de la méthode de Gauss dans le cas où A est
une matrice symétrique réelle dénie positive. Nous allons bien sûr exploiter
la structure particulière de A. Dans ce cas là la décomposition LU de A
donne : A = LU . Soit D la diagonale de U de sorte que A = LDV où
V = D−1 U et les coecients diagonaux de L et V sont égaux à 1. Comme
A est symétrique A = At = V t DLt . L'unicité de la décomposition LU
implique que V t = L et DLt = U . Finalement , on obtient A = LDLt .
24
Comme A est dénie positive la diagonale de D est strictement positive et
on peut poser D = ∆2 en imposant que la diagonale de ∆ soit strictement
positive. On obtient alors A = BB t avec B = L∆ triangulaire inférieure.
Résumons ceci :
l1,1 0 · · · · · · · · · 0
l2,1 l2,2 0 ··· ··· 0
.. .. ... ... .. ..
. . . .
L= ...
l
k,1 lk,2 · · · lk,k 0
. .. .. .. ... ..
.
. . . . .
ln,1 ln,2 · · · · · · · · · ln,n
25
La relation précédente donne :
2 √
j = 1 : a1,1 = l1,1 =⇒ l1,1 = a1,1
a1,2
j = 2 : a1,2 = l1,1 l2,1 =⇒ l2,1 =
l1,1
..
.
a1,n
j = n : a1,n = l1,1 ln,1 =⇒ ln,1 =
l1,1
i i−1
2 2 2
X X
j=i: ai,i = li,k = li,i + li,k
k=1 k=1
connu
| {z }
d'où v
u
u i−1
X
2
li,i = ta
i,i − li,k
k=1
i−1
X
ai,i+1 − li,k li+1,k
k=1
j =i+1: li+1,i =
li,i
..
.
i−1
X
ai,n − li,k ln,k
k=1
j=n: ln,i =
li,i
L'algorithme de Cholesky
√
l1,1 = a1,1
P our i = 2, · · · , n
ai,1
li,1 =
l1,1
F in P our
P our k = 2, · · · , n
26
v
u
u k−1
2
X
lk,k = tak,k − lk,j
u
j=1
P our i = k + 1, · · · , n
k−1
X
ai,k − li,j lk,j
j=1
li,k =
lk,k
F in P our
F in P our
Exemple :
La matrice
1 1 1 1
1 5 5 5
A=
1 5 14 14
1 5 14 15
est égale au produit de la matrice triangulaire L et de sa transposée Lt :
1 1 1 1 1 0 0 0 1 1 1 1
1 5 5 5 1 2 0 0 0 2 2 2
A=
=
1 5 14 14 1 2 3 0 0 0 3 3
1 5 14 15 1 2 3 1 0 0 0 1
Avec
1 0 0 0
1 2 0 0
L=
1 2 3 0
1 2 3 1
On résout le système (1) pour trouver le vecteur y , puis le système (2) pour
trouver le vecteur x. La résolution est facilitée par la forme triangulaire des
27
matrices.
La méthode de Cholesky permet aussi de calculer le déterminant de A, qui
est égale au carré du produit des éléments diagonaux de la matrice L, puisque
28