TP n 5 Résolution approchée d`une équation numérique par

publicité
Lycée Benjamin Franklin
D. Blottière, B. Mollier
PTSI − 2014-2015
Informatique
TP n◦ 5
Résolution approchée d’une équation numérique par dichotomie
Contexte
• a et b sont des nombres réels tels que a < b.
• f : [a, b] → R est une fonction continue sur l’intervalle [a, b] (ce qui s’interprète en disant que l’on peut tracer
la courbe de f sans lever le crayon).
• Les valeurs de f en a et en b sont de signes opposés, i.e. f (a) f (b) ≤ 0.
Problématique
Dans le contexte précédent, le théorème des valeurs intermédiaires assure que l’équation
(⋆)
f (x) = 0
d’inconnue x ∈ [a, b] possède (au moins) une solution. La question que l’on pose est la suivante. Comment trouver
une valeur approchée d’une solution de (⋆) avec une précision arbitrairement « petite » ε > 0 donnée ?
Résolution du problème posé par dichotomie 1
Pour résoudre le problème posé, on va construire une suite d’intervalles ([an , b n ])n∈N telle que
1. [an , b n ] contient une solution de (⋆), pour tout n ∈ N ;
2. la longueur b n − an de l’intervalle [an , b n ] est égale à
b−a
2n ,
pour tout n ∈ N.
Une telle suite nous permet de résoudre le problème posé, comme on l’explique ci-dessous.
Soit un entier naturel n fixé. Soit xn une solution de l’équation (⋆) dans l’intervalle [an , b n ] (un tel xn existe d’après 1.,
mais nous n’en connaissons pas d’explicite a priori et c’est là notre problème). Alors
|xn − an | = xn − an ≤ b n − an =
b−a
2n
la dernière égalité découlant de 2.. Donc an livre une valeur approchée d’une solution de l’équation (⋆) avec une erreur inférieure ou égale à b−a
2n .
Remarque : Nous aurions en fait pu prendre un nombre arbitrairement choisi dans [an , b n ], plutôt que an , pour avoir
une valeur approchée d’une solution de l’équation (⋆) avec une erreur inférieure ou égale à b−a
2n .
b−a
Quitte à prendre n suffisamment grand, on a b−a
2n ≤ ε, puisque 2n tend vers 0 quand n tend vers +∞. Pour un tel n,
la valeur de an fournit donc une valeur approchée d’une solution de l’équation (⋆), telle que l’erreur commise soit
inférieure ou égale à ε.
Après avoir expliqué qu’une suite d’intervalles ([an , b n ])n∈N vérifiant les propriétés 1. et 2. répond à notre problématique, il reste à en construire une. On peut procéder « de proche en proche », comme suit, pour cela.
1. Vient du grec : « couper en deux ».
1
• Étape 0
On pose a0 := a et b 0 := b. D’après ces définitions et les hypothèses (cf. contexte), on a
1. f (a0 ) f (b 0 ) ≤ 0 et donc l’équation (⋆) possède une solution dans [a0 , b 0 ] (cf. théorème des valeurs intermédiaires) ;
2. b 0 − a0 = b − a.
• Étape 1
On introduit le milieu c 0 du segment [a0 , b 0 ] et on pose
¯
¯ a1 := a0 et b 1 := c 0 si f (a0 ) f (c 0 ) ≤ 0
¯
¯ a1 := c 0 et b 1 := b 0 sinon.
Alors quelque que soit le cas
1. f (a1 ) f (b 1 ) ≤ 0 et donc l’équation (⋆) possède une solution dans [a1 , b 1 ] (cf. théorème des valeurs intermédiaires) ;
2. b 1 − a1 =
b0 −a 0
2
=
b−a
2 .
Pourquoi ?
• Étape 2
On introduit le milieu c 1 du segment [a1 , b 1 ] et on pose
¯
¯ a2 := a1 et b 2 := c 1 si f (a1 ) f (c 1 ) ≤ 0
¯
¯ a2 := c 1 et b 2 := b 1 sinon.
Alors quelque que soit le cas
1. f (a2 ) f (b 2 ) ≤ 0 et donc l’équation (⋆) possède une solution dans [a2 , b 2 ] (cf. théorème des valeurs intermédiaires) ;
2. b 2 − a2 =
b1 −a 1
2
=
b−a
4 .
Pourquoi ?
..
.
• Étape n
On suppose construit un intervalle [an−1 , b n−1 ] tel que
1. f (an−1 ) f (b n−1 ) ≤ 0 ;
2. b n−1 − an−1 =
b−a
.
2n−1
On introduit le milieu c n−1 du segment [an−1 , b n−1 ] et on pose
¯
¯ an := an−1 et b n := c n−1 si f (an−1 ) f (c n−1 ) ≤ 0
¯
¯ an := c n−1 et b n := b n−1 sinon.
Alors quelque que soit le cas
1. f (an ) f (b n ) ≤ 0 et donc l’équation (⋆) possède une solution dans [an , b n ] (cf. théorème des valeurs intermédiaires) ;
2. b n − an =
bn−1 −a n−1
2
=
b−a
2n .
Pourquoi ?
..
.
2
N.B. : Répondre à chacun des « Pourquoi ? » n’est pas optionnel ! C’est le cœur de l’algorithme qui est caché dans ces
questions. Une fois apportée une réponse au premier, les réponses aux autres sont analogues.
La figure ci-dessous donne une idée de la mise en œuvre de la construction décrite ci-dessus.
4
2
2
0
4
6
a 0 := a
8
b 0 := b
a1
b1
a2
b2
a3
b3
a4
b4
a5
a6
b5
b6
Exercice 1
Écrire un programme qui affiche une valeur approchée de la 2 solution de l’équation
x = cos(x)
d’inconnue x ∈ [0, π], avec une erreur inférieure ou égale à 10−5 , en implémentant l’algorithme de dichotomie exposé
précédemment.
Exercice 2
L’équation
(E ) : x 2 − 6x + 5 = 0
possède deux solutions dans R : 2 et 3.
2. Le théorème des valeurs intermédiaires, judicieusement appliqué, nous assure qu’il existe au moins une solution. Ici, on peut démontrer
l’unicité de la solution. Comment ?
3
1. Que se passe-t-il si l’on adapte le programme de l’exercice 1 à cette équation, en partant de l’intervalle [1, 3] ?
On regardera en particulier le nombre d’itérations.
2. Améliorer le programme précédent, pour corriger le problème décelé à la question 1.
4
Téléchargement