ASI 3 Méthodes numériques pour l’ingénieur Résolution de systèmes linéaires par des méthodes itératives : Jacobi, Gauss Seidel, relaxation.
Download
Report
Transcript ASI 3 Méthodes numériques pour l’ingénieur Résolution de systèmes linéaires par des méthodes itératives : Jacobi, Gauss Seidel, relaxation.
ASI 3
Méthodes numériques
pour l’ingénieur
Résolution de systèmes linéaires
par des méthodes itératives :
Jacobi, Gauss Seidel, relaxation
Résoudre un système linéaire
6
2 x1 4 x2 2 x3
x 3x
x4 0
1
2
Ax b
3 x1 x2 x3 2 x4 8
x2 2 x3 x4 6
soit ~
x1 , ~
x2 , ~
x3 , ~
x4 une " presque" solution
~
~
~
imaginons que A~
x b
avec par exemple dist A, A
6 4~
x2 2 ~
x3
x
1
2
0~
x1 ~
x4
x
2
3
si on essayait :
~
8 3 x1 ~
x2 2 ~
x4
x3
1
~
~
x 6 x2 2 x3
4
1
n
bi aij ~
xj
soit
xi
j 1, j i
aii
Résoudre un système linéaire en itérant
6 4~
x2 2 ~
x3
x
1
2
~
0 x1 ~
x4
x2
3
~
8 3 x1 ~
x2 2 ~
x4
x3
1
~
~
x 6 x2 2 x3
4
1
n
bi aij ~
xj
soit
xi
j 1, j i
aii
Si Ax n’est pas encore égale à b, on recommence !
tant que dist ( Ax new , b)
n
(i.e.10-12 )
bi aij x old
j
xinew
fin
j 1, j i
aii
Osons itérer ! méthode de Jacobi
tant que dist ( Ax new , b)
(i.e.10-12 )
n
bi aij x old
j
xinew
j 1, j i
aii
fin
Soit D la diagonale de la matrice A, et G le reste :
A = D+G
0
a11 0 0 0
0
0 0 0
D 0 0 aii 0
0
0 0 0 0
0 0 0 0 a
nn
a12
a1i
a1n
0
0
ai 1,i
a21
0
ai 1,i
ai ,n
G ai1 ai ,i 1
ai ,i 1
0
an 1,n
a
ani an,n1
0
n1
Dx new b Gx old x new D 1 b Gx old
Gauss Seidel
2 x1 4 x2 2 x3
x 3x
x4
1
2
Ax b
3 x1 x2 x3 2 x4
x2 2 x3 x4
~
~
6 4 x2 2 x3
x
1
2
i 1
n
~
0 x1 ~
x4
b
a
x
a
i
ij j
ij x j
x2
j 1
j i 1
3
soit
x
i
8 3 x1 x2 2 ~
x4
aii
x3
1
x 6 x2 2 x3
4
1
6
0
8
6
méthode de Gauss-Seidel
tant que dist ( Ax new , b)
i 1
bi
xinew
j 1
(i.e.10-12 )
aij x new
j
n
aij x old
j
j i 1
aii
fin
Soit E la triangulaire inférieure et F la supérieure de la matrice A :
A = D+E+F
0
0
0
0
0
a21
0
0
E ai1 ai ,i 1
ai ,i 1
0
a
ani an,n1
n1
0
0 a12
0 0
0 F 0 0
0
0
0
a1i
ai 1,i
0
ai 1,i
0
0
0
0
D E x new b Fx old x new D E 1 b Fx old
a1n
ai ,n
an1,n
0
La relaxation
x new x old
xrnew x new (1 ) x old
0 : paramètre de relaxation
Jacobi :
1
x new D b ( E F ) x old
0,1 : interpollation
1 : status quo
1,2 : extrapollation
xrnew D 1 b Gx old 1 x old
en multipliant par D
Dxrnew b 1 D G x old
Gauss Seidel :
x new D E 1 b Fx old
xrnew D E b Fx old 1 x old
1
D E xrnew b 1 D F x old
Résumé « algorithmique »
Mx new Nx old b
Jacobi :
Dx
new
b (E F )x
Gauss Seidel :
D E x
new
b Fx
old
old
M D
:
N E F
M D E
:
N F
Relaxation :
new
D
E
x
b
1
1
D F x old
M 1 D E
:
1
N D F
Convergence
Principes généraux
x 0 donné,
k 1
k
x Cx d
Théorème : S' il existe une norme matricielle subordonné e telle que
C 1
Alors l' algorithme ci dessus converge pour tout x 0
vers x* la solution de :
I C x* d
Éléments de démonstration
- x* est un point fixe de l’algorithme
k
k
-e x x*
Cx k 1 d Cx * d
e k Ce k 1 C k e 0
C x k 1 x *
k
k
e k C k e0 C e0
si C 1, C k
0
Normes matricielles
n( x) 0 positivité
n( x ) 0 x 0
vérif iant
n(x) n( x)
n( x y ) n( x) n( y )
n : E R
norme :
x n( x )
exemples E R n ;
n
x
2
2
i 1
xi2
; x
p
p
n
n
xi ( p 1) ; x 1 xi ; x sup xi
i 1
p
i 1
i 1, n
Définition
Soit A une matrice nxm, étant donnée une norme vectorielle,
on appelle norme matricielle subordonnée, la norme matricielle
définie par :
Ax
A max
xR n , x 0 x
Conséquence :
~
x est ce max : A~
x A ~
x
Exemples
norme de Frobénius : A
n
2
F
m
n
aij2 tr A'A ;
j 1 i 1
m
A 1 max aij ;
A max aij ;
1 j m i 1
1i n j 1
A 1 A'
à utiliser pour le calcul !
Illustration 2d
x 1
2
A max
n
Ax
xR , x 1
x2
x2
2
A
2
Ax
1.5
1
Ax
0.5
x
0
x1
x1
-0.5
-1
-1.5
-2
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
Calculez les valeurs propres de
1 0 2
0 1 1
1 1 1
1 1, 2 1 i 3, 3 1 i 3,
Et ses vecteurs propres ?
2i 3
2i 3
1
3
3
v1 1 , v2 i 3 , v3 i 3
3
3
0
1
1
Rayon spectrale d’une matrice
Définition : on appelle rayon spectrale d’une matrice carrée A,
le nombre réel r(A) tel que :
r A max i ( A)
i 1,n
Théorème : soit A une matrice nxm, alors :
2
A 2 r A' A
Corollaire : si A est une matrice carrée symétrique nxn, alors :
A 2 r A
Remarque : en général, le rayon spectrale n’est pas une norme :
0 1
A
, A 2 1 0, r A 0
0 0
Convergence : le retour
x donné,
k 1
k
x Cx d
0
Principes généraux
Théorème : S' il existe une norme matricielle subordonné e telle que
C 1
Alors l' algorithme ci dessus converge pour tout x 0
vers x* la solution de :
I C x* d
Théorème : les points suivants sont équivalents :
• C est une matrice convergente, (i.e. Ck tend vers 0)
• r(C)<1
• C 1
Résumé « algorithmique »
Mx new Nx old b
Jacobi :
Dx
new
b (E F )x
Gauss Seidel :
D E x
new
b Fx
old
old
M D
:
N E F
M D E
:
N F
Relaxation :
new
D
E
x
b
1
1
D F x old
M 1 D E
:
1
N D F
Convergence
Théorème : Si A est une matrice à diagonale strictement dominante,
alors la méthode de Jacobi converge.
Démonstration Jacobi :
x k 1 D b ( E F ) x k
1
x k 1 Cx k d
C
avec C D 1 ( E F ) , d D 1b
1
D (E F )
1 n
max
aij
i 1, n aii j 1
1
Remarque : il en est de même pour la méthode de Gauss-Seidel
Convergence
Théorème : soit une méthode itérative : Mxk 1 Nx k b
Si A est une matrice symétrique définie positive
telle que si A = M-N alors M+N’ est définie positive
Alors la méthode itérative est convergente
Démonstration A symétrique définie positive x 2A x' Ax
2
2
2
1
1
1
M Nx M M Ax x M Ax
A
A
A
posons y M 1 Ax
1
x M Ax
2
A
My Ax
x y
2
A
x y ' A x y ' A x A x' Ay y ' Ax y ' Ay
2
x A y ' M ' y y ' My y ' Ay x A y ' M N ' y
2
1
on a donc : x M Ax
2
2
A
x
2
A
M 1 N
A
max M 1 Nx
x , x A 1
A
1
Théorème : Si A est une matrice symétrique définie positive,
la méthode de la relaxation converge pour : 0 2
Influence de w
rayon spectral de la matrice M-1N
rayon spectral
1
0
2
Remarques
pratique :
• pas de preuve de convergence généralisée,
• on préfère la relaxation avec différents tests pour ,
• on préfère les méthodes directes,
• voir les méthodes semi directes pour les problèmes de
grande taille (cf les méthodes « multigrilles »),
Conditionnement d’un système linéaire
2 x1 3
1
Ax b
1.0001 2 x2 3
examinons deux solutions
x1 1
x
x2 1
y1 3
y
y2 0
rx ry 0.0002 et
rx Ax b 0 0T
T
ry Ay b 0 0.0002
x y 2
Deux vecteurs très différents donnent des solutions très proches
x2
1
1
3
x1
Conditionnement : influence du second membre
8 10 10 10
38
1
1 5 6 1
13
1
A
, b , admet comme solution x
7 10 4 7
28
1
7 8 1 7
23
1
38.1
34.5
12.9
11.0
b
3 x
b b
, x x
:
3.7 10
22.6
28.1
5. 6
b
x
22.9
26.0
1 24.1, 4 0.007 : cond ( A) 7363
r b b b
Ax A~
x
avec ~
x ( x x )
A x ~
x x ~
x A1r
x~
x A1 r
A non singulière
Conditionnement
Définition : on appelle conditionnement d’une matrice carrée A, relatif
à une norme subordonnée, le nombre réel c(A) :
c A A
Remarque :
AA 1 A
I
A1
A1 c A 1
Théorème : Si A est une matrice carrée, non singulière (régulière)
Ax b,
x
x
A x x b b
c A
b
b
Perturbation du second membre
Ax b,
A A x x b
x
A
c A
x x
A
Perturbation de la matrice
Un problème est dit « bien conditionné » si c(A) est proche de 1,
il est dit « mal conditionné » si c(A) est grand (et mal posé si c(A) est infini)
Conditionnement
1
1
1) Ax b b A x A
x
b
2) A x x b b b A x x A1 b
1) 2)
x
x
A
A
1
b
c A A
b
A1
Remarque : si A est symétrique, si on note ses valeurs propres i
1
1 , 2 ,..., i ,..., n ,
A1 n A
1
2
2
n
et donc c 2 A
1
Dans l ’exemple, c 2 A 7363, b 0.0037
la borne de l' erreur est de l' ordre de c 2 A b 27.2 (on a trouvé 22.5)
Comment améliorer le
conditionnement ?
Ajouter un « chouia » sur la diagonale
n
c 2 A I
1
Itérations !
Ax b
~
x gauss( A, b)
err A~
x b
A ~
x x b
~
Ax b b A~
x
A = randn(n);
b= ones(n,1);
x = A\b;
err = A*x-b;
norm(err)
ans = 2.8246e-013
dx = A\err;
err2 = A*(x-dx)-b;
norm(err2)
ans = 6.4789e-014
TP - la relaxation
Le but du TP est d’écrire un programme matlab résolvant
un système linéaire par la méthode de la relaxation
x = relax(A,b,w,nite,err)
Pour ce faire, il faut étudier l’évolution du rayon spectal
r M 1 N en fonction de
- mettez vous par binôme
- rédigez une page :
recto : ce que vous avez fait
verso ce que vous en pensez
- a rendre pour le 8 décembre à 17h30 (publication du corrigé)
Indices : créer un problème test,
les fonction cputime et flops
tril et triu pourraient vous simplifier la vie
et diag(diag()) et eig aussi
Propriétés
Définition : on appelle quotient de Rayleigh la fonction qA(x)
x ' Ax
x' x
Soit A une matrice carrée, on appelle
polynôme caractéristique de A le polynôme défini par :
p( ) det A I
q A ( x)
Les n racines i de ce polynôme sont les valeurs propres de A,
vi est un vecteur propre de A. Il existe n vecteurs vi tels que :
Avi i vi
i est une valeur propre de A,
vi est un vecteur propre de A.
Théorème : si A est symétrique,
max i max q A ( x)
i
x