66
2 Equations non linéaires
if nargin == 2
tol = 1.e -04;
nmax = 100;
elseif nargin == 3
nmax = 100;
end
x = x0;
diff = tol + 1;
niter = 0;
while niter < nmax & diff >= tol
gx = feval ( phi ,x , varargin {:});
ggx = feval ( phi , gx , varargin {:});
xnew = (x * ggx - gx ^2)/( ggx -2* gx +x );
diff = abs(x - xnew );
x = xnew ;
niter = niter + 1;
end
if ( niter == nmax & diff > tol )
fprintf ([ ’ Ne converge pas après avoir atteint le ’ ,...
’ nombre maximum d ’’ i t é r ation s\n ’ ]);
end
return
Exemple 2.9 Afin de calculer l’unique racine α = 1 de la fonction f (x) =
e
x (x − 1), on applique la méthode d’Aitken aux deux fonctions d’itération
suivantes
φ0(x) = log(xe
x ), φ1(x) =
e
x + x
e x + 1
.
On utilise le Programme 2.4 avec tol=1.e-10, nmax=100, x0=2 et on définit
les deux fonctions d’itération comme suit :
phi0 = inline ( ’ log (x * exp (x )) ’, ’x ’);
phi1 = inline ( ’( exp( x )+x )/( exp (x )+1) ’, ’x ’);
On exécute le Programme 2.4 ainsi :
[ alpha , niter ]= aitken ( phi0 , x0 , tol , nmax )
alpha =
1.0000 + 0.0000i
niter =
10
[ alpha , niter ]= aitken ( phi1 , x0 , tol , nmax )
alpha =
1
niter =
4
On constate que la convergence de la méthode est très rapide. A titre de
comparaison, la méthode de point fixe avec la fonction d’itération φ1 et le
même critère d’arrêt aurait requis 18 itérations, et la méthode de point fixe
avec φ0 n’aurait pas convergé puisque |φ
0 (1)| = 2.
2 Equations non linéaires
if nargin == 2
tol = 1.e -04;
nmax = 100;
elseif nargin == 3
nmax = 100;
end
x = x0;
diff = tol + 1;
niter = 0;
while niter < nmax & diff >= tol
gx = feval ( phi ,x , varargin {:});
ggx = feval ( phi , gx , varargin {:});
xnew = (x * ggx - gx ^2)/( ggx -2* gx +x );
diff = abs(x - xnew );
x = xnew ;
niter = niter + 1;
end
if ( niter == nmax & diff > tol )
fprintf ([ ’ Ne converge pas après avoir atteint le ’ ,...
’ nombre maximum d ’’ i t é r ation s\n ’ ]);
end
return
Exemple 2.9 Afin de calculer l’unique racine α = 1 de la fonction f (x) =
e
x (x − 1), on applique la méthode d’Aitken aux deux fonctions d’itération
suivantes
φ0(x) = log(xe
x ), φ1(x) =
e
x + x
e x + 1
.
On utilise le Programme 2.4 avec tol=1.e-10, nmax=100, x0=2 et on définit
les deux fonctions d’itération comme suit :
phi0 = inline ( ’ log (x * exp (x )) ’, ’x ’);
phi1 = inline ( ’( exp( x )+x )/( exp (x )+1) ’, ’x ’);
On exécute le Programme 2.4 ainsi :
[ alpha , niter ]= aitken ( phi0 , x0 , tol , nmax )
alpha =
1.0000 + 0.0000i
niter =
10
[ alpha , niter ]= aitken ( phi1 , x0 , tol , nmax )
alpha =
1
niter =
4
On constate que la convergence de la méthode est très rapide. A titre de
comparaison, la méthode de point fixe avec la fonction d’itération φ1 et le
même critère d’arrêt aurait requis 18 itérations, et la méthode de point fixe
avec φ0 n’aurait pas convergé puisque |φ
0 (1)| = 2.
