Calcul approché de solutions d’équations
Recherche de zéro par dichotomie
Dans beaucoup des contextes il faut résoudre des équations non-linéaires et s’ils n’ont pas de
solution analytique, on a encore une fois besoin de méthodes numériques. Supposons d’abord que
nous avons une fonction f : R → R et nous cherchons un ou plusieurs zéros x0 :
f (x0 ) = 0 (1)
En premier lieu, il faut qu’on ait connaissance de quelques propriétés de la fonction f .
• L’équation (1) peut avoir pas du solution, une solution ou plusieurs solutions. Exemple :
1
f (x) =
x
• Si l’équation a plusieurs solutions, le(s)quelle(s) cherchons-nous ? Peut-être on peut répondre
qu’on prend toutes, mais l’équation sin x = 0 a des solutions xn = Πn avec n ∈ Z et il est
impossible de les trouver tous de manière numérique.
• Même si l’équation (1) a seulement une solution, les conditions initiales peuvent jouer une
rôle importante pour la recherche de zéro. Bref, si vous ne connaissez pas la fonction f très
bien, il faudra mieux commencer avec une trace de f .
Supposons que nous avons a0 < b0 ∈ R avec f (a0 ) < 0 et f (b0 ) > 0. Si la fonction f est continue
sur l’intervalle [a0 , b0 ] nous savons que la fonction f (x) au moins un zéro dans cet intervalle
1
L’importance de la continuité: f (x) = ; pour a0 = −1, b0 = 1 on a bien f (a0 ) = −1 < 0 et
x
f (b0 ) = 1 > 0 mais la fonction f n’est pas continue sur [−1, 1] car il contient un point singulier
x = 0.
Nous voulons trouver le zéro de la fonction avec une certaine précision requise, par exemple :
ε = 10−6
Exercice 1
Outils: numpy, matplotlib
Écrire un programme qui répète les règles suivantes:
an + bn
1. Calculer la moyenne mn =
2
2. Quand f (mn ) > 0, on prend an+1 = an , bn+1 = mn , soit on remplace b.
1
3. Quand f (mn ) < 0, on prend an+1 = mn , bn+1 = bn , soit on remplace a.
4. Si |f (mn )| ≤ ε on peut terminer, autrement le processus peut redémarrer à partir du point 1.
Exercice 2
Prenez la fonction
f (x) = x2 − 3
TAF:
1. Créez d’abord une trace de la fonction (f x).
2. Vérifiez que f a un zéro dans l’intervalle [a0 , b0 ] = [0, 5].
3. Évaluez le nombre d’itérations m nécessaires pour atteindre la précision requise
√ ε = 10−K
avec K = 3, 6, 9, 12, enfin comparez votre résultat avec le résultat exact 3.
Les inconvénients de cette méthode:
• La méthode de dichotomie est lente
• Nécessite la connaissance des points a0 et b0 où les signes de f (a0 ) et f (b0 ) sont différents.
Méthode de Newton-Raphson
La méthode consiste à introduire une suite {xn } d’approximation successives de l’équation f (x) = 0.
On utilise la tangente au point xn :
1. L’équation de la tangente en xn est tf (x) = f (xn ) + (x − xn )f 0 (xn )
2. xn+1 est l’abscisse du point d’intersection de la tangente tf en xn avec l’axe des abscisses.
3. Cette tangente coupe l’axe des abscisse quand tf (xn+1 ) = 0
4. f (xn ) + (xn+1 − xn )f 0 (xn ) = 0 ⇒ (xn+1 − xn )f 0 (xn ) = −f (xn )
f 0 (xn)
5. (xn+1 − xn ) = −
f (x)
On retrouve la relation de récurrence suivante:
f 0 (xn )
xn+1 = xn − (2)
f (x)
Conditions
• La fonction f doit être dérivable en chacun des points considérés.
• La dérivée ne doit pas s’annuler sur cet intervalle.
• Il faut prendre un x0 assez proche de la valeur α qui annule la fonction.
2
Avantages et inconvénients
Avantage: cette méthode nécessite un seul point x0
Inconvénients: On a aussi besoins de l’expression analytique de la dérivée de f
Précision
Pour le critère d’arrêt d’une précision p
f 0 (xn )
|xn+1 − xn | = < 10−p (3)
f (x)
Exercice 3
Écrire le programme de recherche de zéro de Newton-Raphson
Outils: numpy, matplotlib
Exercice 4
Cherchez encore une fois la racine de la fonction f (x) = xe−x mais maintenant avec la méthode de
Newton-Raphson.
Essayez x0 = 0.4, 0.5 et 0.6. Faites toujours 10 itérations.