Beruflich Dokumente
Kultur Dokumente
Belkacem LAKEHALI
Uni. de Msila
Faculté de MI
Dpt de mathématiques
2017/2018
ii
Table des matières
2 Méthodes directes 19
2.1 Méthode d’élimination de GAUSS sur un exemple . . . . . . . 20
2.2 Description de l’algorithme . . . . . . . . . . . . . . . . . . . . 22
2.3 Elimination de Gauss avec changement de pivots . . . . . . . . 23
2.4 Utillité de la factorisation LU . . . . . . . . . . . . . . . . . . 24
2.5 Décomposiont de CHOLESKY . . . . . . . . . . . . . . . . . . 25
2.6 Factorisation LU en Matlab . . . . . . . . . . . . . . . . . . . 26
3 Méthodes itératives 27
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1 Critère d’arrêt de itérations . . . . . . . . . . . . . . . 29
3.2 Méthode de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Méthode de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . 37
iii
iv TABLE DES MATIÈRES
Ce manuscrit est un cours, qui a été donné aux étudiants de Master ma-
thématiques à l’universté de M’sila, durant six ans. Dans ces notes, on va
s’intéresser à des méthodes numériques de la résolution de grands systèmes
linéaires Ax = b, où A est une matrice réelle, carée,non singulière (i.e. inver-
sible ) et de grande taille.
Généralement, c’est rare de trouver la solution exacte de ce type de sys-
tèmes linéaires. Elle reste toujours succeptible aus erreurs d’arrondi. Plus
particulièrement avec les grands ssystèmes et avec le mal-conditionnement.
On essaye alors, de chercher des solutions approchées, bien sûr à l’aide d’un
ordinateur.
Ceci nous oblige à commettre des erreur, dites erreur d’arrondi car les
calculs numériques sur machine se font avec une précision …nis. la mémoire
disponible dans la machine est …nie, par conséquent, on ne peut pas repré-
senter les nombres réels qui ont un developpement décimal in…ni. Comme
par exemple, on peut représenter le nombre 1=3 mais pas son écriture déci-
male 1:333333::::. D’autre part la compxité des calculs qui pose le problème
de temps pour uun ordinateur. Pour la plus part des applications, on veut
obtenir un résultat en un temps raisonable, il est donc, important de pou-
voir estimer le temps que l’algorithme va utiliser pour résoudre un système
linéaire Ax = b. Pour cela on compte le nombre d’opérations (en Anglais :
‡ops ).
Les problèmes qui se ramènent à la résolution des grands sytèmes li-
néaires, c’est à dire avec un grand nombre d’inconnues, sont nombreux. On
présente ici, un exemple de modélisation d’un problème physique par une
équations aux dérivées partielles en dimension-2.
Une membrane élastique se déforme soud l’e¤et d’une pression de l’exte-
rieur, qu’on peut l’identi…er à une région plane R2 et si on lui applique
une force f normale à R2 , la membrane se déforme et prend une position
v
vi PREFACE
Le but de ce cours est de présenter, tout en restant dans les limites rai-
sonables, les méthodes classiques d’analyse numérique matricielle pour la
résolution des systèmes linéaires, et de sensibiliser l’étudiant à l’importance
du choix de la méthode en fonction des propriètés du système.
On distinguera trois types de méthodes de résolution des systèmes d’équaions
linéaires :
1. Les méthodes directes qui donneraient la solution en un nombre …ni
d’opération, si l’on suppose que l’ordinateur faisait des calculs exacts ;
2. Les méthodes itératives stationnaires (classiques), où on calcule une
solution approchée, qui consiste à construire une suite x(n) n 0 qui
converge vers la solution exacte x ;
3. Les méthodes non-stationnaires qui sont des très avancées : méthodes
du gradient, les méthodes de Krylov et la généralisation de la Méthode
de Minimisation du Résidu ( GMRES ).
Une bibliogarphie succinte se trouve en …n de document
Le principal problème en analyse numérique matricielle est celui de la
résolution d’un système d’équations algèbriques linéaires de la forme
Ax = b
le problème est de trouver le vecteur solution x dans Rn , A est une matrice
carrée donnée d’ordre n à coe¢ cients réels et b est aussi un vecteur donné
dans Rn .
1
2CHAPITRE 1. MOTIVATION ET CLASSIFICATION DES MÉTHODES
La résolution d’un tel système est au centre de la plus part des calcules
scienti…ques en analyse numérique. La discrétisation d’équations di¤érentieels
ou équations aux dérivées partielles,mène souvent à la résolution des systèmes
linéaires de grandes taille avec pluieurs milliers d’inconnues par conséquent
il devient pratiquement impossiblede résoudre ces systèmes d’équationssans
l’utilisation d’ordinateur. IL s’agit alors de trouver des algorithmes de réso-
lution e¢ caces qui ne doit pas être coûteux en temps et calcul. Les systèmes
linéaires de la forme Ax = b interviennent dans un grand nombre de pro-
blèmes numériques, comme par exemple :
– Les problèmes d’interpolation, lorsque l’on cherche à construire une
fonction continue passant par N points (xi ; yi ) ;
– Le problème d’optimisation, par exemple le problème des moindres
carrées, où l’on cherche à trouver un vecteur x 2 Rn qui minimise
A(m n) b ;
– L’approximation des solutions des équations aux dérivées partielles, que
se soit par di¤érences …nies ou par éléments …nis.
où f et c sont donnés sur [0; 1] avec c 0.Un tel problème est appelé
problème aux limites, car la fonction inconnue doit satisfaire les condtions
aux limites u (0) = u (1) = 0 posées à la frontière de l’intervalle ouvert sur
laquelle l’équation di¤érentielle doit être satisfaite
La méthode d’approximation de la solution d’une équation di¤érentielle
par di¤érences …nies, consiste à approcher la valeur de la solution en un
nombre …ni des points, appelés points de discrétisation du maillage. A…n de
discrétiser ce problème de façon approchée , on introduit un entier N 1,
1.2. LA MÉTHODE DES DIFFÉRENCES FINIES POUR UN PROBLÈME AUS LIMITES EN DIMEN
u0 = 0 et uN +1 = 0.
On suppose que la solution u est quatre fois continûment dérivable sur l’in-
tervalle [0; 1]. La formule de taylor permet d0 écrire, pour i = 1; :::n :
h2 00 h3 (3) h4 +
u (xi+1 ) = u (xi ) + hu0 (xi ) +u (xi ) + u (xi ) + u(4) xi + i h
2 6 24
h2 00 h3 (3) h4
u (xi 1 ) = u (xi ) hu0 (xi ) + u (xi ) u (xi ) + u(4) xi + i h
2 6 24
+
avec 1 < i < i < 1.
1.3 Rappels
On appelle système d’équations algèbriques d’ordre n (n entier positif),
un système de la forme
Ax = b
où A (aij ), 1 i; j n désigne une matrice de taille n et b = (bi ), 1 i n
un vesteur collone réel et x = (xi ), 1 i n est le vecteur des inconnues du
système.
2x1 + 3x2 = 5
Example 2 Soit le système
4x1 + 3x2 = 1
le déterminant det (A) = 18, le système a une solution unique x1 =
x2 = 1:
1.3. RAPPELS 5
2x1 + 3x2 = 5
Example 3 Le système
4x1 + 6x2 = 10
det (A) = 0, alors le système a une in…nité de solutions :(1; 1)+ (3; 2) ;
( 2 R).
2x1 + 3x2 = 5
Example 4 et le système
4x1 + 6x2 = 9
encore det (A) = 0, mais le système n’admet pas de solution.
Theorem 7 Les trois propriètés suivantes sont équivalentes, poir une ma-
trice carée A :
1. A est inversible,
2. det (A) 6= 0;
3. les vecteurs colonnes de A sont linéairement indépendants:
e=x e:
x
1.5. SENSIBILITÉ ET CONDITIONNEMENT 7
x = jx x ej
= jvaleur approchee (calculee) valeur theorique (exacte)j
jx ej
x
rx =
jxj
jvaleur approchee (calculee) valeur theorique (exacte)j
=
jvaleur theorique (exacte)j
Example 8 Considérons :
qui admet donc, une solution, mais cette fois la solution est donnée
par x1 = 5 ; x2 = 5. On conclut donc que, bien que les deux deniers
systèmes sont voisins, leurs solutions sont très di¤érents.
qui n’a aucunne solution. Un petit changement dans les données 0:3 ! 13
a provoqué des grands changements dans les résultats, une perte totale de
solution. Comment l”expliquer ceci ? Peut-on le prédire ?
– Perturbation sur le second membre b : remplaçons b par eb = (32:1; 22:9; 33:1; 30:9)t
correspond à une ereur relative de 1=200 sur chacun des termes. La
solution de ce système devient x e = (9:2; 12:6; 4:5; 1:1)t , ce qui
conduit à une erreur de relative d’environ 10=1 ;
– Perturbation sur la matrice A : de même si l’on remplace la matrice A
par 0 1
10 7 8:1 7:2
B 5 C
Ae = B 7:08 50:4 6 C
@ 8 5:98 9:89 9 A
6:99 4:99 9 9:98
on obtient la solution ye = ( 81; 137; 34; 22)t qui n’a aussi plus
rien avoir avec x.
e= 1 1
A
1 1
cela se produit indépendement de la grandeur du paramètre .
eb = 2
2+
la solution devient,alors x = (1; 1)t , qui est complètement di¤érente de la
solution initiale x.
10CHAPITRE 1. MOTIVATION ET CLASSIFICATION DES MÉTHODES
Las norems suivantes dites p norms sont très utiles en calcul ainsi qu’en
analyse.
Les trois normes ci-dessous sont les normes les plus utilisées :
– La norme une (1 norm) :
X
n
kxk1 = jxi j
i=1
1.7. LES NORMES MATRICIELLES 11
kx ek = A
x 1
b eb
kAk2 = (A)
(A) kAk ;
donc j j kAk. Cette égalité est vraie pour toute valeur propre de A. elle
est en particulier quand j j est égal au rayon spectral (A). En d’autre terme
(A) = inf (kAk).
k:k
14CHAPITRE 1. MOTIVATION ET CLASSIFICATION DES MÉTHODES
1.8 Le conditionnement
Le système Ax = b est sensible aux erreurs d’arrondis, c’est à dire, Une
erreur in…me sur le second membre donne comme conséquence une erreur
notable sur la
solution calculée. On dira que la matrice A est mal conditionnée ( ill-
conditioned)
cond (A) 1:
k xk 1 k bk
kAk A :
kxk kbk
Ainsi le conditionnement d’une matrice contrôle la façon dont les erreurs
se propagent sur les solutions du système linéaires. Une petite incertitude
sur les données (A ou b) peut être ampli…ée de façon considérable dans la
solution du problème, dans ce cas on dit que la matrice du système est mal
conditionnée, cond (A) = kAk kA 1 k est très élevé. L’inconvénient la formule
du conditionnement cond (A) = kAk kA 1 k est qu’il n’est pas facile à calculer
d’autant plus que nous ne connaissons pas la forme explicite de la matrice
A 1.
Dans le cas particulier d’une matrice symètrique et pour la norme matri-
cielle k:k2 , on a néamoins le résultat qui nécessitepas le calcul de A 1 mais
seulement la connaissance des valeurs propres de A :
max
cond (A) =
min
où max est la valeur propre maximale et min est la valeur propre minimale.
524.0568
>>det(H3)
ans
4.6296 10 4 :
Example 24 Soit le système
6x1 2x2 = 10
11:5x1 + 3:85x2 = 17
la solution de ce système est :
8
>
> a12 b2 a22 b1 ( 2) (17) (3:85) (10) 4:5
< x1 = = = = 45
a12 a21 a11 a22 ( 2) (11:5) (6) (3:85) 0:1
>
> a21 b2 a11 b1 (11:5) (10) (6) (17) 13
: x2 = = = = 130
a12 a21 a11 a22 ( 2) (11:5) (6) (3:85) 0:1
si on e¤ectue un petit changement sur l’élément a22 = 3:85 qui devient 3:84
le système perfurbé devient
6x1 2x2 = 10
11:5x1 + 3:84x2 = 17
la solution devient alors x1 = 110 et x2 = 325. Un petit changement da la
mtrice A a entrainé un grand changement dans la solution.
Pour voir ce phénomène, on a
6 2 1 38:5 20
A= et A =
11:5 3:85 115 60
en utlisant la norme in…ni (1 norm), on aura le nombre de condition
1
cond(A) = kAk1 : A 1
= (15:35) (175) = 2686:25
et
1
cond(A) = kAk1 : A 1
= (17:5) (153:5)
et untilisant la norme euclidienne (2 norm) le nombre de condition peut
être calculé pzr la fonction Matlab norm (A; 2)
1
cond(A) = kAk2 : A 2
= (13:6774) (136:774) = 1870:7.
Example 25 Considérons le système linéaire suivant (R. S. Wilson)
Ces résultats montrent que le nombre de condion est très élevé,peu importe
la norme untilisée. Ceci veut dire que ce système est mal-conditionné.
1.8. LE CONDITIONNEMENT 17
Méthodes directes
19
20 CHAPITRE 2. MÉTHODES DIRECTES
xN = bN
et pour i = N 1, N 2, ::::, 3, 2, 1 /
X
N
x i = bi aij xj . (2.2)
j=i+1
On obtient le système
8
< 4x1 + 8x2 + 12x3 = 4
2x2 + 4x3 = 2 , L1 Ax = L1 b:
:
5x2 + 12x3 = 9
x3 = 2, x2 = 3 et x1 = 1
L 2 L1 A = U
1 1
L 1 L2 L 2 L1 A = L 1 1 L2 1 U
22 CHAPITRE 2. MÉTHODES DIRECTES
A = LU
où 0 1
4 8 12
U =@ 0 2 4 A
0 0 2
est la matrice triangulaire supérieure …nale, tandis que la matrice triangulaire
inférieure 0 1
1 0 0
L = L1 1 L2 1 = @ 34 1 0 A
2 5
4 2
1
qui contient au dessus de la diagonale principale les "multiplicateurs mij "
qu’on a utilisés, 8
>
< L = (mij )
(k)
aik (2.4)
>
: mik = (k) ; i = k; :::; n
akk
à noter que mii = 1.
On parle dans ce cas de Factorisation LU de la matrice A.
Remark 27 A…n que l’algorithme de Gauss arrive à sa …n, il faut que tous
(k)
les termes akk dans l’équation (2:4) qui correspond aux termes diagonaux de
la matrice triangulaire supérieure U , et qu’on appelle pivots, soient non nuls.
Ceci peut être véri…t par exemple si :
1. La matrice A est symètrique dé…nie positive, i:e:le produit scalaire hx; Axi >
0 pour tout vecteur x non nnul ;
2. La matrice A est une matrice à diagonale dominante stricte, i:e ion
X
N
jaij j > jaij j 1 i n:
j=1;j6=i
En e¤et, maintenant nous pouvons diviser la la 1ere ligne par le 1er pivot
a11 = 6 Cette manière de faire s’appelle pivotage partielle elle consiste à
changer deux équations dans le but d’avoir le plus grand pivot possible en
24 CHAPITRE 2. MÉTHODES DIRECTES
valeur absolue.
8 0 1
< l1 l1 1 2 3
l20 2
l + l2 ceci nous A(1) = @ 0 0 5 A
: 0 1 1
7
l3 l
1 1
+ l3 0 6 14
(1)
la deuxième étape ne peut être e¤ectuée car le deuxième pivot a22 vaut 0,
l’algorithme alors s’arrête. On remarque qui si on permute la deuxième ligne
avec la troisième, la forme désirée sera obtenue.
On peut maitenant énonncer le théorème suivant :
Theorem 29 Si A est une matrice carrée d’ordre n dont toutes les sou-
matrices principales sont régulières, alors il existe une décomposition unique
A = LU
où L est une matrice triangulaire inferieure, avec les valeurs 1 dans sa dia-
gonale. De plus la matrice U est celle obtenue par l0 algorithme de Gauss.
on peut véri…er facilement que A est symètrique dé…nie positive i.e. hAx; xi >
0 pour tout x 6= 0
Pour plus de détails voir le help de Matlab ( help gallery ), dans les
versions récentes.
Méthodes itératives
3.1 Introduction
Les méthodes directes sont certes intéressantes, mais lorsque le système
devient de grande taille, les calculs deviennent trop fastidieux. A titre d’exemple
la méthodes de Gauss n’est pas adaptée aux systèmes de plus de vingt équa-
tions. De plus, les méthodes directes exigent un nombre d’opérations à virgule
‡ottante de l’ordre de n3 lorsque n tend vers l’in…ni ce qui les rend lentes
pour de grandes valeurs de n. D’autre part, les calculs sur machine ne nous
donnent pas la solution exacte à cause des erreurs d’arrondi ceci pose les
problèmes d’instabilité. Il s’avére donc, judicieux de rechercher une solution
approchée.
En e¤et, les méthodes itératives deviennent indispensables dès que la taille
n du système est très grande. De tels systèmes apparaissent par exemple
dans les techniques de résolution numérique d’équations aux dérivées par-
tielles. Les matrices des systèmes obtenus sont en général creuses "sparse"
(c’està-dire qu’elles ont beaucoup de 0). Comme on a vu, par example dans
la méthode des di¤érences …nis. Dans ce cas opeut utiliser les méthodes ité-
ratives de résolution, qui sont beucoup plus rapides, simples à programmer
et prennent moins d’espace dans la mémoire de la machine. En revanche le
temps de calcul souvent est trop long.
Dans ce chapitre, on met en place un type de méthodes numériques tout
à fait di¤érent. Il ne s’agit plus de résoudre un système linéaire de grande
taille mais plutôt de construire une suite de vecteurs x(k) k 1 convegeant
27
28 CHAPITRE 3. MÉTHODES ITÉRATIVES
lim x(k) = x:
k!1
x = Bx + c: (3.1)
r(k) = b Ax(k)
et l’erreur à l’étape k
e(k) = x(k) x
C’est ce qu’on appelle une méthode itérative. Evidement une méthode
itérative converge si et seulement si l’erreur e(k) tend vers zero quand k tend
vers l’in…n. On dit aussi que la est convergente si r(k) ! 0 quand k ! 1. Le
calcul devrait être interrompu à la première itération pour laquelle l’erreur
est su¢ sament petite, c’est à dire le premier entier naturel k tel que
où est une tolérence …xée et k:k une norme matricielle subordonnée. Mais
comme la solution exacte n’est évidement pas connues il faudra dé…nir un
critère d’arrêt plus commode.
3.1. INTRODUCTION 29
Proof.
1. Véri…ons tout d’abord que (P t + N ) est symètrique. Comme A = P
N , on a
P t + N = At + N t + N = A + N + N t = P + N t
2. Montron que (P 1 N ) < 1 revient à montrer que < 1.pour toute va-
leur propre de la matrice (P 1 N ). Soit une valeur propre quelconque
la matrice P 1 N:Soit donc, v 6= 0 tel que (P 1 N ) v = v: On pose
u = P 1 Av
= I P 1N v = v v:
Soit encore
v=v u
On a alors
j j2 v t Av = ( v)t A ( v)
= (v u)t A (v u)
= v t Av v t Au ut Av + ut Au
= v t Av (Av)t u ut Av + ut Au
= v t Av (P u)t u ut P u + ut Au
= v t Av ut P t + P A u
= v t Av ut P t + N u
de la dernière égalité on
v t Av j j2 v t Av = ut P t + N u
1 j j2 v t Av = ut P t + N u
3.1. INTRODUCTION 31
où 0 1
a11 0 :: :: 0
B 0 a11 0 :: 0 C
B C
D=B
B :: :: :: :: :: C,
C
@ :: :: 0 an 1n 1 0 A
0 :: :: 0 ann
0 1
0 0 :: :: 0
B a21 0 0 :: 0 C
B C
E=B
B :: :: :: :: :: C,
C
@ :: :: :: 0 0 A
an1 :: :: ann 1 0
et 0 1
0 a12 ::: ::: a1n
B 0 0 a23 ::: a2n C
B C
F =B
B ::: ::: ::: ::: ::: C
C
@ ::: ::: ::: 0 an 1n : A
0 ::: ::: 0 0
Il est facile alors, de voir que B = D 1 (E + F ) et c = D 1 b.
où D est une matrice diagonale composée des coe¢ cients diagonaux de
la matrice A, E est la mtrice triangulaire inférieure de coe¢ cients
Remark 36 Cette méthode ne peut être dé…nie que si tous les élément dia-
gagonaux aii sont non nuls.
x(k+1) = D 1
(E + F ) x(k) + D 1 b
1
= D (D D + E + F ) x(k) + D 1 b
1
= D (D [D E F ]) x(k) + D 1 b
1
= D (D A) x(k) + D 1 b
= I D 1 A x(k) + D 1 b
= x(k) D 1 Ax(k) + D 1 b
= x(k) + D 1 b Ax(k)
| {z }
(k) 1 (k)
= x +D r
On en déduit
(k)
(k+1) (k) r
xi xi = i
aii
Example 37 Soit le système ax = b de la forme
10 1 11
A= ; b=
2 10 12
qui a pour solution exacte x = (1, 1)t . Cette méthode génére une suite vec-
torielle
0 11=10 98=100 1002=1000
x(0) = , x(1) = , x(2) = , x(3) = ,
0 12=10 99=100 1004=1000
pour laquelle, on peut conjoncturer la convergence vers la solution exacte x.
Example 38 En revanche, soit
1 10 11 1
A= ; b= et la solution x = :
10 2 12 1
On génére lasuite :
0 11 49 501 2499
x(0) = , x(1) = , x(2) = , x(3) = , x(4) =
0 6 49 251 2499
qui est clairement divergente
Example 39 Soit le système Ax = b de la forme
8
< 10x1 + 2x2 x3 = 4
x1 8x2 x3 = 10 (3.4)
:
x1 2x2 + 6x3 = 16:
On considère dans la 1ere (resp. la 2eme , la 3eme ) équation du (3:4) que la 1ere
x1 (resp. la 2eme , la 3eme ) variable qui est l’inconnue, l’itération de Jacobi
est donc : 8 h i
>
> x
(k+1)
= 1
4 2x
(k)
+ x
(k)
>
< 1 10
h 2 3
i
(k+1) 1 (k) (k)
x2 = 8 10 x1 + x3
>
> h i
>
: (k+1) (k) (k)
x3 = 16 16 x1 + 2x2 :
A = (D E) F
x(k+1) = Bx(k) + c
x x(k) = B x x(k 1)
(3.6)
x x(k) = B k x x(0) :
Ceci montre que la suite x(k) k converge vers la solution exacte x du système
Ax = b, si et seulement si B k ! 0 quand x ! 1 ; ( à moins que,bien sûr, la
donnée initiale x(0) soit la même que la solution exacte x ). On peut, alors,
énoncer le théorème :
Proof. Si est une valeur propre d’une matrice B alors il existe un vecteur,v
non nul, dit vecteur propre de B, tels que Bv = v, alors
X
i 1 X
n
jaii j > jaij j + jaij j ; i = 1; :::; n: (3.7)
j=1 j=1+1
X
i 1 X
n
jaij j + jaij j
ja12 j a a ja j j=1 j=1+1
+ ::: 1i 1 + 1i+1 + ::: 1n = <1
ja11 j ja11 j ja11 j ja11 j ja11 j
kBJ k < 1
par la formule
" #
(k+1) ! X
i 1
(k)
X
n
(k) (k)
xi = bi aij xj aij xj + (1 !) xi ; i = 1; :::; n
aii j=1 j=i+1
En terme matricielle
1
BJ! = !D (E + F ) + (1 !) I
Cette amélioration a pour but d’accelérer considérablement la convergence
de la méthode de Jacobi. La matrice d’itération correspondante est, donc,
BJ! = !BJ + (1 !) I:
Theorem 47 Si la matrice A du système Ax = b est symètrique dé…nie
positive alors, la méthode JOR est convergente si
2
0<!< :
(D 1 A)
Theorem 48 Si la méthode de Jacobi converge, alors la méthode JOR converge
pour 0 < ! < 1:
A = P N
= (D E) F
1
P = D E
!
1 !
N = D + F:
!
Notons ici, que
P N =A
pour que l’itération
P x(k+1) = N x(k) + !b
soit équivalente à l’itératio de Gauss-Seidel P x(k+1) = N x(k) + b. Cette mé-
thode est appellée Over-Relaxation ou Under-relaxation selon ! > 1 ou
! < 1, le cas ! = 1 donne l’itération de Gauss-Seidel. Matriciellement,
la méthode actuelle consiste à choisir une approximation initiale arbitraire
x(0) ; généralement un vecteur nul, puis, on calcule x(k) via
1 1
(k+1) 1 1 ! (k) 1
x = D E D+F x +! D E b:
! ! !
Proof.
1
1. On calcule le déterminant de B! = P N avec
P = !1 D E
N = 1 !! D + F
1
det(B! ) = det P N
1
= det P det (N )
1
= [det (P )] det (N )
mais P et N sonnt des matrices triangulaires, leurs déterminants valent
le produit de leurs éléments diagonaux
1 ! n
det (D)
det (B! ) = !
1 n
= (1 !)n :
!
det (D)
3.5. MÉTHODES DE RELAXATION 45
dans ce cas, la méthode de Gauss-Seidel converge plus vite que celle de Jacobi.
46 CHAPITRE 3. MÉTHODES ITÉRATIVES
Chapitre 4
La méthode du gradient
conjugué
4.1 Objectif
L’idée est si A est symétrique dé…nie positive, la résolution du système
Ax = b est équivalente à la détermination de la valeur qui minimise la forme
quadratique (dite énergie du système ) q (x) = 12 hAx; xi hb; xi, de gradient
rq (x) = Ax b, et donc rq (x) = 0 , Ax = b.
4.2 Rappels
4.2.1 Relations matricielles utiles
Si x et b sont deux vecteurs (n 1) et A une matrice symétrique (n n) ;.alors
d
xT Ax = AT x + Ax = 2Ax
dx
d T
c Ax = ct A
dx
d
xT x = 2xt
dx
d
xT b = b.
dx
47
48 CHAPITRE 4. LA MÉTHODE DU GRADIENT CONJUGUÉ
q : Rn ! R
q (x) = xT Ax + Lx + b
2 3 x1 x1
q (x) = x1 x2 + 2 1 +1
3 1 x2 x2
= xT Ax + Lx + b.
4.3 Introduction
La méthode du gradient conjugué est en fait une méthode d’optimisation
pour la recherche du minimum dans Rn de la forme quadratique q de Rn dans
4.4. PROBLÈME À RÉSOUDRE 49
R dé…nie par : q (x) = 12 hAx; xi hb; xi. Mais on peut montrer que si la ma-
trice A est symétrique dé…nie positive, la recherche de x minimisant la forme
quadratique q est équivalent à la résolution du système Ax = b. Générale-
ment, la taille de la matrice A est très grande, on ne peut pas, donc, envisager
d’e¤ectuer un tel nombre d’itérartions pour résoudre le systèmeAx = b. De
plus, si on utilise la méthode du gradient conjugué brutalement on obtiendra
pas la solution en n itérations à cause de l’accumulation des erreurs d’ar-
rondis. On a alors recours à de techniques de préconditionnement que nous
reviendrons sur ce point en …n de chapitre.
La méthode du gradient gradient conjugué qu’on va étudier dans ce cha-
pitre est celle trouvée dans les années cinquante par Hestens et Stiefel et
publiée en 1952 dans la revue "". Cette méthode se base sur la recherche des
directions successives qui nous permet d’atteindre la solution exacte d’un
système linéaire de maAx = b trice symétrique dé…nie positive. Cette mé-
thode représente aussi une alternative à l’algorithme d’élimination de Gauss.
Elle est même souvent préférée à la méthode de Gauss lorsque les systèmes
d équations sont grands.
0 @q 1
@x1
B @q C
rq (x) = B @x2 C= d 1
hAx; xi hb; xi =
1 T
A +A x b = Ax b
@ ::: A dx 2 2
@q
@xn
50 CHAPITRE 4. LA MÉTHODE DU GRADIENT CONJUGUÉ
d0 Ad1 = 0
0 1
3 0 1
(1; 0; 0) @ 0 4 2 A (x1 ; y1 ; z1 ) = 3x1 + z1 = 0
1 2 3
4 2
Exercise 52 Pour la matrice A = . Montrer qu’elle est symétrique
2 2
dé…nie positive, puis trouver 3 vecteurs A orthogonaux. Si la matrice A = I,
qu’est ce que vous pensez ?
xk+1 = xk + k pk
dTi Adj = 0 8i 6= j
q (x1 ) q (x0 ) :
choisir x0
Calculer xk+1 = xk + k dk avec k 0
1
q(x) = hAx; xi hb; xi
2
est strictement convexe. Elle possède un unique minimum, ce minimum est
x solution de du système Ax = b en question. De plus, pour tout vecteur y
di¤érent de x solution de Ax = b on a q(x) < q(y).
le terme entre crochets est nul en utilisant le fait que la matrice A est sy-
métrique et Ax = b, à véri…er chez vous ! Le troisième terme 12 hAz; zi 0
dites pourquoi ?
Donc la solution x du système Ax = b réalise le minimum de la forme
quadratique q. Pour l’unicité de x voir la bibliographie.
On va construire un méthode itérative qui cherche, à chaque itération, de
diminuer (ou minimiser ) la forme quadratique q. Supposons donc que l’on
ait obtenu xk et calculons le terme qui suit xk+1 de telle sorte que la forme
quadratique véri…e
q(xk+1 ) < q(xk ).
f ( ) = q (xk + dk+1 ) :
1. Le choix simple est =constante, on dit que c”est une méthode à pas
…xe
2. Le choix plus compliqué est variable, dans ce cas la méthode est dite
à pas variable.
4.6. MÉTHODE DU GRADIENT OU DE LA PLUS GRANDE PENTE55
xk+1 = xk + (Axk b) = (I A) xk b.
ek+1
= k(I A)k < 1
ek
i.e :
j1 ij < 1; 1 < i < n,
la valeur optimale est obtenue pour
(1 opt n ) =1 opt n
2
donc opt = 1+ n
.
1
1 et n sont respectivement la plus petite et la plus grande valeur propre de la matrice
A. Pour A symétrique dé…nie positive le nombre de condition = n1 .
56 CHAPITRE 4. LA MÉTHODE DU GRADIENT CONJUGUÉ
d(k) = rq x(k)
où r(k) est le vecteur résiduel pour l’étiré x(k) .du système Ax = b. Il faut
encore sélectionner ou chercher une valeur pour le pas d’itération k . On est
donc devant un problème de minimosation unidimensionel suivant :
1
= min (xk + k dk )T A (xk + k dk ) (xk + k dk )
T
b
0 2
i.e :
d
q (xk + k dk ) = 0
d
dTk [A (xk + k dk ) b] = 0
dTk (Axk b) = T
k dk Adk
rkT rk
= k
rkT Ark
4.6. MÉTHODE DU GRADIENT OU DE LA PLUS GRANDE PENTE57
Veri…ez ce résultat.
En d’autres terme, on veut que le pas k soit tel que q 0 ( k) = 0,
58 CHAPITRE 4. LA MÉTHODE DU GRADIENT CONJUGUÉ
Annexe A
Quelques programmes en
MATLAB
function A=lu_gauss(A)
%LU_GAUSS LU factorization sans pivot.
% A = LU(A) stocke une matrice triangulaire sup.dans la partie sup de A
%et une matrice triangulaire inf. dans lapartie inf de A
% les \U{e9}l\U{e9}ments diagonaux sont tous \U{e9}gaux \U{e0} 1
A=[1 2 2;1 3 -2;3 5 8];
n=3;m=3;
[n,m]=size(A);
%if n ~= m; error(’A n"est pas une matrice carr\U{e9}e’); else
for k = 1:n-1
for i = k+1:n
A(i,k) = A(i,k)/A(k,k);
, lments
if A(k,k) == 0, error(’les Ãllà , diagonaux sont nuls’); end
for j = k+1:n
A(i,j) = A(i,j) - A(i,k)*A(k,j);
end
end
end
end
59
60 ANNEXE A. QUELQUES PROGRAMMES EN MATLAB
%Departemnt de maths
%Univ de msila
function [xvect,err,nit]=jacobi(x0,n_max,tol,A,b)
%
% [xvect,err,nit]=jacobi(x0,n_max,tol,A,b)
%
% M\U{e9}thode de Jacobi pour la r\U{e9}solution du syst\U{e8}me lin\U{e9}aire
% Crit\U{e8}re d’arr\U{ea}t: ||b - A*x_n||<tol or it=n_max
%
% INPUT
% =====
% x0 Vecteur initial (vecteur colomne)
% n_max Nombre maximal d’iterations
% tol Tol\U{e9}rance sur le crit\U{e8}re d’arr\U{ea}t
% A, b Matrice et terme de droite du syst\U{e8}me lin\U{e9}aire
%
% OUTPUT
% ======
% xvect Matrice contenant tous les vecteurs (colonnes) x_i calcules;
% xvect(:,i) = i-eme vecteur calcul\U{e9}
% err Vecteur contenant la norm du residu
% ||b-Ax_i|| a chaque it\U{e9}ration
% nit Nombre d’it\U{e9}rations effectu\U{e9}es
%
% NOTE: la solution calcul\U{e9}e est la derni\U{e8}re colonne de la matrice x
%
x0=[0; 0; 0]
n_max=19; tol=0.0001;
%A=[10 2 -1;1 -8 -1;1 2 6]
b=[4;10;16]
%
P=diag(diag(A));
N=P-A;
B=eye(size(A))-inv(P)*A;
bb=P\b;
r=b-A*x0;
61
erreur=norm(r);
nit=1;
xvect(:,1)=x0;
err(1)=erreur;
while (nit <= n_max) & (erreur > tol)
xvect(:,nit+1) = B*xvect(:,nit) +bb;
r=b-A*xvect(:,nit+1);
erreur = norm(r);
err(nit+1) =erreur;
nit = nit + 1;
end
return
%
% NOTE: la solution calcul\U{e9}e est la derni\U{e8}re
% colonne de la matrice xvect
%
x0=[0; 0; 0]
n_max=100;
tol=0.000000000000000000000000000001;
A=[2 1 1 ; 1 1.5 1; 1 1 1.9]
b=[4;5.5;3.9]
P=tril(A)
F=-triu(A,1)
B=inv(P)*F
bb=P\b;
r=b-A*x0;
erreur=norm(r);
nit=1;
xvect(:,1)=x0;
err(1)=erreur;
while (nit <= n_max) & (erreur > tol)
xvect(:,nit+1) = B*xvect(:,nit) +bb;
r=b-A*xvect(:,nit+1);
erreur = norm(r);
err(nit+1) =erreur;
nit = nit + 1;
end
return
z=1/2*(y1.^2*A(1,1)+y2.*y1*A(2,1)+y1.*y2*A(1,2)+y2.^2*A(2,2))-b(1)*y1-b(2)*y2;
%figure(1)
%h=mesh(y1,y2,z)
%xlabel(’x1’);
%ylabel(’x2’);
%zlabel(’q(x1,x2)’);
%figure(2)
%hold off
x=A\b
contour(y1,y2,z)
hold on
x1=x(1)
x2=x(2)
plot(x(1),x(2),’xr’)