Systèmes d'Équations Linéaires en Mathématiques
Systèmes d'Équations Linéaires en Mathématiques
2017/2018
2 Élimination de Gauss
3 Décomposition LU
Ax = b
Écriture matricielle:
Ax = b
où A dénote la matrice carrée d’ordre n des coefficients du système
linéaire et b le vecteur du second membre.
a11 ... a1i ... a1n b1 x1
.. . . .. . . .. .. ..
.
. . . .
.
.
A = ai1 ... aii ... ain
b = bi
x = xi
.. . . .. . . .. . .
.. ..
. . . . .
an1 ... ani ... ann bn xn
Rappel d’algèbre:
Trois énoncés équivalents:
Le système Ax = b admet une solution unique si et seulement si
la matrice A est de rang maximal (autant d’inconnues que
d’équations et pas d’équation qui se "répète").
Le système Ax = b admet une solution unique si et seulement si
detA 6= 0
Le système Ax = b admet une solution unique si et seulement si
A est inversible.
Dans ce cas la solution est fournie par
x = A−1 b
detAi
La formule de Cramer: xi =
detA
où Ai est la matrice A dont la colonne i est remplacée par b.
Remarque
La plupart du temps on traite des cas où la matrice est inversible
(matrice non-singulière). Ce qui assure l’existence d’une solution.
Sauf dans de rare cas, la formule de Cramer peut être considérée
comme purement théorique (sans applications).
Sauf dans des cas particuliers il est plus rapide et simple de
résoudre le système linéaire que d’inverser la matrice (même "à la
main").
De la première équation on a
8 − 3x2
x1 =
2
Et en substituant dans la deuxième (éliminant x1 ) on a
8 − 3x2
3( ) + 4x2 = 11 ⇒ x2 = 2
2
Matrice diagonale
Facile lorsque le système linéaire a une matrice diagonale:
a11 0 0 ... 0
x1 b1
0 a22 0 ... 0
.. = .. ⇔ a x = b
Ax = i = 1, ..., n
.. .. . . ii i i
. . 0
xn bn
0 ... 0 ... ann
bi n
Q
alors xi = . Solution unique ssi aii 6= 0 ∀i (detA = aii 6= 0)
aii i=1
Définition 3.1
Une matrice est dite triangulaire inférieure (ou supérieure) si toutes
ces entrées aij sont nulles pour i < j (i > j resp.).
Triangulaire inférieure = “nulle au dessus de la diagonale“.
Triangulaire supérieure = “nulle au dessous de la diagonale“.
a11 0 0 ... 0 a11 a12 a13 ... a1n
a21 a22 0 ... 0
0 a22 a23 ... a2n
a31 a32 a33 ... 0
0 0 a33 ... a3n
.. .. .. .. .. .. .. .. ..
. . . . . . . . .
an1 an2 an3 ... ann 0 0 0 ... ann
Matrice triangulaire
Les matrices triangulaires: résoudre sucessivement en choisissant
l’équation avec le moins d’inconnues.
Matrice triangulaire inférieure: descente triangulaire (on
commence à 1 on fini à n ”en bas”).
i−1
X
bi − aik xk
b1 k =1
x1 = xi = i = 2, ..., n
a11 aii
3
X
b2 − a2k xk
b3 k =3 30 − 2x3
x3 = = 15 x2 = = =0
a33 a22 2
3
X
b1 − a1k xk
k =2 0 − 1x2 − 3x3
x1 = = = −x3 = −15
a11 3
Definition 3.2
Une méthode de résolution d’un système linéaire est dite directe si la
solution du système peut être obtenue en un nombre fini et
prédéterminé d’opérations.
WAx = Wb
Exemple
Soit
10 6 2 x1 44
Ax = 4 4 1 x2 = 21
3 2 1 x3 14
Prenons
1 −1 −1 3 0 0 9
W = 0 1 −1 ⇒ WA = 1 2 0 Wb = 7
0 0 1 3 2 1 14
λLi −→ Li
Li + λLj −→ Li
1 0 ... ... 0 1 0 ... ... 0
.. ..
0 . 0 ... 0 0 . 0 ... 0
−1
M= 0 M = 0 ←i
1
... λ ... 0
... λ ... 0
0 ... 1 ... 0 ... 1 ...
0 ... ... 1 0 ... ... 1
On sait que detT = 1 alors T est inversible (il suffit d’enlever ce que
l’on a ajouter)
1 0 ... ... 0 1 0 ... ... 0
.. ..
0 . 0 ... 0 0 . 0 ... 0
−1
T = j→ 0 T = 0
... 1 ... 0 ... 1 ... 0
i→ 0
λ 1 ... 0 −λ 1 ...
0 ... ... 1 0 ... ... 1
Définition
La matrice augmentée du système Ax = b est la matrice de dimension
n × n + 1 obtenu en ajoutant le membre de droite b à la matrice A:
a11 ... a1i ... a1n b1
.. . . .. . . ..
.
. . . .
ai1 ... aii ... ain bi
.. . . .. . . ..
. . . . .
an1 ... ani ... ann bn
Exemple 3.8
On applique la méthode de Gauss sur la matrice augmentée
2 1 2 10
A = 6 4 0 26
8 5 1 35
1 1 4 5 −2
Et si je veux changer b?
Trois options:
1 Je recommence le processus avec la nouvelle valeur de b car je
dois transformer A et b simultanément dans la méthode de Gauss
2 j’attend d’avoir TOUT les b que je veux et je fais Gauss sur la
matrice augmentée de tout les b
3 J’essaie de garder l’information ayant servi à la transformation de
la matrice lors de la première résolution pour résoudre avec les
autres b
Revenons à nos exemples pour voir ce qu’on peut faire en tenant
compte des matrices T ,M et P cette fois
1 1 4 5 −2
Ax = b ⇔ (LU)x = b ⇔ L(Ux) = b
Remarques
la méthode de Gauss est une décomposition LU où on “jete“ L.
Plus la peine d’en parler (sauf pour les exercices :-)
les permutations causent des problèmes (empêchent d’avoir un
LU ”propre”) on en reparlera.
Pour le moment on va faire comme si A était permuter avant qu’on
arrive...
Unicité de LU
La décomposition LU se fait grâce aux transformations de Ax = b mais
on pourrait ajouter des transformations (superflues). Par exemple on
pourrait finir en s’assurant que les pivots (termes diagonaux non nuls)
soit tous égaux à 1 en appliquant des transformations M. Donc la
décomposition LU n’est pas unique.
Décomposition de Crout
Algorithme composé de trois parties
1 factorisation LU avec Uii = 1 ∀i
2 Résolution de Ly = b par descente triangulaire
3 Résolution de Ux = y par remontée triangulaire
Factorisation
A1i
Li1 = Ai1 i = 1, ..., n, U1i = L11 i = 2, ..., n
i = 2, ..., n − 1
i−1
P
Lii = Aii − Lik Uki
k =1
j = i + 1, ..., n
i−1
P
Lji = Aji − Ljk Uki
k =1
i−1
P
Aij − Lik Ukj
k =1
Uij = Lii
n−1
P
Lnn = Ann − Lnk Ukn
k =1
descente sur Ly = b
i−1
P
bi − Lik yk
b1 k =1
y1 = L11 yi = Lii i = 2, ..., n
remonté sur Ux = y
n
P
xn = yn xi = yi − Uik xk i = n − 1, ..., 1
k =i+1
Remarque
L’algo ne fonctionne que si Lii 6= 0 ∀i.
Si on a pas fait de permutations alors detA = detLdetU mais
detU = 1 et
Remarque
D’un point de vue pratique une fois la factorisation LU faite on a plus
de raison de conserver la matrice A. En fait notre procédure de
factorisation est faite pour que l’on puisse ”écraser“ A au fur et à
mesure de la factorisation. Ce qui permet de minimiser l’espace de
stockage puisqu’on a pas simultanément A, L et U
Definition 3.4
La notation compacte de LU consiste a remplacer la matrice A par la
matrice
L + (U − I) = L + U − I
à la place de A
Exemple 3.11
Utilisation de la décomposition LU avec notation compacte pour
3 −1 2 12
A= 1 2 3 b = 11
2 −2 −1 2
Permutations
On gardera un vecteur de permutation (position ou numérotation) qui
indiquera les permutations effectuées sur la matrice. A la fin de la
factorisation on obtient L, U et le vecteur de permutation.
Si nécessaire on reconstruit la matrice P en appliquant les
permutations sur une matrice identié. Mais c’est normalement inutile.
Comment résoudre une fois la factorisation terminée?
Ax = b et PA = LU ⇔ PAx = LUx = Pb ⇔ Ly = Pb et Ux = y
Algorithme de Cholesky
1
L11 = (A11 ) 2
Ai1
Li1 = L11 i = 2, ..., n
k = 2, ..., n
−1
kP 1
Lkk = (Akk − L2kj ) 2
j=1
i = k + 1, ..., n
−1
kP
Aik − Lij Lkj
j=1
Lik = Lkk
Remarques
Tout comme pour la décomposition LU on peut introduire une
notation compacte et ”écraser“ A lors de la création de L
La factorisation n’est pas unique: A = (−L)(−LT ) = L̃L̃T on rend
la factorisation unique en imposant des pivots positifs: Lii > 0.
Exemple 3.13
Utilisation de la factorisation de Cholesky avec notation compacte pour
4 6 2
A = 6 10 5
2 5 14
Définition 3.5
Une matrice A est définie positive ssi
Ax · x > 0 ∀x 6= 0
Comment inverser A?
La méthode usuelle (i.e. à la main) consiste a augmenter la matrice
avec la matrice identité et à faire une élimination jusqu’à ce qu’on ait
une ”identité à gauche”
n Ax = b A−1 b
10 333 1 333
100 333 333 1 333 333
1000 333 333 333 1 333 333 333
Pour un système 1000 × 1000 on fait 109 opérations ×/÷ de plus pour
résoudre le système.
1000 est un petit chiffre dans le monde réel...
Exemple 3.15
On se donne une matrice A obtenu par factorisation LU avec
permutation:
0 2 1 3 0 0 1 0 1/3
A= 1 0 0 L= 0 2 0 U = 0 1 1/2
3 0 1 1 0 −1/3 0 0 1
Exemple 3.16
Soit
1.012 −2.132 3.104
A = −2.132 4.096 −7.013
3.104 −7.013 0.014
On veut appliquer la factorisation LU mais avec une mantisse fixe de 4
chiffres.
Cette restriction engendre des “perturbations” par rapport à la
factorisation “humaine” (mantisse infinie). Quel est l’impact de cette
perturbation lors de la résolution?
Exemple 3.17
Soit une matrice A et une perturbation à de A
1. 2 10 1. 2
A= b= Ã =
1.1 2 10.4 1.05 2
La solution exacte avec A est (4, 3) et pour à la solution est (8, 1).
Une “petite” variation de A produit une “grande” variation de la solution.
Exemple 3.18
Soit
0.0003 3.0000 2.0001
A= b=
1.0000 1.0000 1.0000
La solution est x = [1/3, 2/3]T , en faisant la décomposition LU avec 4
chiffres on a
0.3000 × 10−3 0.1000 × 105 0.6667 × 104
L+U−I = x=
0.1000 × 101 −0.9999 × 104 0.6667 × 100
Recette 1
On peut éviter une partie des erreurs en faisant une permutation
systèmatique des lignes lors de la décomposition: on s’assure d’avoir
TOUJOURS le pivot de plus grand en valeur absolue sur la diagonale.
Exemple 3.19
1 6 9
A= 2 1 2
3 6 9
Exemple 3.20
2.0000 100000 100000
A= b=
1.0000 1.0000 2.0000
La solution est x = [1.00002, 0.99998]T , en faisant la décomposition
LU avec 4 chiffres on a
0.2000 × 101 0.5000 × 105 0.0000 × 100
L+U −I = x=
0.1000 × 101 −0.5000 × 105 0.1000 × 101
Matrice M
On divise la première ligne de A par 100000 ce qui donne
Definition 3.7
Une mise à l’échelle d’une matrice A consiste à diviser chaque ligne
de A par le plus grand termes en valeur absolue de la ligne
correspondante.
Recette 2
On peut éviter une partie des erreurs en faisant une mise à l’échelle
systèmatique d’une matrice avant la décomposition.
Attention au déterminant
L’introduction de matrice M à un effet important sur le déterminant. Si
on multiplie une matrice par un scalaire on récupère son déterminant
en divisant le déterminant de L par ce scalaire.
Definition 3.8
Une norme vectorielle est une application de Rn dans R notée kk
vérifiant
1 Positivité stricte:
kxk> 0 ∀x ∈ Rn , x 6= 0
2 ∀α ∈ R
kαxk= |α|kxk ∀x ∈ Rn
3 Inégalité du triangle
kx + y k≤ kxk+ky k ∀x, y ∈ Rn
Definition 3.9
La norme euclidienne d’un vecteur x notée kxk2 est définie par
1
2
kxk2 = x12 + x22 + ... + xn2
Definition 3.10
Il existe d’autre norme sur Rn .
n
P
La norme l1 : kxk1 = |xi |
i=1
n
La norme l∞ : kxk∞ = max |xi |
i=1
Definition 3.11
On peut aussi introduire une norme matricielle. On l’a définie comme
une application A :→ kAk vérifiant
1 Positivité stricte:
kAk> 0 ∀A, A 6= 0
2 ∀α ∈ R
kαAk= |α|kAk ∀A
3 Inégalité du triangle
Norme induite
On peut construire une norme matricielle à partir d’une norme
vectorielle:
kAk= sup kAxk
kxk=1
Une telle norme est dite norme matricielle induite par la norme
vectorielle. On dit aussi que cette norme est subordonnée à la
norme vectorielle
Théorème 3.5
Les normes induites par les normes l1 et l∞ sont
n
P
kAk1 = sup kAxk1 = max |Aij |
kxk1 =1 1≤j≤n i=1
n
P
kAk∞ = sup kAxk∞ = max |Aij |
kxk∞ =1 1≤i≤n j=1
Définition 3.12
On dit que la norme matricielle et la norme vectorielle sont
compatibles si
kAxk≤ kAkkxk
pour toutes matrice A et vecteurs x de dimensions cohérentes.
Attention au mélange de normes: à gauche norme vectorielle, à droite
matricielle et vectorielle (respectivement).
Normes compatibles
On peut montrer que
kAxk1 ≤ kAk1 kxk1 la norme 1 des matrices et vecteurs est
compatible
kAxk∞ ≤ kAk∞ kxk∞ la norme ∞ des matrices et vecteurs est
compatible
kAxk2 ≤ kAkF kxk2 la norme Frobenius des matrices est
compatible avec la norme euclidienne.
La dernière relation montre qu’il n’y a pas de lien entre norme induite
et norme compatible.
kr k
≤ kek≤ kA−1 kkr k
kAk
On veut faire apparaitre x dans cette relation (on voudrait l’“erreur
relative“) alors on revient au système:
1 kAk
kbk = kAxk≤ kAkkxk⇒ ≤
kxk kbk
1 1
kxk= kA−1 bk≤ kA−1 kkbk⇒ ≤
kA−1 kkbk kxk
En combinant ces deux inégalités on a
1 1 kAk
≤ ≤
kA−1 kkbk kxk kbk
et on a
kr k kek kA−1 kkAkkr k
≤ ≤
kAkkA−1 kkbk kxk kbk
Definition 3.13
Le conditionnement d’une matrice A noté condA est défini par
Remarque
condA dépend de la norme matricielle utilisée
Puisque 1 ≤ kIk parce que
on a
1 ≤ kIk≤ kAA−1 ≤ kA−1 kkAk
et
1 ≤ condA < ∞
Théorème 3.6
1 kr k kek kr k
≤ ≤ CondA
condA kbk kxk kbk
Concernant le conditionnement
1 kr k kek kr k
≤ ≤ CondA
condA kbk kxk kbk
kek kr k
≈
kxk kbk
Concernant le conditionnement
1 kr k kek kr k
≤ ≤ CondA
condA kbk kxk kbk
Erreurs dans A
On veut résoudre le système Ax = b mais à cause d’erreur de
troncature ou dans la mesure des éléments de A on résout plutôt le
système
(A + E)x = b
Soit x ∗ solution du système perturbé et x la solution du système
original.
Et on a
kx − x ∗ k kEk
∗
≤ condA
kx k kAk
kx−x ∗ k
kx ∗ k approxime l’erreur relative
kEk
kAk ressemble à l’erreur relative sur les entrées de la matrice A
Si condA est petit et kEk est petit alors l’erreur relative sera petite:
bonne approximation de x
Si condA est grand on ne peut rien dire
Erreurs dans A
kx − x ∗ k kEk
∗
≤ condA
kx k kAk
|Eij | ≤ m |Aij |
d’où
kx − x ∗ k
≤ m condA
kx ∗ k
Si le conditionnement est mauvais il faut plus de précision sur les
nombres
Math-Info-ScHS (ENSAM) CMN 77 / 105
Conditionnement d’une matrice
(k )
Jacobi xJ , k ∈ IN
(k )
Gauss Seidel xGS , k ∈ IN
(k )
Relaxation xR , k ∈ IN
a chaque itération...
le vecteur d’erreurs : e(k ) = x (k ) − xe doit diminuer
comment choisir ?
il en existe plein d’autres...
la question centrale : quand convergent’elles ?
seconde question : à quelle vitesse
parmi celles qui convergent on prend celle qui converge le plus vite !
La méthode de Jacobi
i−1
X n
X
Ax = b ⇐⇒ Aij xj + Aii xi + Aij xj = bi i = 1, n
j=1 j=i+1
Fonction x ← Jacobi(A, b, x)
1−1/2+1/4 3
y1 = 3 = 12
1−1/3
y2 = 2 = 13
1+1/3−1/2 5
y3 = 4 = 24
3/12
x2 = 1/3
5/24
norm(A ∗ x0 − b) = 1.7321
0.2500 0.2941
norm(A ∗ x1 − b) = 0.4488
x2 A\b = 0.3333 0.3529
norm(A ∗ x2 − b) = 0.1718 0.2083 0.2353
Les itérations de Gauss Seidel
Fonction x ← Gauss_Seidel(A, b, x)
Fonction x ← Relaxation(A, b, x, ω)
Ax = Dx + (L + U)x
a11 x1 + a12 x2 + a13 x3 a11 x1 +0 +0 0 +a12 x2 +a13 x3
a21 x1 + a22 x2 + a23 x3 = 0 +a22 x2 +0 + a21 x1 +0 +a23 x3
a31 x1 + a32 x2 + a33 x3 0 +0 +a33 x3 a31 x1 +a32 x2 +0
Ax = Dx + Lx + Ux
Décomposition d’une matrice
Le point fixe
Ax =b
(D + L + U)x =b
Dx + (L + U)x =b
Dx = −(L + U)x + b
Fonction x ← Jacobi(A, b, x)
Exemples (théorèmes):
X
kCk1 = max |Cij |
j
i
X
kCk∞ = max |Cij |
i
j
kCk2 =
√
max µi où µi est valeur propre de C >C.
i √
pour C symétrique : max |λi | λi = µi est val. propre de C.
i
démonstrations: de manière générale nous allons montrer les deux
inégalités suivantes
φ(C) ≤ kCk ≤ φ(C)
On commence par trouver une borne sur cette norme:
kCxk
kCk1 = sup
x6=0 kxk
P P
i j Cij xj
= sup
x6=0 P Pkxk
i j |Cij ||xj |
≤ sup
x6=0 kxk
X X |xj |
≤ sup |Cij |
x6=0 j kxk
i
X X |xj |
≤ sup max |Cij |
x6=0 j j kxk
i
X X |xj |
≤ sup max |Cij |
x6=0 j kxk
i j
X |xj |
≤ max |Cij | car kxk
≤1
j
i
Definition
rayon spectral
Theorem
Si A est a diagonale dominante alors les méthodes de Jacobi et de
Gauss Seidel convergent
Démonstration :
1 X
Jacobi : kCj k∞ = kD −1 (M + N)k∞ = max |Aij | < 1
i |Aii |
j6=i
Gauss Seidel: on montre que si Gauss Seidel diverge, alors A
n’est pas à diagonale dominante :
1 Pi−1 Pn
1 < maxi |Aii | j=1 |Aij | + j=i+1 |Aij |. Les détails de la preuve ne
sont pas évidents...
Exemple : la matrice est-elle à diagonale dominante?
2 −1 0 0 −9 3 1 −1
3 −1 1 −1 2 −1 0 1 2 0 0
A1 = 1 −2 0 ; A2 =
0 −1 2 −1 ; A3 = −1 1
8 −5
1 1 4
0 0 −1 2 −2 1 4 6
Remarques :
toute matrice à diagonale dominante est régulière
on retrouve ce type de matrice dans les méthodes à éléments
finis .
Le cas des matrices positives
Definition (rappel)
Une matrice carrée A est définie positive si elle est symétrique et si si
. ∀x 6= 0 ∈ IRn x> Ax > 0
Theorem
Si A est strictement symétrique définie positive alors la méthode de
Gauss Seidel converge et la méthode de la relaxation pour 0 < ω < 2
étude des perturbations (ou des erreurs)
10 7 8 7 32 1
7 5 6 5 23 1
A=
8 ; b= admet comme solution x =
6 10 9 33 1
7 5 9 10 31 1
32, 1 9, 2
22, 9 −12, 6
b + δb =
33, 1
admet comme solution x + δx =
4, 5
30, 9 1, 1
32, 1 9, 2
22, 9 −12, 6
b + δb =
33, 1
admet comme solution x + δx =
4, 5
30, 9 1, 1
1 kAk
kbk = kAxk ≤ kAk kxk ⇒ ≤
kxk kbk
kδx k = kA−1 δb k ≤ kA−1 k kδb k ⇒ kδx k ≤ kA−1 k kδb k
kδx k kδb k
≤ kA−1 kkAk
kxk kbk
cond(A) : conditionnement de A
|λ1 |
cond(A) = kA−1 kkAk =
|λn |