4.3 M´ ethodes it´ eratives stationnaires et instationnaires
127
Contrairement `
a la m´ ethode de Jacobi, ce sch´ ema est compl` etement s´ equentiel
(les composantes de la solution ne sont plus calcul´ ees ind´ ependamment les unes
des autres). En revanche, on peut l’impl´ ementer efficacement sans stocker la
solution de l’it´ eration pr´ ec´ edente, ce qui permet d’´ economiser de la m´ emoire.
Programme 16 - sor : M´ ethode SOR
function [x,iter]=sor(A,b,x0,nmax,tol,omega)
%SOR M´ ethode SOR
% [X,ITER]=SOR(A,B,X0,NMAX,TOL,OMEGA) tente de r´ esoudre le syst` eme
% A*X=B avec la m´ ethode SOR. TOL est la tol´ erance de la m´ ethode.
% NMAX est le nombre maximum d’it´ erations. X0 est la donn´ ee initiale.
% OMEGA est le param` etre de relaxation.
% ITER est l’it´ eration ` a laquelle la solution X a ´ et´ e calcul´ ee.
[n,m]=size(A);
if n ˜= m, error(’Seulement les syst` emes carr´ es’); end
iter=0; r=b-A*x0; r0=norm(r); err=norm(r); xold=x0;
while err > tol & iter < nmax
iter = iter + 1;
for i=1:n
s=0;
for j = 1:i-1, s=s+A(i,j)*x(j); end
for j = i+1:n, s=s+A(i,j)*xold(j); end
x(i,1)=omega*(b(i)-s)/A(i,i)+(1-omega)*xold(i);
end
xold=x; r=b-A*x; err=norm(r)/r0;
end
return
4.3 M´ ethodes it´ eratives stationnaires et instationnaires
Notons
R P = I − P
−1 A
la matrice d’it´ eration associ´ ee ` a (4.7). En proc´ edant comme pour les m´ ethodes
de relaxation, (4.7) peut ˆ etre g´ en´ eralis´ ee en introduisant un param` etre de
relaxation (ou d’acc´ el´ eration) α. Ceci conduit `
a la m´ ethode de Richardson
stationnaire
x
(k+1) = x
(k) + αP
−1 r
(k) ,
k≥ 0.
(4.22)
Plus g´ en´ eralement, si α d´ epend de l’it´ eration, on obtient la m´ ethode de Richardson instationnaire ou m´ ethode semi-it´ erative :
x
(k+1) = x
(k) + α k P
−1 r
(k) ,
k ≥ 0.
(4.23)
127
Contrairement `
a la m´ ethode de Jacobi, ce sch´ ema est compl` etement s´ equentiel
(les composantes de la solution ne sont plus calcul´ ees ind´ ependamment les unes
des autres). En revanche, on peut l’impl´ ementer efficacement sans stocker la
solution de l’it´ eration pr´ ec´ edente, ce qui permet d’´ economiser de la m´ emoire.
Programme 16 - sor : M´ ethode SOR
function [x,iter]=sor(A,b,x0,nmax,tol,omega)
%SOR M´ ethode SOR
% [X,ITER]=SOR(A,B,X0,NMAX,TOL,OMEGA) tente de r´ esoudre le syst` eme
% A*X=B avec la m´ ethode SOR. TOL est la tol´ erance de la m´ ethode.
% NMAX est le nombre maximum d’it´ erations. X0 est la donn´ ee initiale.
% OMEGA est le param` etre de relaxation.
% ITER est l’it´ eration ` a laquelle la solution X a ´ et´ e calcul´ ee.
[n,m]=size(A);
if n ˜= m, error(’Seulement les syst` emes carr´ es’); end
iter=0; r=b-A*x0; r0=norm(r); err=norm(r); xold=x0;
while err > tol & iter < nmax
iter = iter + 1;
for i=1:n
s=0;
for j = 1:i-1, s=s+A(i,j)*x(j); end
for j = i+1:n, s=s+A(i,j)*xold(j); end
x(i,1)=omega*(b(i)-s)/A(i,i)+(1-omega)*xold(i);
end
xold=x; r=b-A*x; err=norm(r)/r0;
end
return
4.3 M´ ethodes it´ eratives stationnaires et instationnaires
Notons
R P = I − P
−1 A
la matrice d’it´ eration associ´ ee ` a (4.7). En proc´ edant comme pour les m´ ethodes
de relaxation, (4.7) peut ˆ etre g´ en´ eralis´ ee en introduisant un param` etre de
relaxation (ou d’acc´ el´ eration) α. Ceci conduit `
a la m´ ethode de Richardson
stationnaire
x
(k+1) = x
(k) + αP
−1 r
(k) ,
k≥ 0.
(4.22)
Plus g´ en´ eralement, si α d´ epend de l’it´ eration, on obtient la m´ ethode de Richardson instationnaire ou m´ ethode semi-it´ erative :
x
(k+1) = x
(k) + α k P
−1 r
(k) ,
k ≥ 0.
(4.23)
