4.3 M´ ethodes it´ eratives stationnaires et instationnaires
141
−2
0
2
−2
−1
0
1
2
x
(0)
x
(1)
−1
−0.5
0
0.5
1
−0.5
0
0.5
1
x
(2)
x
(3)
Fig. 4.5. Les premi` eres it´ er´ ees de la m´ ethode du gradient le long des courbes de
niveau de Φ
rithme a effectivement satisfait le crit` ere d’arrˆ et (i.e. le nombre maximum
d’it´ erations admissible n’a pas ´ et´ e atteint).
Programme 19 - gradient : M´ ethode du gradient `
a pas optimal
function [x,relres,iter,flag]=gradient(A,b,x,P,nmax,tol)
%GRADIENT M´ ethode du gradient
% [X,RELRES,ITER,FLAG]=GRADIENT(A,B,X0,P,NMAX,TOL) tente
% de r´ esoudre le syst` eme A*X=B avec la m´ ethode du gradient. TOL est la
% tol´ erance de la m´ ethode. NMAX est le nombre maximal d’it´ erations.
% X0 est la donn´ ee initiale. P est un pr´ econditionneur. RELRES est le
% residu relatif. Si FLAG vaut 1, alors RELRES > TOL.
% ITER est l’it´ eration ` a laquelle X est calcul´ e.
[n,m]=size(A);
if n ˜= m, error(’Seulement les syst` emes carr´ es’); end
flag = 0; iter = 0; bnrm2 = norm( b );
if bnrm2==0, bnrm2 = 1; end
r=b-A*x; relres=norm(r)/bnrm2;
if relres for iter=1:nmax
z=P\r;
rho=r’*z;
q=A*z;
alpha=rho/(z’*q);
x=x+alpha*z;
r=r-alpha*q;
relres=norm(r)/bnrm2;
if relres<=tol, break, end
end
if relres>tol, flag = 1; end
return
Précédent

- 152/540

Suivant