Académique Documents
Professionnel Documents
Culture Documents
Exercice 1 :
1. Soit A ∈ Mn (R) une matrice symétrique inversible admettant une factorisation
LU où L ∈ Mn (R) est une matrice triangulaire inférieure à diagonale unité et
U ∈ Mn (R) est une matrice triangulaire supérieure (notons que L ∈ Mn (R) et
U ∈ Mn (R) par construction). Montrer que A admet une unique factorisation
A = LDLt où L est une matrice triangulaire inférieure à diagonale unité et D
est une matrice diagonale inversible.
2. Montrer qu’une matrice A ∈ Mn (R) admet une factorisation A = LDL où L est
une matrice triangulaire inférieure à diagonale unité et D est une matrice diago-
nale dont tous les coefficients diagonaux sont strictement positifs si et seulement
si A est symétrique définie positive. Montrer que cette factorisation est unique.
3. En déduire que A admet une unique factorisation de Cholesky A = BBt où B est
une matrice triangulaire dont les coefficients diagonaux sont strictement positifs
si et seulement si A est matrice symétrique définie positive.
4. On suppose A symétrique définie positive. Décrire une méthode permettant de
calculer explicitement les coefficients de la matrice B précédente.
La matrice D est inversible. II est clair que U = DŨ où Ũ = D−1 U. Les
composantes de Ũ sont
uij
ũij = ∀(i, j) ∈ [1 : n]2 .
uii
Ù est une matrice triangulaire supérieure à diagonale unité.
Puisque par ailleurs, A = LU, on a A = LDU. Nous allons montrer que Ũ = Lt ,
ce qui montrera que A = LDL. Comme A est symétrique, on a
LU = A = At = (LDŨ)t = Ũt Dt Lt = Ũt Dt L t
| {z } | {z }
tri. inf. diag. unité tri. sup
Par unicité de la factorisation LU, on en déduit que Ũt = L. 2. On procède par
double implication :
1. Étape 1 : on montre que si A est symétrique définie positive (SDP), alors il
existe une matrice diagonale D > 0 (i.e dii > 0 pour tout i ∈ [1 : n] ) et une
matrice L triangulaire inférieure à diagonale unité telle que A = LDLt .
2. Étape 2 : On montre que s’il existe une matrice diagonale D > 0 (i.e dii > 0
pour tout i ∈ [1 : n] ) et une matrice L triangulaire inférieure à diagonale unité
telle que A = LDLt , alors A est symétrique définie positive (SDP).
Enfin, on montre que l’unicité d’une telle factorisation a postériori.
Rappel sur les matrices symétriques définies positives
Une matrice A est symétrique définie positive si
a- A est symétrique : At = A.
b- A est définie : s’il existe x ∈ Rn tel que hAx, xi = 0 alors x = 0, (h·, ·i désigne
le produit scalaire euclidien de Rn ).
c- A est positive : pour tout x ∈ Rn , hAx, xi ≥ 0.
Remarque: une matrice SDP est inversible. En effet, si A est SDP et s’il existe
x ∈ Rn tel que Ax = 0, alors hAx, xi = 0. D’après la propriété b, on en déduit
que x = 0.
Étape 1 (implication)
On montre que si A est symétrique définie positive (SDP), alors il existe une
matrice diagonale D > 0 (i.e dii > 0 pour tout i ∈ [1 : n] ) et une matrice L
triangulaire inférieure à diagonale unité telle que A = LDLt . Pour cela, on va
utiliser la proposition suivante (preuve ci-dessous) :
Proposition 0.1. Soit A une matrice symétrique définie positive. Alors tous les
mineurs principaux de A sont non nuls.
Soit A une matrice SDP. Alors, d’après la proposition précédente, ses mineurs
principaux sont non nuls, et donc A admet une décomposition LU. Par conséquent,
en utilisant la question 1 , il existe une matrice diagonale D inversible et une
matrice triangulaire inférieure à diagonale unité L telle que
A = LDLt .
Pour terminer l’étape 1 , il suffit de montrer que D > 0. Tout d’abord, puisque A
est SDP,
∀x ∈ Rn , hAx, xi > 0 ⇔ D Lt x , Lt x > 0∀x ∈ Rn .
Par ailleurs, on remarque que pour tout i ∈ [1 : n], dii = hDei , ei i. Ainsi, en choi-
−1
sissant x = (Lt ) ei dans (1) (Lt est inversible car L est une matrice triangulaire
à diagonale unité), on a donc
dii = hDei , ei i = D Lt x , Lt x > 0.
Page 2
où Ak est la sous matrice de A formée des k premières colonnes et k premières
lignes de A, B ∈ Mk,n−k (R), C ∈ Mn−k,n−k (R). Supposons que le mineur principal
d’ordre k de A soit nul. Cela signifie exactement que Ak n’est pas inversible. Donc
il existe xk ∈ Rk non nul tel que Ak xk = 0. Par conséquent, (Ak xk , xk ) = 0. On
définit maintenant x ∈ Rn par
(
xk (xk )i si i ∈ [1 : k],
x= i.e xi =
0 0 si i ∈ [k + 1 : n],
Comme, pour tout i ∈ [1 : n]dii > 0, on en déduit que yi = 0 pour tout i ∈ [1 : n].
−1
Donc y = 0 et comme = Lt est inversible, on en déduit que x = (Lt ) y = 0.
Pour terminer cette question, il reste à montrer l’unicité de la factorisation LDL .
Supposons que
A = L1 D1 (L1 )t = L2 D2 (L2 )t
avec L1 et L2 triangulaires inférieures à diagonale unité et D1 , D2 diagonales ayant
des coefficients strictement positifs. On pose U1 = D1 (L1 )t et U2 = D1 (L2 )t .
Alors U1 et U2 sont triagulaires supérieures inversibles. Donc
A = L1 U1 = L2 U2
Page 3
par unicité de la factorisation LU, on trouve que L1 = L2 et U1 = U2 . On en
déduit que D1 = D2 , ce qui termine la preuve d’unicité. 3. Comme pour la
question précédente, nous procédons par double implication : Étape 1 (implica-
tion) Supposons que A est SDP. Alors, d’après la question 2, il existe une matrice
diagonale D ayant des coefficients diagonaux strictement positifs, et une matrice
triangulaire inférieure à diagonale unité telle que A = LDLLt . On introduit la
matrice diagonale D1/2 définie par
(√
dii si i = j,
d1/2 ij =
0 sinon.
t
On peut vérifier que D1/2 D1/2 = D. Alors, comme D1/2 = D1/2 , on a
t t
A = LDLLt = LD1/2 D1/2 Lt = LD1/2 D1/2 Lt = LD1/2 LD1/2 .
- A est définie. Supposons qu’il existe x ∈ Rn tel que hAx, xi = 0. Alors, d’après
le calcul précédent,
t
B x
= 0,
2
et donc Bt x = 0. Comme B est inversible (det (Bt ) = ni=1 bi,i > 0), on en déduit
Q
que x = 0. 4. Comme B est triangulaire inférieure bmp = 0 pour tout p > m.
Donc,
n n min(i,j)
X X X
t t
A = BB ⇔ aij = bik b kj = bik bjk = bik bjk ∀(i, j) ∈ [1 : n]2 .
k=1 k=1 k=1
Page 4
Nous allons nous servir de l’égalité précédente pour calculer successivement les
colonnes de B :
Étape 1 Nous calculons la première colonne de B c’est à dire les coefficient bi1 pour
tout i ∈ [1 : n]. L’égalité (3) dans le cas j = 1 donne
1
X
ai1 = bik b1k = b11 bi1
k=1
Étape j: On suppose que les j − 1 premières colonnes de B ont déjà été calculées
lors des étapes précédentes ( bik est connu pour tout k ∈ [1 : j − 1] et pour tout
i ∈ [0 : n] ). Nous allons calculer les coefficients de la colonne j de B, c’est à dire
bij pour i ∈ [j : n] (en effet, on sait déjà que bij = 0 quand i < j ). On remarque
que pour les coefficients qui nous intéressent, i ≥ j(min(i, j) = j), si bien que
L’égalité (3) devient
j
X
aij = bik bjk ∀i ∈ [j : n].
k=1
L’égalité va nous permettre de calculer tous les termes bij , en commençant par le
coefficient diagonal bjj : on obtient
v
u
u j−1
X
bjj = ajj −
t b2jk
k=1
puis
j−1
P
ajj − bik bjk
k=1
bij =
bjj
Le fait que bjj > 0 provient directement de la question précédente (A SDP, donc il
existe B triangulaire inférieure à diagonale strictement positive telle que A = BBt
Page 5
). Puisque bjj 6= 0, la formule (5) a bien un sens. Noter, que tout comme à l’étape
1 , il faut d’abord calculer le coefficient diagonal bjj . Par contre pour i > j, les
calculs des coefficients bij peuvent être effectués en parallèle.
Remarque : Pour construite B, nous avons effectuer une identification colonne
par colonne de (3). Nous aurions aussi pu faire cette identification ligne par ligne.
Exercice 2 :
Soient α, β, γ ∈ R. On considère le système linéaire suivant d’inconnues x1 , x2 , x3 :
x1 + 2x2 − 3x3 = α
2x1 + 6x2 − 5x3 = β (1)
x − 2x + 7x = γ
1 2 3
Solution: On a
1 2 −3 x1 α
A = 2 6 −5 , x = x2 , b = β ,
1 −2 7 x3 γ
2. Est-ce que le système (1) admet une unique solution pour tout α, β, γ ∈ R ?
Page 6
Solution: Le fait que A admet une (unique) factorisation LU revient
à dire que l’on peut effectuer l’algorithme de Gauss sans pivot. On
considère la matrice augmenté c’est à dire qu’on regroupe A et b (en
ajoutant b à droite de A ):
1 2 −3 1
2 6 −5 −1
1 −2 7 2
Page 7
on obtient:
1 2 −3 1 0 0 1 2 −3
0 2 1 = −2 1 0 2 6 −5
0 −4 10 −1 0 1 1 −2 7
| {z } | {z }| {z }
A(1) E(1) A(0)
1 0 0
(1) −1
(1)
Notons que E est inversible, et E = 2 1 0 . De même,
1 0 1
1 0 0
(2) −1
(2)
E est inversible, et E = 0 1 0 . Ainsi, à la fin de la
0 −2 1
lère étape de la méthode de Gauss on a
A(1) = E(1) A
De l’égalité ci-dessus, on a
−1
E(2) E(1) A = U ⇐⇒ A = E(2) E(1) U
−1 −1
⇐⇒ A = E(1) E(2)
U
⇐⇒ A = LU
Page 8
On cherche maintenant dans la colonne 2 à partir de la ligne 2 le plus
grand nombre en valeur absolue : ici -5 (à la 3ème ligne) et on permute
la 3ème ligne avec la 2ème:
2 6 −5 −1 2 6 −5 −1
0 −1 − 1 3 0 −5 19 5
2 2 2 2
19 5 1 3
0 −5 2 2 L3 ↔C2
0 −1 − 2 2
−−−−−−→ 2 6 −5 −1
2 6 −5 −1
0 −5 19 5 1
2 2
L3 ← L3 − L2 0 −5 19 2
5
2
5
0 −1 − 12 32 0 0 − 12 5
1
2 6 −5 −1
En posant Ū = 0 −5 19 2
et c̄ = 5 , on est ramené à
2
12
0 0 −5 1
résoudre le système triangulaire supérieur Ū x = c̄, que I’on résout par
remontée.
5 T
31
On retrouve alors x = 73 , − 24
, − 12 .
Page 9
1 0 0
(1) −1
(1)
Notons que E est inversible, et E = 12 1 0 . De même,
1
2 0 1
(2) −1 1 0 0
(2)
E est inversible, et E = 0 1 0 . Ainsi, à la fin de la
0 51 1
1ère étape de la méthode de Gauss on a :
(1)
A(1) = E P1 A,
et à la fin de la 2ème étape on obtient :
(2) (2) (1)
U = A(2) = E P2 A(1) = E P2 E P1 A
def
(2) (1) (1)
⇐⇒ U = E E (P2 P1 ) A (car P2 et E com
De l’égalité ci-dessus, on a
(2) (1) (2) (1) −1
E E (P2 P1 ) A = U ⇐⇒ (P2 P1 ) A = E E U
(2) −1
(1) −1
⇐⇒ (P2 P1 ) A = E E U
⇐⇒ PA = LŪ
1 0 0 1 0 0
(1) −1 −1
(2)
avec P = P2 P1 et L = def E = 21 1 0 0 1 0 =
1
2
0 1 0 15 1
1 0 0
1 1 0
2
1 1
2 5
1
Notons que pour obtenir L et P il suffit de partir de la matrice identité
I puis : - pour obtenir L : de recopier dans I, en les changeant de signe,
les coefficients utilisés à chaque opération élémentaire :
1 0 0 1 0 0
0 1 0 −→ 1 1 0 .
2
1 1
0 0 1 2 5
1
- pour obtenir P : de faire, à partir de I, chaque permutation élémentaire
: on a alors PA = L̄Ū . Utilisons maintenant cette factorisation PA =
L̄Ū pour résoudre le système Ax = b. On a, puisque P est inversible
Ax = b ⇐⇒ PAx = Pb ⇐⇒ LUx = Pb
⇐⇒ Lȳ = Pb puis Ux = ȳ
t
On résout par descente L̄y = Pb et on trouve y = −1, 52 , 1 (notons
que y = c de la question (c)). Puis on résout Ux = y par remontée, et
5 t
on trouve x = 73 , − 31
24
, − 12 .
Page 10
Exercice 3 :
Soit A ∈ Mn (R) une matrice inversible admettant une factorisation LU où L est
une matrice triangulaire inférieure à diagonale unité et U est une matrice triangulaire
supérieure
1. Montrer que si la factorisation LU existe alors elle est unique.
A = L1 U1 == L2 U2 (2)
où
Cela signifie donc que det (L1 ) 6= 0 et det (U1 ) 6= 0, autrement dit que les
matrices L1 et U1 sont inversibles (on savait déjà en fait que L1 était inversible
puisque det (L1 ) = 1 ).
De manière similaire, on montre que L2 et U2 sont inversibles.
Ainsi, la seconde égalité de (2) est équivalente à
ou de façon équivalente
L2 = L1 et U2 = U1
Page 11
Autrement dit, si A admet une factorisation LU (avec L triangulaire inférieure
à diagonale unité et U triangulaire inférieure), alors cette factorisation est
unique.
Remarque: Ce résultat repose de manière essentielle sur le fait que L est à
diagonale unité. Sans cette hypothèse, il n’y a pas unicité de la décomposition
LU
2. Décrire une méthode pour calculer explicitement les coefficients des matrices L
et U.
u11 u12 · · · · · ·
u1n
0 u22 u23 · · · u2n
. ..
... ... ...
U = .. .
. .. ... ...
.. . 0
0 ··· ··· 0 unn
Comme L est triangulaire inférieure à diagonale unité, on sait que, pour tout
i ∈ J1, n]
`ii = 1 et `ik = 0 ∀k > i (4)
De manière similaire, comme U est triangulaire supérieure, pour tout j ∈
J1, n],
ukj = 0 ∀k > j (5)
Ainsi les inconnues du problèmes sont:
Page 12
De plus, comme A est inversible, on a det(A) 6= 0, et ainsi l’égalité A = LU
n
Q
implique que det(L) det(U) 6= 0 donc U est inversible. Or det(U) = ujj
j=1
(car U est triangulaire supérieure), donc
ujj 6= 0, ∀j ∈ J1, nK (7)
La question est donc la suivante:
Comment utiliser la formule (6) pour touver un algorithme de calcul des
inconnues `ik (i ∈ [1, nK, k < i) et ukj (j ∈ J1, nK, k 6 j)?
Pour déterminer ces coefficients, nous allons utiliser une identification des
coefficients de A = LU ligne par ligne :
(a) Étape 1: identification de la première ligne de A = LU
Nous allons voir que cette étape va nous permettre de calculer la
première ligne de U (i.e les coefficient u1j pour tout j ∈ J1, n]) et
la première ligne de L (il n’y a en fait rien à calculer puisque `11 = 1
et `1k = 0 sinon).
L’equation (6) pour i = 1 donne
1
X
a1j = `1k ukj = `11 u1j = u1j
k=1
Page 13
ii. j > 2 (min(2, j) = 2) :
La formule (9) devient a2j = `21 u1j + `22 u2j , ou encore, puisque
`22 = 1, pour tout j ∈ J2, n],
u2j = a2j − `21 u1j (11)
Le terme de droite de l’equation précédente est connu intégralement:
`21 a été calculé lors de l’étape 2 − i((10)) et les termes u1j , j > 2,
sont connus depuis l’étape 1.
La seconde ligne de U est maintenant complètement déterminée.
Remarque. Dans le processus d’identification ci dessus, il n’est pas
possible d’intervertir les étapes 2 − i et 2 − ii.
iii. Étape i : identification de la ligne i de A = LU
Dans cette étape, nous allons calculer la ligne i de L (i.e, le coef-
ficient `ij , j < i) (Étape i-i) puis la ligne i de U (i.e les coefficient
uij pour tout j > i ) (Étape i-ii)).
Page 14
de l’équation précédente est `i2 . On obtient alors (puisque A
est inversible et A = LU, u22 6= 0)
Page 15
Remarque. En général, si on souhaite résoudre simplement Ax = b, on ne
calculer pas explicitement L et U mais on effectue directement le procédé
d’élimination de Gauss. Par contre, si on a besoin de résoudre une famille de
systèmes Ax = bi ( pour différents second membres bi ), alors il devient utile
de calculer les matrices L et U.
=i
z }| {
(i − 1) (1 + (i − 1))
= + (n − i + 1)(i − 1)
2
i2 i
= − + + (n + 1)(i − 1).
2 2
De même,
i−1
X n
X
Ni+ = (j − 1) + (i − 1)
j=1 j=1
(i − 1)(i − 2)
= + (n − i + 1)(i − 1)
2
= Ni∗ − (i − 1).
On calcule ensuite le nombre total d’additions N + et de multilplications N ∗
en effectuant la somme sur les lignes pour i allant de 1 à n. On a
n
X n(n + 1)(2n + 1)
i2 =
j=1
6
Page 16
Donc
n
i2
X i n(n + 1)(2n + 1) n(n + 1) n(n + 1)(n − 1)
− + =− + =−
j=1
2 2 12 4 6
De plus,
n n−1
X X n(n + 1)(n − 1)
(n + 1)(i − 1) = (n + 1) i=
i=1 i=0
2
Finalement
n(n + 1)(n − 1) n(n + 1)(n − 1) n(n + 1)(n − 1)
N∗ = − =
2 6 3
De même,
n
X n
X n
X
N+ = Ni+ = Ni∗ − (i − 1)
i=1 i=1
|i=1 {z }
=n(n−1)/2
2n3 2n3
+ O n2 ∼ .
3 3
Identification mixte:
On pose
1. Np+ : nombre d’additions et de soustractions intervenant lors du calcul de
la ligne p de U et de la colonne p de L.
2. Np∗ : nombre de multilplications et de divisions intervenant lors du calcul
de la ligne p de U et de la colonne p de L. On a
+ +
Np+ = Np,U + Np,L
Page 17
+ +
où Np,U (resp. Np,L ) désigne le nombre d’additions et de soustractions inter-
venant lors du calcul de la ligne p de U (resp. Colonne p de L). Or,
n
X
+ +
Np,U = Np,U,j
j=p
+
où Np,U,j désigne le nombre d’additions et de soustractions intervenant lors
du calcul de de upj . On a
+
Np,U,j =p
Donc
+
Np,U = p(n − p + 1)
De manière similaire, on trouve
+
Np,L = p(n − p + 1)
ce qui donne
Np+ = 2p(n − p + 1)
En sommant sur p, on trouve donc
n
X n(n + 1)(n + 2)
N+ = 2p(n − p + 1) =
p=1
3
De manière similaire,
n3
N∗ ∼
3
et on retrouve le même nombre d’opérations que dans le cas de l’identification
par lignes.
Remarque: Même si les deux algorithmes conduisent à un nombre similaire
de calculs, l’algorithme par indentification mixte se révèle avantageux dans
le cas d’une implémentation parallèle.
Exercice 4 :
Une matrice tridiagonale est une matrice de la forme :
a1 c 1 0 ... 0
. .. ..
b 2 a2 . . . .
0 ... ... ..
. 0
. .
.. .. ... ...
cn−1
0 ... 0 b n an
Page 18
1. Soit A la matrice tridiagonale n × n suivante (ai = 2, bj = ck = −1) :
2 −1 0 . . . 0
. .
−1 2 −1 . . ..
A=
.. .. ..
0 . . . 0
. . . .
.. . . . . . . −1
0 . . . 0 −1 2
L=0
. . .
. . . . . . 0 , U = ... ... ...
0 0
. . . .
.. . . . . . . . . 0 .. .. .. ..
. . −1
0 . . . 0 βn 1 0 ... 0 0 αn
2. Soit f = (f1 , . . . , fn )T .
Montrer que la solution x = (x1 , . . . , xn ) du système linéaire Ax = f se calcule
par des formules de récurrence, en deux temps:
y 1 = f1 , yi = fi − βi yi−1 , ∀ i = 2, . . . , n
xn = y n α n , xi = yi + xi+1 αi , ∀ i = n − 1, . . . , 1
Solution:
Page 19
Pour montrer les relations, on calcule le produit matriciel LU. Pour simplicité,
on va prendre n = 5 (le calcul est similaire pour un n général) :
1 0 0 0 0 α1 −1 0 0 0
β2 1 0 0 0
0 α2 −1 0 0
LU =
0 β3 1 0 0
0 0 α3 −1 0
0 0 β4 1 0 0 0 0 α4 −1
0 0 0 β5 1 0 0 0 0 α5
α1 −1 0 0 0
α1 β2 −β2 + α2 −1 0 0
=
0 α2 β3 −β3 + α3 −1 0
0 0 α3 β4 −β4 + α4 −1
0 0 0 α4 β5 −β5 + α5
On a donc
2 −1 0 0 0
−1 2 −1 0 0
A=
0 −1 2 −1 0
0 0 −1 2 −1
0 0 0 −1 2
α1 −1 0 0 0
α1 β2 −β2 + α2 −1 0 0
=
0 α2 β3 −β3 + α3 −1 0 = LU
0 0 α3 β4 −β4 + α4 −1
0 0 0 α4 β5 −β5 + α5
En comparant les deux matrices élément par élément, on retrouve les relations
cherchées.
y 1 = f1 , yi = fi − βi yi−1 , ∀i = 2, . . . , n
yn yi + xi+1
xn = , xi = , ∀i = n − 1, . . . , 1
αn αi
Page 20
Notons y = Ux(y est un vecteur colonne). On peut maintenant réécrire
notre système comme deux systèmes suivants.
Ly = f
Ux = y
yi = fi − βi yi−1 .
Page 21