ECOLE ROYALE NAVALE C.𝑰𝟏 2022/23 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 : ℝ→ℝ, 𝑥 2 − 𝑥 − 2. (1) Pour cette fonction, cherchez une approximation du zéro 𝑐 = 2 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 𝜖 = 10−3 ,𝜖 = 10−6 puis 𝜖 = 109 . Exercice 3. Soit f : ℝ→ℝ , cos(2𝑥)2 − 𝑥 2 . (1) Cherchez une approximation du zéro 𝑐 ≅ 0.51493326611294 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 𝜖 = 10−6. (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.