TP MN N°1
TP MN N°1
TP MN N°1
Mira –Bejaia
Faculté de Technologie
Département de Génie Civil
2ème année Licence Génie Civil
TP METHODE NUMERIQUE
Objectif :
Trouver les racines approchées de l’équation non linéaire f(x)=0, en utilisant les 03 méthodes:
méthode de la bissection, méthode des points fixes, méthode de Newton.
3) méthode de Newton
Le principe de la méthode consiste a remplacé l’arc de la courbe représentatif de la fonction f(x) par sa
tangente au point x0, l’équation de la tangente au point x0 est donnée par: 𝑦 = 𝑓 ′ (𝑥0 )(𝑥 − 𝑥0 ) + 𝑓(𝑥0 )
L’abscisse x1 du point d’intersection de cette tangente avec l’axe ox est donnée par :
𝑓 ′ (𝑥0 )(𝑥1 − 𝑥0 ) + 𝑓(𝑥0 ) = 0 𝑥1 = 𝑥0 − 𝑓(𝑥0 ) 𝑓 ′ (𝑥0 )
x1 est une meilleure approximation de que x0 .
De proche en proche, nous construisons une suite de solution approchées en utilisant
la relation:
𝑥𝑘+1 = 𝑥𝐾 − 𝑓(𝑥𝐾 ) 𝑓 ′ (𝑥𝐾 )
Page 1
Manipulations
Exercice 1 : Soit la fonction𝑓(𝑥) = 2 sin(𝑥) − 1. Ecrire un script (programme) Matlab permettant de
trouver la racine approchée de cette équation par la méthode de DICHOTOMIE (bissection) si elle
existe dans l’intervalle [-1 1], en utilisant l'algorithme suivant :
Algorithme DICHOTOMIE;
a=-1,b=1;
eps=0.00001; ecart=|a-b|;iter=0;xa=1;
SI f(a)*f(b)<0 alors
TANT QUE iter<=50 et ecart>eps faire
xb=(a+b)/2;
ecart=|xa-xb|;
SI f(a)*f(xb)<0 alors
b=xb; f(b)=f(xb);
Sinon
a=xb; f(a)=f(xb);
finsi;
iter=iter+1; xa=xb;
Fait;
Ecrire("la racine approchee est",xb,"le Nbr d'iteration est=",iter);
Sinon
Ecrire("Pas de racine sur l'intervalle");
Finsi;
Exercice 2 : Soit la fonction 𝑓(𝑥) = 3𝑥 − 0.2𝑒𝑥 , écrire un script (programme) Matlab permettant
de trouver la racine de cette équation sur l'intervalle [0 1]par la méthode du point fixe, en utilisant
l'algorithme suivant :
Algorithme POINT FIXE;
a=0 ;b=1;
E=0.00001;
SI f(a)*f(b)<0
x0=a;
x1=(0.2).e^{x0}/3;
TANT QUE |x1-x0|>E
x0=x1;
x1=(0.2).e^{x0}/3;
fait
ECRIRE('La racine vaut:',x1);
SINON
ECRIRE('Pas de racines dans cette intervalle');
FINSI;
FIN
Exercice 3 : Calculer la racine carrée de trois à l’aide de l’équation suivante 𝑓(𝑥) = 𝑥 2 − 3 : par
la méthode de NEWTON si elle existe dans l’intervalle [1 2] en utilisant l’algorithme suivant :
Algorithme NEWTON;
a=1,b=2;x0=(a+b)/2;
eps=0.00001; ecart=|a-b|;iter=0;
SI f(a)*f(b)<0 alors
TANT QUE iter<=50 et ecart>eps faire
x1=x0-f(x0)/f'(x0);
ecart=|x1-x0|;
x0=x1;
iter=iter+1;
Fait;
Ecrire("la racine approchee est",x1,"le Nbr d'iteration est=",iter);
Sinon
Ecrire("Pas de racine sur l'intervalle");
Finsi;
Page 2
Solution
Script 1 :
f= inline('2*sin(x)-1')
a=-1;b=1;
eps=0.00001;
ecart= abs(a-b) ;
iter = 0;
xa=1;
if f(a)* f(b)<0
while (iter <=50 & ecart>eps )
xb=(a+b ) / 2 ;
ecart= abs( xa-xb ) ;
if f(a)* f(xb)<0
b=xb ;
else
a=xb ;
end
iter = iter +1;
xa=xb ;
end
fprintf('la racine approchée est %f, le nombre d’’iteration est=%d\n',xb,iter);
else
fprintf( 'Pas de racine sur l"intervalle ' ) ;
end
% la racine approchée est 0.523598, le nombre d’itération est=18
Script 2 :
a=0;
b=1;
eps=0.00001;
fa=3*a-0.2*exp(a);
fb=3*b-0.2*exp(b);
if fa*fb<0
x0=a;
x1=0.2*exp(x0)/3;
while(abs(x1-x0)>eps)
x0=x1;
x1=0.2*exp(x0)/3;
end
fprintf('la racine vaut: %f',x1);
else
fprintf('pas de racines dans cette intervalle');
end
Script 3 :
f=inline( 'x^2-3' )
df=inline( '2*x' )
a=1;b=2;
eps=0.00001;
ecart =1;
iter =0;
x0=(a+b ) / 2 ;
if f( a )* f(b)<0
while ( iter <=50 & ecart>eps )
x1=x0-f(x0 )/ df( x0 ) ;
ecart=abs (x1-x0 ) ;
iter=iter +1;
x0=x1 ;
end
fprintf('la racine approchee est %f,le nombre d’’iteration est=%d\n',x1,iter);
else
fprintf('Pas de racine sur l"intervalle') ;
end
% la racine approchee de 3 est est 1.732051, le nombre d’iteration est=4
Page 3