ECOLE ROYALE C.2022/23
NAVALE Python et Matlab
TP 2
Exercice1. Lire et comprendre les deux fonctions suivantes :
def dichotomie(f,a,b,eps,ITERMAX):
# initialisation
fa = f(a)
fb = f(b)
# erreur sur l intervalle
if fa*fb > 0.0:
print("La racine n est pas encadree")
# boucle principale
k=0
while(k<ITERMAX) :
c = (a+b)*0.5
fc = f(c)
if abs(b-a) <= eps:
return k,c
if fa*fc <= 0.0:
b = c
fb = fc
else:
a = c
fa = fc
k=k+1
# si on depasse ITERMAX
print("MAXIMUM D'ITERATION ATTEINT")
return k,c
#==============================================================================
def newton(f,df,x0,eps,ITERMAX):
x=x0-f(x0)/df(x0)
k=1
while ((abs(x-x0)>eps )and (k<ITERMAX)):
x0=x
x=x0-f(x0)/df(x0)
k=k+1
return k, x
# ==============================================================================
Exercice 2. Soit f : , .
(1) Pour cette fonction, cherchez une approximation du zéro dans l'intervalle [0; 3; 5]
par la méthode de dichotomie.
(2) Programmez la méthode de Newton en partant de la valeur initiale x = 1.
(3) Programmez la méthode de Lagrange ou la sécante.
(4) Comparez le nombre d'itérations nécessaires pour ces méthodes pour obtenir c avec la
précision , puis
Exercice 3. Soit f : , .
(1) Cherchez une approximation du zéro par les méthodes suivantes :
la méthode de la dichotomie sur [0; 1.5];
la méthode de Lagrange sur [0; 1.5];
la méthode de Newton, en partant de la valeur initiale x = 0.8.
(2) Comparez le nombre d'itérations nécessaires pour ces méthodes pour obtenir avec la
précision .
(3) Pour chaque méthode, tracez une courbe qui permet d'afficher l'erreur entre
le point calculé à l'itération et la solution en fonction du nombre d'itérations.
Prenez soin d'utiliser une échelle logarithmique pour l'axe des ordonnées.
(4) Donnez une conclusion sur le comportement de l'erreur pour ces différentes méthodes.