Lycée Carnot PC 2016-2017 TP no 2 d’Informatique Résolution d’équation à une variable Objectif du TP La modélisation des problèmes scientifiques conduit à la nécessité de la résolution de trois types de problèmes mathématiques : – les équations différentielles – les équations unidimentionnelles algébriques ou transcendantes – les systèmes linéaires inversibles Ce TP, avec le précédent et le suivant, traitent ces trois résolutions. Il est question ici des équations non différentielles, qui peuvent se mettre sous la forme f(x) = 0. On cherche une résolution numérique approchée de ces équations. 1 Exemple pratique On souhaite déterminer le temps que devrait mettre une balle de tennis à tomber depuis le haut de l’Arc de Triomphe. On trouve, dans Wikipedia notamment : – masse d’une balle de tennis : 55 g – coefficient de frottement fluide d’une balle dans l’air : 0,019 USI – hauteur de l’Arc de Triomphe : 50 m La résolution analytique de l’équation différentielle donne pour la distance parcourue mg m2 g x= t− 2 λ λ −t 1 − exp m/λ Remarque : entraînez-vous... Tracer cette fonction au cours du temps. 2 Méthode de dichotomie On considère pour cette méthode une fonction f continue sur un intervalle [a,b], à valeurs réelles, telle que f(a) · f(b) < 0. D’après le théorème des valeurs intermédiaires, la fonction f s’annule au moins une fois sur l’intervalle [a,b]. L’idée est alors de découper en deux l’intervalle de recherche. On note m = a+b 2 , et l’on cherche à savoir si le zéro est situé sur [a,m] ou sur [m,b] : si f(a) · f(m) < 0, le zéro appartient à [a,m] ; sinon, à [m,b] (il faudra peut-être s’intéresser au cas f(a) · f(m) = 0...). On réduit alors l’intervalle, qui devient deux fois plus petit, puis on recommence. On obtient ainsi une suite e de segments [an ,bn ], contenant un zéro de f, et de longueur b−a 2n . La précision à la n itération est donc inférieure à la moitié de cette quantité. – Faire, sur papier, un dessin représentant graphiquement le fonctionnement de l’algorithme. Créer l’algorithme sur le papier en pseudo-code. – Créer une fonction dichotomie(f,a,b,epsilon) de paramètres une fonction f, deux réels a et b délimitant l’intervalle de recherche, et un troisième réel ε représentant la précision minimale acceptable du résultat. On prendra par défaut ε = 10−10 . – La tester sur l’exemple donné. TP no 2 d’Informatique - Résolution d’équation à une variable 1/2 Lycée Carnot 3 PC 2016-2017 Méthode de Newton ou méthode de la tangente Cette méthode consiste à approximer le graphe de la fonction au voisinage d’un point par la tangente en ce point. En un point d’abscisse x0 , la tangente a pour équation y = f ′ (x0 ) · (x − x0 ) + f(x0 ), et coupe donc 0) l’axe des abscisses en x1 = x0 − ff(x (la fonction doit être de classe C 1 , et on suppose ne pas tomber sur ′ (x0 ) une dérivée nulle). Dans les bons cas, x1 est plus proche de la solution de l’équation f(x) = 0 que x0 . En itérant ce raisonnement, n) . Elle est, sous certaines conditions qui on peut alors construire une suite (xn ) définie par xn+1 = xn − ff(x ′ (xn ) ne seront pas étudiées ici, rapidement convergente, vers une solution de l’équation f(x) = 0. Le calcul de la dérivée doit bien sûr être numérique (on ne connaît pas a priori l’expression de f ′ ). On peut prendre par exemple un taux d’accroissement f(x+h)−f(x) , avec h très faible. h – Faire, sur papier, un dessin représentant graphiquement le fonctionnement de l’algorithme. Créer l’algorithme sur le papier en pseudo-code. – Créer une fonction newton(f,x0,epsilon,h) de paramètres une fonction f, un réel x0 égal à la première valeur de la suite, un réel ε égal à la précision du résultat et un réel h pour le calcul de la dérivée. Par défaut, ε = 10−10 et h = 10−6 . Attention aux boucles infinies : pour éviter tout problème, on disposera d’un compteur qui permettra de sortir la fonction au bout de 500 itérations. – La tester sur l’exemple donné. 4 Comparaison des performances – Modifier chaque fonction précédente pour qu’elle retourne le nombre d’itérations en plus du résultat. – Comparer l’efficacité de chaque algorithme pour l’exemple donné, à ε = 10−10 par exemple. TP no 2 d’Informatique - Résolution d’équation à une variable 2/2