TD6 Corrige
TD6 Corrige
TD6 Corrige
MACS1
Correction
1. On a ¨ ˛ ¨ ˛ ¨ ˛
1 2 ´3 x1 α
A “ ˝2 6 ´5‚, x “ ˝x2 ‚, b “ ˝β ‚,
1 ´2 7 x3 γ
A et b étant les données, et x P R3 le vecteur inconnu.
2. On calcule detpAq “ 24 ‰ 0 donc A est inversible. Le système admet donc une unique solution : x “ A´1b , Pour tout
b P R3 , c’est-à-dire pour tout α, β, γ P R.
3. On choisit α “ 1, β “ ´1 et γ “ 2. Vérifions que A admet une unique factorisation LU. D’après le cours (ou l’exercice 3
ci-dessous), une condition suffisante est que
ˆ les sous
˙ matrices principales de A sont inversibles. Ceci est bien le cas car :
1 2
detp∆1 q “ detp1q “ 1 ‰ 0, detp∆2 q “ det “ 2 ‰ 0, et detp∆3 q “ detpAq ‰ 0.
2 6
3. (a) Le fait que A admet une (unique) factorisation LU revient à dire que l’on peut effectuer l’algorithme de Gauss sans
pivot. On regroupe A et b (en ajoutant b à droite de A) :
¨ ˛ ¨ ˛ ¨ ˛
1 2 ´3 1 ÝÑ 1 2 ´3 1 1 2 ´3 1
ÝÑ
˝ 2 6 ´5 ´1 ‚L2 ÐL2 ´2L1 ˝ 0 2 1 ´3 ‚L3 ÐL3 `2L2 ˝ 0 2 1 ´3 ‚
L3 ÐL3 ´L1
1 ´2 7 2 0 ´4 10 1 0 0 12 ´5
Ap0q “ A b p0q “ b Ap1q b p1q Ap2q b p2q
En posant U “ Ap2q et c “ b p2q on est ramené à résoudre le système triangulaire supérieur Uxx “ c , que l’on résout par
remontée :
$ 5
& 12x3 “ ´5 ñ permet de calculer x3 : x3 “ ´ 12
2x2 ` x3 “ ´3 ñ permet de calculer x2 connaissant x3 : x2 “ ´ 31 24
ñ permet de calculer x1 connaissant x2 , x3 : x1 “ 37
%
x1 ` 2x2 ´ 3x3 “ 1
1
(b) Pour trouver la factorisation LU de A on reprend les étapes de l’algorithme de Gauss :
¨ ˛ ¨ ˛ ¨ ˛¨ ˛
1 2 ´3 ÝÑ 1 2 ´3 1 0 0 1 2 ´3
˝ 2 6 ´5 ‚L2 ÐL2 ´22˚L1 ˝ 0 2 1 ‚ “ ˝ ´2 1 0 ‚˝ 2 6 ´5 ‚
L3 ÐL3 ´1
1˚L1
1 ´2 7
loooooooooomoooooooooon 0 ´4 10
loooooooooomoooooooooon ´1 0 1 loooooooooomoooooooooon
loooooooomoooooooon 1 ´2 7
A“Ap0q Ap1q Ep1q Ap0q
¨ ˛ ¨ ˛¨ ˛
1 2 ´3 1 0 0 1 2 ´3
ÝÑ
L3 ÐL3 ´p´2
´2
´2q˚L2
˝ 0 2 1 ‚ “ ˝ 0 1 0 ‚˝ 0 2 1 ‚
0 0 12
loooooooomoooooooon 0 2 1 loooooooooomoooooooooon
looooooomooooooon 0 ´4 10
Ap2q Ep2q Ap1q
¨ ˛ ¨ ˛
1 0 0 1 0 0
Notons que Ep1q est inversible, et pEp1q q´1 “ ˝ 2 1 0 ‚. De même, Ep2q est inversible, et pEp2q q´1 “ ˝ 0 1 0 ‚.
1 0 1 0 ´2 1
Ainsi, à la fin de la 1ère étape de la méthode de Gauss on a :
Ap1q “ Ep1q A,
De l’égalité ci-dessus, on a
Si l’on souhaite
¨ directement trouver
˛ la ¨
factorisation LU de˛A sans passer par les étapes de l’algorithme de Gauss, alors on
1 0 0 u11 u12 u13
cherche L “ ˝ `21 1 0 ‚ et U “ ˝ 0 u22 u23 ‚ telles que LU “ A. Identifions les coefficients ligne par ligne :
`31 `32 1 0 0 u33
2
C’est cette méthode que l’on généralisera ci-dessous, dans l’exercice 2, pour écrire l’algorithme de calcul de la factorisation LU
d’une matrice A de dimension quelconque.
x “ b ðñ LUx
Ax x“b
ðñ Lyy “ b puis Ux
x“y
On résout par descente Lyy “ b et on trouve y “ p1, ´3, ´5qt (notons que y “ c de la question (a)). Puis on résout Ux
x“y
par remontée, et on trouve x “ p 37 , ´ 31
24 , ´ 5 t
12 q .
(c) Effectuons maintenant l’algorithme de Gauss avec pivot partiel. On commence par chercher dans la colonne 1 le plus grand
nombre en valeur absolue : ici 2 (à la 2ème ligne) et on permute la 2ème ligne avec la 1ère :
¨ ˛ ¨ ˛
1 2 ´3 1 2 6 ´5 ´1
˝ 2 6 ´5 ´1 ‚L ÝÑ ˝ 1 2 ´3 1 ‚
2 ØL1
1 ´2 7 2 1 ´2 7 2
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 ´ 2 1 3 ÝÑ 19 5
2
‚ L3 ØL2
˝ 0 ´5 2 2
‚
19 5
0 ´5 2 2 0 ´1 ´ 21 3
2
(d) Pour trouver la factorisation L̄Ū de PA on reprend les étapes de l’algorithme de Gauss avec pivot partiel :
¨ ˛ ¨ ˛ ¨ ˛¨ ˛
1 2 ´3 2 6 ´5 0 1 0 1 2 ´3
ÝÑ
˝ 2 6 ´5 ‚L ØL ˝ 1 2 ´3 ‚ “ ˝ 1 0 0 ‚˝ 2 6 ´5 ‚
2 1
1 ´2 7
loooooooooomoooooooooon 1 ´2 7
loooooooooomoooooooooon 0 0 1 loooooooooomoooooooooon
looooooomooooooon 1 ´2 7
A“Ap0q P1 A P1 Ap0q
¨ ˛ ¨ ˛¨ ˛
ÝÑ 2 6 ´5 1 0 0 2 6 ´5
L2 ÐL2 ´ 12 L1 1 1
˝ 0 ´1 ´ 2 ‚ “ ˝ ´ 2 1 0 ‚˝ 1 2 ´3 ‚
L3 ÐL3 ´ 12 L1
0 ´5 19 2
loooooooooomoooooooooon ´ 12 0 1 loooooooooomoooooooooon
looooooooomooooooooon
1 ´2 7
Ap1q Ēp1q P1 Ap0q
¨ ˛ ¨ ˛¨ ˛
2 6 ´5 1 0 0 2 6 ´5
ÝÑ
L3 ØL2
˝ 0 ´5 19 2
‚ “ ˝ 0 0 1 ‚˝ 0 ´1 ´ 21 ‚
0 ´1 ´ 12
loooooooooomoooooooooon
0 1 0
looooooomooooooon 0 ´5 19 2
loooooooooomoooooooooon
P2 Ap1q P2 Ap1q
¨ ˛ ¨ ˛¨ ˛
2 6 ´5 1 0 0 2 6 ´5
ÝÑ 19 ‚ 19 ‚
´ 15 q˚L2
L3 ÐL3 ´p´
˝ 0 ´5 2 “ ˝ 0 1 0 ‚˝ 0 ´5 2 “
12 1 1
0 0 ´ 5
0 ´ 5 1
looooooooomooooooooon 0 ´1 ´ 2
looooooooooomooooooooooon loooooooooomoooooooooon
Ap2q Ēp2q P2 Ap1q
3
¨ ˛ ¨ ˛
1 0 0 1 0 0
1
Notons que Ēp1q est inversible, et pĒp1q q´1 “ ˝ 2 1 0 ‚. De même, Ēp2q est inversible, et pĒp2q q´1 “ ˝ 0 1 0 ‚.
1 1
2 0 1 0 5 1
Ainsi, à la fin de la 1ère étape de la méthode de Gauss on a :
Ap1q “ Ēp1q P1 A,
De l’égalité ci-dessus, on a
on a alors PA “ L̄Ū.
x “ b ðñ PAx
Ax x “ Pbb ðñ L̄Ūx
x “ Pbb
ðñ L̄ȳy “ Pbb puis Ūx
x “ ȳy
On résout par descente L̄yy “ Pbb et on trouve ȳy “ p´1, 52 , 1qt (notons que ȳy “ c̄c de la question (c)). Puis on résout Ūx
x “ ȳy
par remontée, et on trouve x “ p 37 , ´ 31
24 , ´ 5 t
12 q .
Exercice 2 : généralités
Soit A P Mn pRq 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.
2. Décrire une méthode permettant de calculer explicitement les coefficients des matrices L et U.
3. (algo) Ecrire une fonction FactLU permettant de calculer les matrices L et U. Quel est le coût de cette méthode ?
(on évaluera le nombre d’opérations élémentaires)
4. Soit A P Mn pRq une matrice inversible. Est-il toujours possible de décomposer A sous la forme A “ LU où L est une
matrice triangulaire inférieure à diagonale unité et U est une matrice triangulaire supérieure ?
4
5. (algo) Soit A P Mn pRq une matrice inversible admettant une factorisation LU. Expliquer comment résoudre le système
Ax “ b en utilisant cette factorisation et écrire l’algorithme (fonction ResFactLU) correspondant. Calculer le coût de
cet algorithme.
Correction
1. Supposons que la matrice A P Mn pRq vérifie
A “ L1 U1 “ L2 U2 , (2)
où
- U1 P Mn pRq et U2 P Mn pRq sont des matrices triangulaires supérieures,
- L1 P Mn pRq et L2 P Mn pRq sont des matrices triangulaires inférieures à diagonale unité (leurs coefficients diagonaux
sont tous égaux à 1).
Nous allons montrer que L1 “ L2 et U1 “ U2 . Comme A est inversible, alors
Cela signifie donc que detpL1 q ‰ 0 et detpU1 q ‰ 0, autrement dit que les matrices L1 et U1 sont inversibles (on savait déjà
en fait que L1 était inversible puisque detpL1 q “ 1). De manière similaire, on montre que L2 et U2 sont inversibles.
La matrice L2 est triangulaire inférieure à diagonale unité. Par conséquent, d’après l’exercice 4 du TD2, la matrice L´1 2
est triangulaire inférieure à diagonale unité. Donc comme L´1 2 L1 est le produit de deux matrices triangulaires inférieures à
diagonale unité, le terme de gauche de l’égalité (3) est une matrice triangulaire inférieure à diagonale unité.
De manière similaire, comme la matrice U1 est triangulaire supérieure, son inverse pU1 q´1 est triangulaire supérieure. Donc,
le terme de droite de l’égalité (3) est une matrice triangulaire supérieure.
Ainsi, l’égalité (3) implique que pL2 q´1 L1 triangulaire inférieure est égale à et U2 pU1 q´1 triangulaire supérieure, donc ce sont
deux matrices diagonales identiques. De plus, pL2 q´1 L1 étant à diagonale unité, elle est égale à la matrice identité :
ou de façon équivalente
L2 “ L1 et U2 “ U1 .
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. On suppose que A admet une décomposition LU. L’objectif de cette question de calculer L et U.
On pose A “ paij qpi,jqPv1,nw2 , L “ p`ij qpi,jqPv1,nw2 , U “ puij qpi,jqPv1,nw2 :
¨ ˛ ¨ ˛ ¨ ˛
a11 a12 ¨ ¨ ¨ ¨ ¨ ¨ a1n 1 0 ¨¨¨ ¨¨¨ 0 u11 u12 ¨ ¨ ¨ ¨¨¨ u1n
˚ a21 a22 ¨ ¨ ¨ ¨ ¨ ¨ a2n ‹ ˚ `21 1 0 ¨ ¨ ¨ 0 ‹ ˚ 0 u22 u23 ¨¨¨ u2n ‹
˚ ‹ ˚ ‹ ˚ ‹
˚ .. .. .. .. .. ‹ ˚ . .. .. .. .. ‹ ˚ . .. .. .. .. ‹
A“˚ . . . . . ‹ , L “ ˚ .. . . . . ‹ , U “ ˚ .. . . . . ‹
˚ ‹ ˚ ‹ ˚ ‹
˚ .. .. .. . .. .
.. ‚ . . . . . . .. .. ‹
˝ .. .. .. . . 0‚ ˝ .. ..
‹ ˚ ‹ ˚
˝ . . . 0 . .‚
an1 an2 ¨ ¨ ¨ ¨ ¨ ¨ ann `n1 `n2 ¨ ¨ ¨ ¨ ¨ ¨ 1 0 ¨¨¨ ¨¨¨ 0 unn
Comme L est triangulaire inférieure à diagonale unité, on sait que, pour tout i P v1, nw
De manière similaire, comme U est triangulaire supérieure, pour tout j P v1, nw,
ukj “ 0 @k ą j. (5)
5
- les nombres `ik , pour tout i P v1, nw et pour tout k ă i.
- les nombres ukj , pour tout j P v1, nw et pour tout k ď j.
La question est donc la suivante : comment utiliser la formule (6) pour touver un algorithme de calcul des inconnues `ik
(i P v1, nw, k ă i) et ukj (j P v1, nw, k ď j) ? Pour déterminer ces coefficients, nous allons utiliser une identification des
coefficients de A “ LU ligne par ligne :
ce qui nous permet de calculer la première ligne de U. A l’issue de cette première étape, la première ligne de L et la première
ligne de U sont intégralement déterminées.
Le terme de droite de l’equation précédente est connu intégralement : `21 a été calculé lors de l’étape 2-a ((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-a et 2-b.
6
Étape i : identification de la ligne i de A “ LU
Dans cette étape, nous allons calculer la ligne i de L (i.e, le coefficient `ij , j ă i) (Étape i-a) puis la ligne i de U (i.e les
coefficient uij pour tout j ě i) (Étape i-b)).
Nous faisons l’hypothèse que les étapes précédentes (étapes k pour k ă i) ont permis de calculer les i ´ 1 premières lignes
de L et les i ´ 1 premières lignes de U. On rappelle que l’equation (6) donne
minpi,jq
ÿ
aij “ `ik ukj . (12)
k“1
On remarque que, comme k ď j ă i, les nombres ukj sont connus. Pour j “ 1, nous obtenons alors ai1 “ `i1 u11 ce
qui nous permet de déterminer `i1 par la formule
ai1
`i1 “
u11
`i1 étant déterminé, nous allons pouvoir déterminer `i2 . En effet, l’équation (13) pour j “ 2 donne
Puisque les termes u12 et u22 ont été calculés lors d’étapes précédentes et que `i1 vient d’être calculé, la seule inconnue
de l’équation précédente est `i2 . On obtient alors (puisque A est inversible et A “ LU, u22 ‰ 0)
Le terme de droite de l’équation précédente est connu : en effet ukj est connu pour tout k ă i (donc en particulier
pour k ď j). De même, les termes `ik sont connus, par conqéquent `ij est déterminé.
A l’issue de cette étape i-a, les coefficients `ij pour j ă i sont déterminés.
b- j ě i (minpi, jq “ i) : l’équation L’équation (12) devient
i
ÿ i´1
ÿ
aij “ `ik ukj “ `ik ukj ` `ii uij , (15)
k“1 k“1
Puisque les coefficients ukj pour k ď i ´ 1 ont été déterminés lors des étapes précédentes et que les coefficients `ik
(k ě i) sont connus depuis l’étape i-a, le terme de droite de (16) est connu et l’équation (16) permet de construire uij
pour tout j ě i.
Algorithm 1 Fonction FactLU : Calcule (en identifiant par lignes) les matrices L et U de la factorisation LU d’une matrice A
7
2: n Ð sizepA, 1q
3: L Ð In Ź matrice identité de Mn pRq
4: U Ð On Ź matrice nulle de Mn pRq
5: Pour i Ð 1 à n faire
6: Pour j Ð 1 à i ´ 1 faire Ź Calcul de la ligne i de L (`ij , j ă i) (formule (14))
7: Lpi, jq Ð Api, jq
8: Pour k Ð 1 à j ´ 1 faire
9: Lpi, jq Ð Lpi, jq ´ Lpi, kq ˚ Upk, jq
10: fin Pour
11: Lpi, jq Ð Lpi, jq{Upj, jq
12: fin Pour
13: Pour j Ð i à n faire Ź Calcul de la ligne i de U (uij , j ě i) (formule (16))
14: Upi, jq Ð Api, jq
15: Pour k Ð 1 à i ´ 1 faire
16: Upi, jq Ð Upi, jq ´ Lpi, kq ˚ Upk, jq
17: fin Pour
18: fin Pour
19: fin Pour
20: fin Fonction
Remarque.
1. Une autre méthode est proposée en cours, pour calculer L et U. Elle consiste à calculer, à chaque étape i, la i-ème ligne de
U et la i-ème colonne de L.
2. Dans le processus d’identification de l’étape i-a, il n’est pas possible d’intervertir les sous étapes : dans l’égalité (14), il
faut connaitre `ik pour k ď j ´ 1 pour pouvoir calculer `ij . Il faut donc commencer par calculer `i1 , puis `i2 et ainsi de
suite jusqu à `i,i´1 . Par contre, la définition (16) de uij ne fait pas appel à uik pour k ď j ´ 1. Les calculs (16) peuvent
donc être effectués en parallèle.
3. On aurait aussi pu identifier les équations (6) colonne par colonne.