Lycée Madeleine Michelis - ECE1 Mathématiques - 2016/2017 Travaux Pratiques 10 : Calcul approché de la racine d'une équation du type f (x) = 0 L'objectif de ce TP est de présenter des méthodes numériques permettant d'évaluer les (éventuelles) solutions d'une équation 1 f (x) = 0 où f est une fonction pour le moment quelconque. Présentation du problème Soit f : R → R une fonction. On souhaite résoudre l'équation : f (x) = 0. (E) Lorsque f est une fonction assez "simple", par exemple lorsque f est une fonction ane ou une fonction polynômiale de degré 2, la résolution de cette équation est possible : on connait le nombre de solutions et leurs expressions. Cependant, le plus souvent, il est impossible de résoudre une telle équation. Heureusement, il existe des méthodes qui permettent d'approcher les solutions x de (E). C'est ce que nous allons voir dans ce TP. Dans tout ce TP, on suppose que f vérie les hypothèses du théorème des valeurs intermédiaires sur un intervalle [a ; b], c'est à dire : f est continue sur [a ; b], f est strictement monotone sur [a ; b], f (a)f (b) < 0, autrement dit f (a) et f (b) sont de signes strictement opposés. Ceci nous garantit qu'il existe un unique c ∈ ]a ; b[ tel que f (c) = 0 (autrement dit l'équation (E) admet une unique solution qui est c). f(b) a c b f(a) 1 Lycée Madeleine Michelis - ECE1 2 Mathématiques - 2016/2017 Méthode du balayage 2.1 Description de la méthode On souhaite approcher la solution c de (E) avec une erreur d'au plus ε. L'idée est de diviser le segment [a ; b] en segments de largeurs ε : a a+ε a + 2ε a + 3ε ... b On regarde le signe de f (a). Si f (a + ε) est du signe contraire de f (a) alors d'après le théorème des valeurs intermédiaires, la solution c est dans l'intervalle [a ; a + ε]. Pour déterminer si f (a) et f (a+ε) sont de signe contraire on calcule f (a)f (a+ε) : si cette quantité est négative c'est que f (a) et f (a + ε) sont de signe contraire. Sinon on continue en se déplaçant de ε : on compare alors les signes de f (a + ε) et de f (a + 2ε) etc. 2.2 Erreur commise La méthode du balaye propose une approximation de la solution à ε (longueur entre deux points consécutifs a + kε et a + (k + 1)ε). Plus ε est petit et plus l'erreur commise est faible, mais plus le balayage est long . . . Exercice 1 Soit f (x) = x2 − 2 1. Vérier que les hypothèses du théorème des valeurs intermédiaires sont vériées sur [1 ; 3]. 2. Écrire un programme qui permet d'approcher la solution de l'équation f (x) = 0 à 0.01 près par la méthode du balayage. 3. Modier ce programme pour en faire une fonction qui prend comme argument d'entrée l'erreur ε. 3 3.1 Méthode de la dichotomie Description de la méthode La démarche est simple : 2 Lycée Madeleine Michelis - ECE1 Mathématiques - 2016/2017 1. On divise l'intervalle [a ; b] en deux intervalles de même tailles. Le milieu de cet intervalle est m = a+b 2 . On obtient donc deux intervalles [a ; m] et [m ; b]. 2. Si f (a)f (m) < 0 alors c est dans [a ; m] sinon c est dans l'intervalle [m ; b]. 3. On garde l'intervalle contenant c, autrement dit : si c est dans [a ; m], alors on eectue l'opération : b ← m. sinon, on eectue l'opération a ← m. On répète alors les étapes 1., 2. et 3. autant de fois que nécessaire pour se rapprocher autant que l'on veut de la solution. Le milieu du dernier intervalle est alors une approximation de la solution. Exercice 2 Soit f (x) = ln(x) − 1. On considère l'équation : f (x) = 0. (E2 ) 1. Montrer que f vérie les conditions du théorème de la bijection sur [1 ; 4]. 2. Écrire un programme qui permet d'approcher la solution de (E1 ) par la méthode de dichotomie. On xera un nombre arbitraire de division de l'intervalle en 2 - par exemple 50. 3. Modier ce programme pour en faire une fonction qui prend comme arguments d'entrée le nombre de fois N que l'on répète l'algorithme et les bornes a et b de l'intervalle. 3.2 Erreur commise A chaque étape, l'intervalle est divisé en deux et on sait que la solution c est dans cet intervalle. On peut résumer cela à l'aide d'un tableau : Étape : Taille de l'intervalle 0 b−a b−a 2 b−a 22 b−a 23 1 2 3 .. . N .. . .. . b−a 2N .. . Ainsi, si après une itération, on prend le milieu du segment m pour approcher c alors l'erreur b−a commise sera d'au plus . De même, en prenant le milieu du segment obtenu après N étapes, l'erreur sera d'au plus 2 b−a . 2N 3 Lycée Madeleine Michelis - ECE1 Mathématiques - 2016/2017 Conséquence : si on veut approcher la solution c de (E) en commettant une erreur d'au plus ε, il sut de répéter l'algorithme un certain nombre de fois. On veut que après N répétitions de l'algorithme, la longueur du segment ( b−a ) dans lequel se trouve la solution c vérie : 2N b−a ≤ε 2N b−a ε ⇐⇒ 2N ≥ ⇐⇒ N ln 2 ≥ ln ⇐⇒ N≥ ln b−a ε b−a ε ln 2 Exercice 3 On reprend le cadre de l'exercice précédent. Écrire un programme qui demande à l'utilisateur l'erreur maximale souhaitée (par exemple 0, 001) et qui retourne une approximation de la solution c avec au plus une erreur de ε. Exercice 4 On aurait pu s'aranchir de calculer le nombre d'étapes nécessaires N . Si ε est l'erreur maximale renseignée par l'utilisateur, il sut d'utiliser une boucle while pour contrôler la largeur de l'intervalle : il sut de répéter l'algorithme de dichotomie tant que la largeur de l'intervalle obtenu est supérieure à ε . . . Écrire une fonction Scilab qui utilise une boucle while pour approcher c avec une erreur d'au plus ε (renseignée par l'utilisateur). Fin 4