Sie sind auf Seite 1von 11

CAREL Guillaume

TRUONG Tran Phuc Hai

LEFEVRE Laurent

TP MA441 : Mthodes itratives,


acclration de convergence, mthode de
Newton

Introduction
Durant ce TP nous allons mettre en uvre les diffrentes mthodes de rsolution de
problme pour pouvoir comparer leurs performances, leurs efficacits et leurs limites.

CAREL Guillaume
TRUONG Tran Phuc Hai

I.
1)

MA441 : Mthodes itratives

21/11/2016

Itration de type point fixe, cas gnral


Rsolution de cos(x) = x par la mthode des points fixes :
clc;clear all;
format longg;
syms x;
f = cos(x);
F = cos(x) - x;
nmax = 100;
TOL = 10^-10;
x_pointfix(1) = 0.5;
i=1;
while (abs(subs(F,x,x_pointfix(i))) > TOL)
x_pointfix(i+1) = subs(f,x,x_pointfix(i));
i = i+1;
if (i==nmax)
break;
end;
end;
X_pointfix = x_pointfix(i)*ones(1,i);
ro_pointfix = abs(X_pointfix - x_pointfix)/x_pointfix(i);
Cn_pointfix = -log(ro_pointfix);
t= 1:1:i;
plot(t,Cn_pointfix);
X_pointfix(i)

Rsultats :
-

On obtient i = 57 et donc X_pointfix(57) = 0.739085133163065 il aura donc fallu


57 itrations pour obtenir une prcision de 10-10 ce qui est plutt correct.

On observe que lvolution de Cn est


linaire ce qui daprs la formule
traduit dun ordre de convergence de
la mthode de 1.

CAREL Guillaume
TRUONG Tran Phuc Hai
2)

MA441 : Mthodes itratives

21/11/2016

Rsolution de cos(x) = x par la mthode de Newton :


clc;clear all;
format longg;
syms x;
f = cos(x);
F = cos(x) - x;
nmax = 100;
TOL = 10^-10;
x_Newton(1) = 0.5;
j=1;
while (abs(subs(F,x,x_Newton(j))) > TOL)
x_Newton(j+1) = x_Newton(j) subs(F,x,x_Newton(j))/subs(diff(F),x,x_Newton(j));
j=j+1;
if (j==nmax)
break;
end;
end;
X_Newton = x_Newton(j)*ones(1,j);
ro_Newton = abs(X_Newton - x_Newton)/x_Newton(j);
Cn_Newton = -log(ro_Newton);
t= 1:1:j;
plot(t,Cn_Newton);
X_Newton(j)

Rsultats :
-

Cette fois on obtient j = 5 et X_Newton(5) = 0.739085133215161 On constate tt


de suite que la mthode de Newton permet dobtenir beaucoup plus rapidement un
rsultat pour la mme prcision compar aux points fixes.

On observe une volution non linaire


de Cn cette fois-ci. Lordre de
convergence est proche de 2, cest une
convergence quadratique. Ce qui
confirme bien que la mthode de
Newton est plus rapide.

CAREL Guillaume
TRUONG Tran Phuc Hai
3)

MA441 : Mthodes itratives

21/11/2016

Rsolution de 10*cos(x) = x par la mthode des points fixes :


clc;clear all;
format longg;
syms x;
f = 10*cos(x);
F = 10*cos(x) - x;
nmax = 100;
TOL = 10^-10;
x_pointfix(1) = 0.5;
i=1;
while (abs(subs(F,x,x_pointfix(i))) > TOL)
x_pointfix(i+1) = subs(f,x,x_pointfix(i));
i = i+1;
if (i==nmax)
break;
end;
end;
X_pointfix = x_pointfix(i)*ones(1,i);
ro_pointfix = abs(X_pointfix - x_pointfix)/x_pointfix(i);
Cn_pointfix = -log(ro_pointfix);
t= 1:1:i;
plot(t,Cn_pointfix);
legend('Valeurs de Cn en fonction de n');
X_pointfix(i)

Rsultats :
-

On obtient cette fois i = 100 (valeur max) et X_pointfix(1,2,,100) =


3.99414821613478 On remarque que les valeurs sont adhrentes puisquil ny a
aucune variation et que nous obtenons le nombre de boucle maximum.

La non convergence de cette mthode dans le


cas prsent est flagrant lorsquon regarde les
valeurs de Cn.
On ne peut donc pas utiliser la mthode des
points fixes pour rsoudre cette quation. Car,
on a [10; 10] , => On choisis I = [-10 ;10].
Donc, on obtient abs (max( f(x))) = 10 > 1.
Donc dans ce cas, la mthode des points
fixes nest pas convergence.

CAREL Guillaume
TRUONG Tran Phuc Hai

MA441 : Mthodes itratives

21/11/2016

Pour la recherche dune des solutions on peut tout simplement utiliser la mthode de
Newton vue prcdemment :
clc;clear all;
format longg;
syms x;
f = 10*cos(x);
F = 10*cos(x) - x;
nmax = 100;
TOL = 10^-10;
x_Newton(1) = 0.5;
j=1;
while (abs(subs(F,x,x_Newton(j))) > TOL)
x_Newton(j+1) = x_Newton(j) - subs(F,x,x_Newton(j))/subs(diff(F),x,x_Newton(j));
j=j+1;
if (j==nmax)
break;
end;
end;
X_Newton = x_Newton(j)*ones(1,j);
ro_Newton = abs(X_Newton - x_Newton)/x_Newton(j);
Cn_Newton = -log(ro_Newton);
t= 1:1:j;
plot(t,Cn_Newton);
legend('Valeurs de Cn en fonction de n');
X_Newton(j)

Rsultats :

Cette fois nous obtenons X_Newton(j) = 1.42755177876459 et j = 6 lalgorithme de


Newton a donc bien fonctionn et de manire trs efficace.

La vitesse de convergence est galement


quadratique dans ce cas

CAREL Guillaume
TRUONG Tran Phuc Hai

II.

MA441 : Mthodes itratives

21/11/2016

Acclration de convergence : Aitken-Steffensen

1)
Nous appliquons le procd dacclration 2 dAitken pour la rsolution de cos(x) =
x avec la mthode des points fixes et de Newton :

for k=1:i-2
x_Aitken(k) = x_pointfix(k) (x_pointfix(k+1)x_pointfix(k))^2/(x_pointfix(k+2)2*x_pointfix(k+1)+x_pointfix(k));

if (abs(subs(F,x,x_Aitken(k))) < TOL)


break;
end;
end;
X_Aiken = x_Aitken(k)*ones(1,k);
ro_Aitken = abs(X_Aikenx_Aitken)/x_Aitken(k);
Cn_Aitken = -log(ro_Aitken);

Nous observons bien une nette amlioration de la vitesse de convergence suite


lutilisation de ce procd dacclration. Le coefficient directeur de la courbe bleu est
quasiment deux fois suprieur celui de la courbe rouge, cependant la mthode de
Newton reste bien plus rapide.

Nous appliquons le procd dacclration 2 dAitken pour la rsolution de 10cos(x) = x


avec la mthode des points fixes et de Newton :

On remarque que dans ce cas la


mthode dacclration na rien
acclrer puisque la mthode des
points fixes nest pas convergente.
On observe donc le mme rsultat
cest--dire une incapacit trouver
une solution de lquation.

CAREL Guillaume
TRUONG Tran Phuc Hai

MA441 : Mthodes itratives

21/11/2016

2)
Nous appliquons maintenant la mthode dAitken-Steffensen pour rsoudre la
premire quation cos(x) = x :
clc;clear all;
syms x;
f = cos(x);F = cos(x) - x;
imax = 100;
format longg;
TOL = 10^-10;
i=1;
x_Aiken(1) = 0.5;
while (abs(subs(F,x,x_Aiken(i))) > TOL)
x_Aiken(i+1)=x_Aiken(i) -(subs(f,x,x_Aiken(i))x_Aiken(i))^2/(subs(f,x,subs(f,x,x_Aiken(i)))-2*subs(f,x,x_Aiken(i))+x_Aiken(i));
i = i+1;
if (i==imax)
break;
end;
end;
X_Aiken = x_Aiken(i)*ones(1,i);
ro_Aiken = abs(X_Aiken - x_Aiken)/x_Aiken(i);
Cn_Aiken = -log(ro_Aiken);
t = 1:1:i;
plot(t,Cn_Aiken);

Cette mthode converge de manire


quadratique comme mthode Newton
(Car f(s) # 0), elle est donc bien plus
rapide que la mthode des points fixes.
Mais si on sintresse au nombre
ditrations on trouve i=4, cette
mthode est donc lgrement plus
rapide que celle de Newton.

Nous allons maintenant tester cette mthode pour la deuxime quation 10cos(x) = x, il
nous suffit simplement de changer les valeurs de f et F dans le code prcdent :

CAREL Guillaume
TRUONG Tran Phuc Hai

MA441 : Mthodes itratives

21/11/2016

Cette mthode nous permet de


rsoudre notre quation en 9 itrations
avec une convergence dordre 2.
Pour ce cas ci cest donc la mthode
de Newton la plus rapide.

III. Rsolution dun systme non-linaire


Pour rsoudre ce systme non-linaire nous utilisons deux points de dpart diffrents pour
trouver les racines positives et ngatives :
clc;clear all;

clc;clear all;

X= [ -1; -2]; %Pour calculer les racines


negatives
N= 10;
for i=1:N
J = [ 2*X(1)+2 -2*X(2); 2*X(1)*X(2)
X(1)^2+1];
F = [ X(1)^2-X(2)^2+2*X(1);
X(1)^2*X(2)+X(2)-1];
X = X - (J^(-1))*F;
end

X= [ 0 ; 0];
%Pour calculer les racines positives
N= 10;
for i=1:N
J = [ 2*X(1)+2 -2*X(2); 2*X(1)*X(2)
X(1)^2+1];
F = [ X(1)^2-X(2)^2+2*X(1);
X(1)^2*X(2)+X(2)-1];
X = X - (J^(-1))*F;
end

On trouve alors :
X = (-2.0192, 0.1970) et (0.3422, 0.8952)

Commentaire : On constate quil faut tracer tous les graphiques pour lensemble des
racines. On choisit les valeurs de X0 pour obtenir toutes les racines. Dans ce cas, il y a 2
racines et donc on choisit 2 valeurs de X0.

CAREL Guillaume
TRUONG Tran Phuc Hai

MA441 : Mthodes itratives

21/11/2016

IV. Mthode de Newton applique au calcul des racines k-imes


1)

clc;clear all;
format longg;
TOL = 10^-15;
syms x;
F = x^3 -5;
x_Newton(1) = 0.5;
i=1;
while (abs(subs(F,x,x_Newton(i))) > TOL)
x_Newton(i+1) =x_Newton(i) - subs(F,x,x_Newton(i))/subs(diff(F),x,x_Newton(i));
i=i+1;
end;
X_Newton = x_Newton(i)*ones(1,i);
ro_Newton = abs(X_Newton - x_Newton)/x_Newton(i);
Cn_Newton = -log(ro_Newton);
t= 1:1:i;
plot(t,Cn_Newton);

La vitesse de convergence est galement


quadratique dans ce cas. De plus, cette
mthode converge trs vite quand bien
mme on aurait mal choisi la valeur initial.
Par exemple, si on choisit x(0)=8 on a
besoin de 10 itrations pour obtenir la
tolrance, et si on choisit x(0) = 18, on a
besoin de seulement 12 itrations. On
constate que la valeur initiale na pas
beaucoup dimportance

CAREL Guillaume
TRUONG Tran Phuc Hai

MA441 : Mthodes itratives

21/11/2016

2)
clc;clear all;
format longg;
TOL = 10^-15;
syms x;
F = x^3 -5;
%% La resultat de methode secante
x_secante(1) = 3;
x_secante(2) = 0;
%Choisi F(x1) .F(x2) <0
k=2;
while (abs(x_secante(k)^3-5) > TOL)
x_secante(k+1)=x_secante(k)-(subs(F,x,x_secante(k))*(x_secante(k)-x_secante(k1)))/(subs(F,x,x_secante(k))-subs(F,x,x_secante(k-1)));
k=k+1;
end;

X_secante = x_secante(k)*ones(1,k);
ro_secante = abs(X_secante - x_secante)/x_secante(k);
Cn_secante = -log(ro_secante);
t= 1:1:k;
plot(t,Cn_secante);

La vitesse de convergence est galement


1.618 dans ce cas. On remarque que
cette mthode converge moins vite que
la mthode Newton.
On analyse linfluence de valeur initiale.
Si on choisit x(0) = 4, x(1)= 0 on a besoin
31 itrations. Mais si on choisit x(0) = 1,
x(1)=2 on a besoin seulement 9
itrations. On constate que la valeur
initiale est trs importante pour la
mthode scante. On doit choisir
soigneux. On doit choisir x(0) et x(1)
afin dobtenir bien F(x0).F(x1) < 0

10

CAREL Guillaume
TRUONG Tran Phuc Hai

MA441 : Mthodes itratives

21/11/2016

Conclusion
Au cours de ce TP nous avons constat que la mthode des points fixes est certes simple
mettre en place, cependant elle atteint trs rapidement ses limites lorsque les pentes de
notre fonction sont trop verticales. En effet cette mthode se base principalement sur les
drivs.
A contrario la mthode de Newton a montr quelle tait efficace pour rsoudre beaucoup
de problmes de manire rapide et efficace.
Nous avons observ que les mthodes dacclration de convergence ne permettent pas de
compens la non convergence dune mthode pour un problme donn.

11

Das könnte Ihnen auch gefallen