Méthodes itératives pour la solution d`un système linéaire

Transcription

Méthodes itératives pour la solution d`un système linéaire
Méthodes itératives pour la solution d’un
système linéaire
Stéphane Canu et Gilles Gasso
{stephane.canu, gilles.gasso}@litislab.eu
ASI 3 - Calcul numérique pour l’ingénieur
November 19, 2016
Plan
1
Principe des méthodes itératives
Motivations
2
Les méthodes de Jacobi, de Gauss Seidel et de la relaxation
Les itérations de Jacobi
Les itérations de Gauss Seidel
Les itérations de relaxation
Critères de convergence
3
Convergence des méthodes itératives
Formulation matricielle des itérations
Condition suffisante de convergence
Normes matricielles
Théorèmes de convergence
4
Etude des perturbations : notion de conditionnement
5
Les méthodes de gradient
6
Conclusion
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
2 / 42
Exemple introductif
On cherche à résoudre le système suivant :


2x1
1x1
3x1

+4x2
+3x2
−x2
−x2
−2x3
+x3
+2x3
−6x4
−6x4
−6x4
−6x4
= −6
=0
=8
=6
Si nous connaissons un vecteur x ∗ 1 , x ∗ 2 , x ∗ 3 , x ∗ 4 "proche" de la solution, on peut
calculer une nouvelle approximation de la solution











−6 − 4x ∗ 2 + 2x ∗ 3 + 6x ∗ 4
2
0 − 1x ∗ 1 − 0x ∗ 3 + 6x ∗ 4
x2 =
3
8 − 4x ∗ 1 + x ∗ 2 + 6x ∗ 4
x3 =
1
6 − 4x ∗ 1 + x ∗ 2 − 2x ∗ 3
x4 =
−6
x1 =
et ainsi de suite jusqu’à convergence.
La politique des « petits » pas...
on cherche à créer une suite de vecteurs {x (k) , k ∈ IN} qui converge vers xe
solution de Ae
x =b
Plan
1
Principe des méthodes itératives
Motivations
2
Les méthodes de Jacobi, de Gauss Seidel et de la relaxation
Les itérations de Jacobi
Les itérations de Gauss Seidel
Les itérations de relaxation
Critères de convergence
3
Convergence des méthodes itératives
Formulation matricielle des itérations
Condition suffisante de convergence
Normes matricielles
Théorèmes de convergence
4
Etude des perturbations : notion de conditionnement
5
Les méthodes de gradient
6
Conclusion
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
4 / 42
Trois méthodes itératives
Système à résoudre : Ae
x = b avec A ∈ Rn×n , xe, b ∈ Rn
Trois méthodes itératives
(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 existe plein d’autres méthodes...
la question centrale : quand convergent-elles ?
question corollaire : à quelle vitesse convergent-elles ?
parmi celles qui convergent on prend celle qui converge le plus vite !
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
5 / 42
La méthode de Jacobi
Ax = b
⇐⇒
i−1
X
Aij xj + Aii xi +
j=1
n
X
Aij xj = bi
∀ i = 1, n
j=i+1
Fonction x ← Jacobi(A, b, x)
Tant que (on a pas convergé) faire
Pour i = 1, n faire
P
Pn
bi − i−1
j=1 Aij xj −
j=i+1 Aij xj
yi =
Aii
Fin Pour
Pour i = 1, n faire
xi = yi
Fin Pour
Fait
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
6 / 42
Exemple : méthode de Jacobi

3
A= 1
−1
1
2
1

 
−1
1
0  avec b = 1
4
1
et
x
(0)
 
0
= 0
0
Itération 1
y1 =
b1 −A12 ∗x(2)−A13 ∗x(3)
A11
y2 =
b2 −A21 ∗x(1)−A23 ∗x(3)
A22
y3 =
=
1−0+0
3
=
1
3
=
1−0−0
2
=
1
2
b3 −A31 ∗x(1)−A32 ∗x(2)
A33
=
1+0−0
4
=
1
4
y1 =
b1 −A12 ∗x(2)−A13 ∗x(3)
A11
=
1−1/2+1/4
3
y2 =
b2 −A21 ∗x(1)−A23 ∗x(3)
A22
=
1−1/3−0
2
y3 =
b3 −A31 ∗x(1)−A32 ∗x(2)
A33
=
1+1/3−1/2
4
(1)
→x
=
1/3
1/2
1/4
!
Itération 2
norm(A ∗ x0 − b) = 1.7321
norm(A ∗ x1 − b) = 0.4488
norm(A ∗ x2 − b) = 0.1718
=
=
3
12
!
1
3
=
→ x(2) =
5
24

x2
0.2500
A\b = 0.3333
0.2083
3/12
1/3
5/24

0.2941
0.3529
0.2353
Les itérations de Gauss Seidel
Fonction x ← Gauss_Seidel(A, b, x)
Tant que (on a pas convergé) faire
Pour i = 1, n faire
P
Pn
bi − i−1
j=1 Aij xj −
j=i+1 Aij xj
xi =
;
Aii
Fin Pour
Fait
plus « simple », mais non parallélisable
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
8 / 42
Exemple : méthode de Gauss-Seidel

3
A= 1
−1
1
2
1

 
−1
1
0  avec b = 1
4
1
et
x
(0)
 
0
= 0
0
Itération 1
x1 =
b1 −A12 ∗x(2)−A13 ∗x(3)
A11
x2 =
b2 −A21 ∗x(1)−A23 ∗x(3)
A22
x3 =
b3 −A31 ∗x(1)−A32 ∗x(2)
A33
=
1−0+0
3
=
1−1/3−0
2
=
1+1/3−1/3
4
=
1
3
!
=
1
3
=
(1)
→x
=
1
4
1/3
1/3
1/4
Itération 2
x1 =
b1 −A12 ∗x(2)−A13 ∗x(3)
A11
=
1−1/3+1/4
3
x2 =
b2 −A21 ∗x(1)−A23 ∗x(3)
A22
=
1−11/36−0
2
x3 =
b3 −A31 ∗x(1)−A32 ∗x(2)
A33
=
1+11/36−25/72
4
norm(A ∗ x0 − b) = 1.7321
norm(A ∗ x1 − b) = 0.0833
norm(A ∗ x2 − b) = 0.0852
=
11
36
=
25
72
=
!
→ x(2) =
69
288

x2
0.3056
A\b = 0.3472
0.2212
11/36
25/72
69/288

0.2941
0.3529
0.2353
Les itérations de relaxation
Fonction x ← Relaxation(A, b, x, ω)
Tant que (on a pas convergé) faire
Pour i = 1, n faire
!
P
Pn
bi − i−1
j=1 Aij xj −
j=i+1 Aij xj
xi = ω
+ (1 − ω)xi
Aii
Fin Pour
Fait
pour ω = 1 c’est Gauss Seidel
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
10 / 42
Quand s’arrêter ?
kxnew − xold k < ε
un nombre maximal d’itérations est atteint
Fonction y ← Gauss_Seidel(A, b, x, ε, n_ite_max)
Pour i = 1, n faire
yi = xi
xi = yi + 2 ∗ ε
Fin Pour
n_ite = 0
Tant que (kx−yk > ε ET n_ite < n_ite_max) faire
Pour i = 1, n faire
xi = yi
Fin Pour
Pour i = 1, n faire
P
Pn
bi − i−1
j=i+1 Aij xj
j=1 Aij yj −
yi =
Aii
Fin Pour
n_ite = n_ite + 1
Fait
Canu & Gasso (INSA Rouen - ASI)
iter
x = xold
y = xnew
November 19, 2016
11 / 42
Plan
1
Principe des méthodes itératives
Motivations
2
Les méthodes de Jacobi, de Gauss Seidel et de la relaxation
Les itérations de Jacobi
Les itérations de Gauss Seidel
Les itérations de relaxation
Critères de convergence
3
Convergence des méthodes itératives
Formulation matricielle des itérations
Condition suffisante de convergence
Normes matricielles
Théorèmes de convergence
4
Etude des perturbations : notion de conditionnement
5
Les méthodes de gradient
6
Conclusion
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
12 / 42
Formulation matricielle des itérations
Soit {x (k) ∈ Rn , k ∈ IN} la suite de vecteurs générés par une des 3
méthodes itératives.
On veut établir que chaque itération k correspond à la relation
matricielle
Mx(k+1) = Nx(k) + b
où M et N sont des matrices carrées de taille n et b un vecteur de Rn
On peut réécrire cette relation matricielle sous la forrme :
x(k+1) = M −1 N x(k) + M −1 b
=
C
x(k) +
d
Chaque méthode itérative (Jacobi, Gauss-Seidel ou relaxation) admet
sa matrice C = M −1 N et son vecteur d = M −1 b
La convergence des méthodes itératives dépend de la matrice C
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
13 / 42
Décomposition d’une matrice
Revenons au système Ax = b. Nous pouvons décomposer la matrice A

a11
a21
a31
A
a12
a22
a32
=

a13
a23 
a33
D

a11
0
0
 0
a22
0 
0
0
a33
diagonale
+

=
Ax

a11 x1 + a12 x2 + a13 x3
a21 x1 + a22 x2 + a23 x3 
a31 x1 + a32 x2 + a33 x3
=


=
a11 x1
 0
0
Dx
+0
+a22 x2
+0
U

0 a12 a13
0
0
a23 
0
0
0
triangulaire sup
+

+
+
+

+0
+0 
+a33 x3

+
L
0
0
a21
0
a31 a32
triangulaire

0
a21 x1
a31 x1

0
0
0
inf
(L + U)x

+a12 x2 +a13 x3
+0
+a23 x3 
+a32 x2
+0
Ax = Dx + Lx + Ux
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
14 / 42
Décomposition d’une matrice
Revenons au système Ax = b. Nous pouvons décomposer la matrice A
De manière générale : A = D + L + U avec :
D = diag (a11 , a22 , ..., ann )


0
0
...
...
0
0
...
...
0
a21


...
0
L = a31 a32 ...
 ...
0
0
an1 an2 ... an,n−1 0


0 a12 a13
...
a1n
0
...
...
a2n 
0


...
...
0

U=

...
a
a

n−2,n−1
n−2,n 
...
0
an−1,n 
0
0
...
0
0
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
15 / 42
Les itérations de Jacobi : forme matricielle
Le point fixe
Ax
(D + L + U)x
Dx + (L + U)x
Dx
=b
=b
=b
= −(L + U)x + b
Les itérations de Jacobi
Dx(k+1) = −(U + L)x(k) + b
x(k+1)
−1
= −D −1 (U + L) x(k) + |D{z
b}
|
{z
}
CJ
Canu & Gasso (INSA Rouen - ASI)
iter
dJ
November 19, 2016
16 / 42
Les itérations de Jacobi s’écrivent alors
Fonction x ← Jacobi(A, b, x)
Tant que (on a pas convergé) faire
Pour i = 1, n faire
i−1
n
X
X
bi −
Aij xj −
Aij xj
yi =
j=1
Fin Pour
Pour i = 1, n faire
xi = yi
Fin Pour
Fonction x ← Jacobi(A, b, x)
Tant que (on a pas convergé)
faire
x = D\ b − (L + U)x
Fait
j=i+1
Aii
Fait
x(k+1) =
x(k) +
CJ
|{z}
−D −1 (U+L)
Canu & Gasso (INSA Rouen - ASI)
iter
dJ
|{z}
D −1 b=D\b
November 19, 2016
17 / 42
Gauss Seidel et la relaxation
les itérations de Gauss Seidel s’écrivent
(D + L)x(k+1) = −Ux(k) + b
x(k+1)
= (D + L)−1 (−U) x(k) + (D + L)−1 b
|
{z
}
{z
}
|
dGS
CGS
et les itérations de relaxation s’écrivent
(D + ωL)x(k+1) = (1 − ω)D − ωU x(k) + ωb x(k+1) = ((D + ωL))−1 (1 − ω)D − ωU x(k) +
{z
}
|
Cr
((D + ωL))−1 (ωb)
|
{z
}
dr
Pour w = 1, on retrouve bien l’équivalence des formulations des méthodes
de Gauss Seidel et de la relaxation
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
18 / 42
Condition suffisante de convergence
x(k+1) = C x(k) + d
Si xe est solution du problème, on a xe = C xe + d et donc
x(k+1) − xe = C (x(k) − xe)
= C 2 (x(k−1) − xe)
...
= C k+1 (x(0) − xe)
Si maintenant on raisonne en norme :
erreur à l’étape k+1
z
}|
{
kx(k+1) − xek
= kC k+1 (x(0) − xe)k
≤ kC k+1 kkx(0) − xek ≤ kC kk+1 kx(0) − xek
| {z } | {z }
→0 ? erreur initiale
ce faisant, nous avons démontré le résultat suivant :
Theorem (convergence d’une suite vectorielle)
S’il existe une norme matricielle telle que kC k < 1 alors la suite x(k)
converge vers xe = (I − C )−1 d
Normes matricielles d’opérateur
C’est une norme construite à partir d’une norme vectorielle et définie par :
kC xk
x6=0 kxk
kC k = sup
Par construction on a bien :
kABxk ≤ kAkkBxk ≤ kAkkBkkxk
⇒ kABk ≤ kAkkBk
Exemples (théorèmes) :
X
kC k1 = max
|Cij |
j
kC k∞ = max
i
i
X
|Cij |
j
kC k2 =
I
√
max µi
où µi est valeur propre de C >C .
√
λi = µi est val. propre de C .
i
I
pour C symétrique : max |λi |
i
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
20 / 42
démonstrations : de manière générale nous allons montrer les deux inégalités
suivantes
φ(C ) ≤ kC k ≤ φ(C )
Cas de la norme kC k1 : on commence par trouver une borne sur cette norme :
kC k1
= sup
x6=0
= sup
x6=0
≤ sup
kC xk
kxk
P P
i j Cij xj kxk
P P
i
j |Cij ||xj |
kxk
X X
|xj |
≤ sup
|Cij |
kxk
x6=0 j
i
X
X
|xj |
≤ sup
max
|Cij |
j
kxk
x6=0 j
i
X
X |xj |
|Cij |
≤ sup max
j
kxk
x6=0
j
X i
≤ max
|Cij |
x6=0
j
car
|xj |
kxk
≤1
i
en choisissant le vecteur ej = (0, . . . , 0, 1, 0, . . . , 0)> , on atteint la borne
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
21 / 42
Le cas de la norme 2
on passe par le système des vecteurs propres : C > C vi = µi vi
x=
X
ξi vi
⇔
x = Pξ
;
kxk2 = ξ > P > Pξ =
X
i
ξi2
i
kC k22
kC xk2
= sup
2
x6=0 kxk
x> C > C x
= sup
kxk2
x6=0
P
x> C > C
i ξi vi
= sup
kxk2 x6=0
P
x>
i ξi µi vi
= sup
kxk2
x6=0 P
ξ 2 µi
= sup i i 2
kxk
x6=0
≤ max µi
i
Là encore, en choisissant le vecteur propre associé, on atteint la borne :
kC vi k2
= vi C > C vi = µi
kvi k2
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
22 / 42
Illustration 2d...
kAxk
= sup kAxk
x6=0 kxk
kxk=1
kAk = sup
Definition
rayon spectral
ρ(A) = max |λi |
1≤i≤n
Propriétés des normes (Op)
kAk > 0 si A 6= 0
kAk = 0 ⇔ A = 0
Propriétés des normes
P
kAk1 = maxj i |Aij |
P
kAk∞ = maxi j |Aij |
kkAk = |k|kAk
A sym. : kAk2 = ρ(A)
kA + Bk ≤ kAk + kBk
A sym. : ρ(A) ≤ kAk
p
kAk2 ≤ |Ak1 |Ak∞
kABk ≤ kAkkBk
Résumons nous (normes matricielles ?)
6
on cherche à résoudre Ax = b
on utilise une méthode itérative : x(k+1) = C x(k) + d
l’erreur...
e(k) = C k e(0)
... peut être contrôlée :
ke(k) k ≤ kC kk ke(0) k
si l’on trouve une norme telle que kC k < 1 la suite converge
définir une norme telle que
kC k k ≤ kC kk
7
définition :
8
théorèmes (bien pratiques...):
1
2
3
4
5
I
kC k = supx6=0
kC k1 = max
X
j
I
kC k∞ = max
I
kC k2 = max
i
9
|Cij |
i
X
i
√
kC xk
kxk
|Cij |
j
µi
on teste les différentes normes pour avoir kC k < 1
A quelles conditions sur A, la méthode itérative converge ?
Plan
1
Principe des méthodes itératives
Motivations
2
Les méthodes de Jacobi, de Gauss Seidel et de la relaxation
Les itérations de Jacobi
Les itérations de Gauss Seidel
Les itérations de relaxation
Critères de convergence
3
Convergence des méthodes itératives
Formulation matricielle des itérations
Condition suffisante de convergence
Normes matricielles
Théorèmes de convergence
4
Etude des perturbations : notion de conditionnement
5
Les méthodes de gradient
6
Conclusion
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
25 / 42
Le cas des matrices à diagonale dominante
Definition
Une matrice carrée A est à diagonale dominante si
n
X
.
∀i = 1, n
|Aii | >
|Aij |
j=1,j6=i
Theorem
Si A est à diagonale dominante alors les méthodes de Jacobi et de Gauss
Seidel convergent
Démonstration :
Jacobi : kC k∞ = kD −1 (L + U)k∞ = max
i
1 X
|Aij | < 1
|Aii |
j6=i
Gauss Seidel : on montre que si Gauss P
Seidel diverge,Palors A n’est pas
n
1
à diagonale dominante : 1 < maxi |Aii | i−1
j=1 |Aij | +
j=i+1 |Aij |. Les
détails de la preuve ne sont pas évidents...
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
26 / 42
Exemple : la matrice est-elle à diagonale
dominante ?


2 −1 0
0
−9
3 −1 1
−1 2 −1 0 
1


A1 = 1 −2 0 ; A2 = 
 0 −1 2 −1 ; A3 = −1
1 1 4
0
0 −1 2
−2



3
2
1
1

1 −1
0 0

8 −5
4 6
Remarques :
toute matrice à diagonale dominante est régulière
on retrouve ce type de matrice dans les méthodes à éléments finis
(cf meca/EP)
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
27 / 42
Le cas des matrices positives
Definition (rappel)
Une matrice carrée A est définie positive si elle est symétrique et 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 converge pour 0 < ω < 2
Démonstration : GVL page 512 théorème 10.1.2
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
28 / 42
Plan
1
Principe des méthodes itératives
Motivations
2
Les méthodes de Jacobi, de Gauss Seidel et de la relaxation
Les itérations de Jacobi
Les itérations de Gauss Seidel
Les itérations de relaxation
Critères de convergence
3
Convergence des méthodes itératives
Formulation matricielle des itérations
Condition suffisante de convergence
Normes matricielles
Théorèmes de convergence
4
Etude des perturbations : notion de conditionnement
5
Les méthodes de gradient
6
Conclusion
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
29 / 42
Étude des perturbations (ou des erreurs)

10
7
A=
8
7

 
 
7 8 7
32
1
23
 1
5 6 5
 ; b =   admet comme solution x =  
33
 1
6 10 9 
5 9 10
31
1


32, 1
22, 9

b + δb = 
33, 1
30, 9


9, 2
−12, 6

admet comme solution x + δx = 
 4, 5 
1, 1
Pour la norme infinie :
kδb k∞
= 0, 003
kbk∞
kδx k∞
= 13, 6
kxk∞
C’est la nature de la matrice A qui est en cause :
comment mesurer cet effet ?
Étude des perturbations (ou des erreurs)

10
7
A=
8
7

 
 
7 8 7
32
1
23
 1
5 6 5
 ; b =   admet comme solution x =  
33
 1
6 10 9 
5 9 10
31
1


32, 1
22, 9

b + δb = 
33, 1
30, 9


9, 2
−12, 6

admet comme solution x + δx = 
 4, 5 
1, 1
Pour la norme infinie :
kδb k∞
= 0, 003
kbk∞
kδx k∞
= 13, 6
kxk∞
C’est la nature de la matrice A qui est en cause :
comment mesurer cet effet ?
Conditionnement d’un système linéaire
Ax = b
A(x + δx ) = b + δb
1
kAk
≤
kxk
kbk
−1
−1
kδx k = kA δb k ≤ kA k kδb k ⇒ kδx k ≤ kA−1 k kδb k
kbk = kAxk ≤ kAk kxk
⇒
kδx k
kδb k
≤ kA−1 kkAk
kxk
kbk
cond(A) : conditionnement de A
cond(A) = kA−1 kkAk =
|λ1 |
|λn |
cond(A) proche de 1 : stable
cond(A) grand devant 1 : instable
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
31 / 42
Illustration en 2 d
Ax = b
a11 x1 + a12 x2 = b1
a21 x1 + a22 x2 = b2
cond(A) proche de 1 : stable
Canu & Gasso (INSA Rouen - ASI)
cond(A) grand devant 1 : instable
iter
November 19, 2016
32 / 42
Plan
1
Principe des méthodes itératives
Motivations
2
Les méthodes de Jacobi, de Gauss Seidel et de la relaxation
Les itérations de Jacobi
Les itérations de Gauss Seidel
Les itérations de relaxation
Critères de convergence
3
Convergence des méthodes itératives
Formulation matricielle des itérations
Condition suffisante de convergence
Normes matricielles
Théorèmes de convergence
4
Etude des perturbations : notion de conditionnement
5
Les méthodes de gradient
6
Conclusion
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
33 / 42
A définie positive : les méthodes de gradient
Theorem (Formulation variationnelle)
Si A est une matrice définie positive de taille n, alors :
Ax = b
⇐⇒
minn
x∈IR
1 >
x Ax − b> x
2
|
{z
}
J(x)
Démonstration :
J(x + εd) =
=
=
=
1
2
1
2
1
2
(x + εd)>A(x + εd) − b> (x + εd)
(x> Ax + εd>Ax + εx>Ad + ε2d> Ad) − b> x + εb> d
x> Ax − b> x + ε d>Ax − d> b + ε2 d> Ad
2
J(x)
+ εd> (Ax − b) + ε2 d> Ad
pour x = A−1 b, J(x + εd) ≥ J(x)
Ici ε est un scalaire réel et d ∈ IRn un vecteur quelconque.
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
34 / 42
Algorithme d’optimisation
Ax = b
⇐⇒
min 1
x∈IRn 2
x>Ax − b> x
J(x) =
1 >
x Ax − b> x
2
x(k+1) = x(k) + ρd
d : direction de descente
ρ : pas de descente
J(x(k+1) ) < J(x(k) )
lim x(k) = A−1 b
k→∞
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
35 / 42
calcul du pas optimal
d connu : x(k+1) = x(k) + ρd
J(x(k+1) ) = J(x(k) + ρd) = J(x(k) ) + ρd> (Ax(k) − b) +
ρ2 >
d Ad
2
∂J(x(k+1) )
= d> (Ax(k) − b) + ρd> Ad
∂ρ
∂J(x(k+1) )
=0
∂ρ
⇔
ρ=−
d> (Ax(k) − b)
d> Ad
Tant que (on n’a pas convergé) faire
d =direction_de_descente(A, b, x)
>
ρ = − d d(Ax−b)
> Ad
x = x + ρd
Fait
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
36 / 42
Illustration 2d
J(x) =
1 >
x Ax − b> x
2
lignes d’iso cout : {x ∈ IR2 | J(x) = Cte }
on choisit l’opposé de la direction du gradient : d = −(Ax − b)
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
37 / 42
Illustration 2d
J(x) =
1 >
x Ax − b> x
2
lignes d’iso cout : {x ∈ IR2 | J(x) = Cte }
on choisit l’opposé de la direction du gradient : d = −(Ax − b)
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
37 / 42
Algorithme du gradient à pas optimal
Fonction x ← gradient_pas_optimal(x, ε)
x = initialisation
d = b − Ax
Tant que (norm(d) > ε) faire
>d
ρ = dd> Ad
x = x + ρd
d = b − Ax
Fait
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
38 / 42
Autres algorithmes de gradient
Gradient conjugué : converge exactement en n itérations
à chaque itération on se rapproche de la cible...
variantes pour les matrices non définies positives...
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
39 / 42
Plan
1
Principe des méthodes itératives
Motivations
2
Les méthodes de Jacobi, de Gauss Seidel et de la relaxation
Les itérations de Jacobi
Les itérations de Gauss Seidel
Les itérations de relaxation
Critères de convergence
3
Convergence des méthodes itératives
Formulation matricielle des itérations
Condition suffisante de convergence
Normes matricielles
Théorèmes de convergence
4
Etude des perturbations : notion de conditionnement
5
Les méthodes de gradient
6
Conclusion
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
40 / 42
Conclusion
3 méthodes itératives (Jacobi, Gauss Seidel, relaxation)
chaque itération ≤ O(n2 ) : produit matrice vecteur
I
I
encore mieux si A est sparse (creuse)
peut s’appliquer à des matrices par blocs
convergent à certaines conditions sur A
pour comprendre : il faut connaitre la notion de norme matricielle
I
l’importance des valeurs propres
il existe des méthodes plus sophistiquées
I
à chaque itération on se rapproche de la cible...
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
41 / 42
Différents types de matrices
quelconque : n lignes p colonnes . . . . . . . . QR
I
I
I
petite, moyenne, grande
pleine, creuse, par blocks
complexe, réelle, binaire
carrée : n lignes n colonnes
I
I
I
I
I
I
quelconque (carrée) . . . . . . . . . . . . . . . . . . . . . LU
symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . LDL’
symétriques positive . . . . . . Cholesky : LL’, GS
diagonale dominante . . . . . . . . . . . . . . . . . Jacobi
triangulaire . . . . . . . . . . . . . . . . tri_sup et tri_inf
diagonale
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
42 / 42
Différents types de matrices
quelconque : n lignes p colonnes . . . . . . . . QR
I
I
I
petite, moyenne, grande
pleine, creuse, par blocks
complexe, réelle, binaire
carrée : n lignes n colonnes
I
I
I
I
I
I
quelconque (carrée) . . . . . . . . . . . . . . . . . . . . . LU
symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . LDL’
symétriques positive . . . . . . Cholesky : LL’, GS
diagonale dominante . . . . . . . . . . . . . . . . . Jacobi
triangulaire . . . . . . . . . . . . . . . . tri_sup et tri_inf
diagonale
Canu & Gasso (INSA Rouen - ASI)
iter
November 19, 2016
42 / 42

Documents pareils