154
4 M´ ethodes it´ eratives pour la r´ esolution des syst` emes lin´ eaires
Programme 22 - arnoldimet : M´ ethode d’Arnoldi pour la r´ esolution des
syst` emes lin´ eaires
function [x,iter]=arnoldimet(A,b,x0,m,tol)
%ARNOLDIMET M´ ethode d’Arnoldi.
% [X,ITER]=ARNOLDIMET(A,B,X0,M,TOL) tente de r´ esoudre le syst` eme
% A*X=B avec la m´ ethode d’Arnoldi. TOL est la tol´ erance de la m´ ethode.
% M est la taille maximale de l’espace de Krylov. X0 est la donn´ ee
% initiale. ITER est l’it´ eration ` a laquelle la solution X a ´ et´ e calcul´ ee.
r0=b-A*x0; nr0=norm(r0,2);
if nr0 ˜= 0
v1=r0/nr0; V=[v1]; H=[]; iter=0; istop=0;
while (iter <= m-1) & (istop == 0)
[iter,V,H] = GSarnoldi(A,m,iter,V,H);
[nr,nc]=size(H); e1=eye(nc);
y=(e1(:,1)’*nr0)/H(1:nc,:);
residual = H(nr,nc)*abs(y*e1(:,nc));
if residual <= tol
istop = 1; y=y’;
end
end
if istop==0
[nr,nc]=size(H); e1=eye(nc);
y=(e1(:,1)’*nr0)/H(1:nc,:); y=y’;
end
x=x0+V(:,1:nc)*y;
else
x=x0;
end
0
10
20
30
40
50
60
10
−16
10
−14
10
−12
10
−10
10
−8
10
−6
10
−4
10
−2
10
0
10
2
Fig. 4.9. Comportement du r´ esidu en fonction du nombre d’it´ erations de la m´ ethode
d’Arnoldi appliqu´ ee au syst` eme lin´ eaire de l’Exemple 4.8
Précédent

- 165/540

Suivant