Le calcul approché de solutions d'équations avec Python - Maxicours

Le calcul approché de solutions d'équations avec Python

Objectif

Écrire un programme Python permettant de calculer une valeur approchée de la solution d’une équation.

Points clés
  • Pour déterminer une valeur approchée de solutions d’équations du type f(x) = 0, on peut utiliser trois méthodes : la méthode par dichotomie, la méthode de la sécante et la méthode de Newton.
  • Exemple de programme Python traduisant la méthode par dichotomie :
  • Exemple de programme Python traduisant la méthode de la sécante :
  • Exemple de programme Python traduisant la méthode de Newton :
Pour bien comprendre
  • Résoudre des équations.
  • Connaitre le théorème des valeurs intermédiaires.

Il arrive que certaines équations ne puissent pas être résolues algébriquement. Après avoir prouvé qu’elles admettent des solutions en utilisant, par exemple, le théorème des valeurs intermédiaires, il est alors utile d’avoir des méthodes pour déterminer une approximation numérique des solutions recherchées.

Les méthodes présentées servent à trouver une approximation numérique d’équations de la forme f(x) = 0 ou se ramenant à une équation de la forme f(x) = 0 sur un intervalle [a ; b], avec a et b deux nombres réels et f une fonction monotone définie sur [a ; b].

1. La méthode par dichotomie
a. Principe

On considère une fonction f définie sur un intervalle I.
On cherche à résoudre l’équation f(x) = 0 sur un intervalle [a ; b] après avoir prouvé que la fonction f est monotone et s’annule sur cet intervalle.
On se fixe une précision e (par exemple à 10–2).
Pour cela, on utilise l’algorithme suivant.

  1. On partage l’intervalle [a ; b] en deux intervalles [a ; m] et [m ; b] avec .
  2. On choisit l’intervalle qui contient la solution pour cela, on calcule f(a) × f(m) :
    • si f(a) × f(m) ⩽ 0 cela signifie que f(a) et f(m) sont de signes contraires, donc la solution est dans l’intervalle [a ; m] ;
    • sinon la solution est dans l’intervalle [m ; b].
  3. On reprend l’étape 1 tant que (b – a) est supérieur à la précision e fixée. Pour cela, on remplace l’intervalle [a ; b] par celui qui contient la solution.
Exemple
On considère la fonction f définie sur [0 ; 1] par f(x) = ex – 2. Déterminons une valeur approchée à 0,1 près de la solution de l’équation f(x) = 0.
Étape [a ; b] m Remarques Graphique
1 [0 ; 1] 0,5 f(a) × f(m) > 0
La solution est donc dans l’intervalle [0,5 ; 1].
e = 1  0,5 = 0,5 > 0,1, donc on continue.
2 [0,5 ; 1] 0,75 f(a) × f(m) < 0
La solution est donc dans l’intervalle [0,5 ; 0,75].
e = 1  0,5 = 0,25 > 0,1, donc on continue.
3 [0,5 ; 0,75] 0,625 f(a) × f(m) < 0
La solution est donc dans l’intervalle [0,625 ; 0,75].
e = 0,625  0,75 = 0,125 > 0,1 donc on continue.
4 [0,625 ; 0,75] 0,6875 f(a) × f(m) > 0
La solution est donc dans l’intervalle [0,6875 ; 0,75].
e = 0,75  0,6875 = 0,065 < 0,1, donc on s’arrête.
La valeur approchée de la solution à 0,1 près est donc environ égale à 0,7.

Pour résumer, cet algorithme s’écrit en langage naturel de la façon suivante :

Fonction dicho(a, b, e)
   Tant que b–a > e
      m←(a+b)/2
      Si f(a) × f(m)<0 alors
         b ← m
      Sinon
         a ← m
      Fin Si
   Fin Tant que
   Retourner (a+b)/2
Fin Fonction
b. Programme
Programme Python Commentaires

On importe la bibliothèque math.

On déclare la fonction f.
On écrit avec la commande return l’expression de la fonction.

On traduit en langage Python l’algorithme expliqué dans la partie 1.a.

Exemple
On reprend l’exemple de la fonction f définie sur [0 ; 1] par f(x) = ex – 2. Pour trouver la valeur approchée à 0,1 près de la solution de l’équation f(x) = 0 dans l’intervalle [0 ; 1], on saisit dans la console :
La solution de l’équation f(x) = 0 à 0,1 près est donc 0,7.
2. La méthode de la sécante
a. Principe

On considère une fonction f définie sur un intervalle I.
On cherche à résoudre l’équation f(x) = 0 sur un intervalle [a ; b] après avoir prouvé que la fonction f est monotone et s’annule sur cet intervalle.
On se fixe une précision e (par exemple à 10–2).
Pour cela, on utilise l’algorithme suivant.

  1. On définit deux points A et B de coordonnées A(a ; f(a)) et B(b ; f(b)).
  2. On calcule l’équation de la droite (AB), celle-ci vaut : .
    La droite (AB) est appelée la sécante à la courbe représentative de la fonction f.
  3. On calcule l’abscisse c du point d’intersection C de la sécante (AB) avec l’axe des abscisses.
    On obtient : .
  4. Tant que |c – a| > e, on recommence à partir de l’étape 1 avec a = c.
Exemple
On considère la fonction f définie sur [0 ; 1] par f(x) = ex – 2.
Déterminons une valeur approchée à 0,1 près de la solution de l’équation f(x) = 0.
Étape [a ; b] m Remarques Graphique
1 [0 ; 1]  0,58 |c – a| ≈ 0,58  0,1, donc on continue.
2 [0,58 ; 1]  0,68 |c – a| ≈ 0,09 < 0,1, donc on s'arrête.
La valeur approchée de la solution de l'équation f(x) = 0 à 0,1 près est donc environ égale à 0,7.

Pour résumer, cet algorithme s’écrit en langage naturel de la façon suivante :

Fonction secante(a, b, e)
   c ← b
   Tant que |a–c| > e
      c ← a
      a ← (a*f(b)–b*f(a))/(f(b)–f(a))
   Fin Tant que
   Retourner a
Fin Fonction
b. Programme Python
Programme Python Commentaires

On importe la bibliothèque math.

On déclare la fonction.
On écrit avec la commande return l’expression de la fonction.

On traduit en langage Python l’algorithme expliqué dans la partie 2.a.

Exemple
On reprend l’exemple de la fonction f définie sur [0 ; 1] par f(x) = ex – 2. Pour trouver la valeur approchée à 0,1 près de la solution de l’équation f(x) = 0 dans l’intervalle [0 ; 1], on saisit dans la console :
La solution à 0,1 près de l’équation f(x) = 0 est donc 0,7.
3. La méthode de Newton
a. Principe

On considère une fonction f définie sur un intervalle I.
On cherche à résoudre l’équation f(x) = 0 sur un intervalle [a ; b] après avoir prouvé que la fonction f est monotone et s’annule sur cet intervalle.
On se fixe une précision e (par exemple à 10–2).
Pour cela, on utilise l’algorithme suivant.

  1. On définit deux points A et B de coordonnées A(a ; f(a)) et B(b ; f(b)).
  2. On calcule l’équation de la tangente (d) à la courbe représentative de f au point B : y = f(b)(x – b) + f(b).
  3. On calcule l’abscisse c du point d’intersection C de la tangente (AB) avec l’axe des abscisses. On obtient : .
  4. Tant que |c – b| > e, on recommence à partir de l’étape 1 avec b = c.
Exemple
On considère la fonction f définie sur [0 ; 1] par f(x) = ex – 2.
Déterminons une valeur approchée à 0,1 près de la solution de l’équation f(x) = 0.
Étape [a ; b] m Remarques Graphique
1 [0 ; 1]  0,74 |c – b| ≈ 0,26  0,1, donc on continue.
2 [0 ; 0,74]  0,69 |c – b| ≈ 0,05 < 0,1, donc on s'arrête.
La valeur approchée de la solution à 0,1 près est environ égale à 0,7.

Pour résumer, cet algorithme s’écrit en langage naturel de la façon suivante :

Fonction tangente(a, b, e) :
   c ← a
   Tant que |b–c| > e
      c ← b
      b ← b – f(x)/fprim(x)
   Fin Tant que
   Retourner b
Fin Fonction
b. Programme Python
Programme Python Commentaires

On importe la bibliothèque math.

On déclare la fonction f.
On écrit  avec la commande return l’expression de la fonction.

On déclare de la même façon la fonction dérivée.

On traduit en langage Python l’algorithme expliqué dans la partie 3.a.

Exemple
On reprend l’exemple de la fonction f définie sur [0 ; 1] par f(x) = ex – 2. Pour trouver la valeur approchée à 0,1 près de la solution de l’équation f(x) = 0 dans l’intervalle [0 ; 1], on saisit dans la console :
La solution à 0,1 près de l’équation f(x) = 0 est donc 0,7.

Vous avez déjà mis une note à ce cours.

Découvrez les autres cours offerts par Maxicours !

Découvrez Maxicours

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

quote blanc icon

Découvrez Maxicours

Exerce toi en t’abonnant

Des profs en ligne

  • 6j/7 de 17 h à 20 h
  • Par chat, audio, vidéo
  • Sur les matières principales

Des ressources riches

  • Fiches, vidéos de cours
  • Exercices & corrigés
  • Modules de révisions Bac et Brevet

Des outils ludiques

  • Coach virtuel
  • Quiz interactifs
  • Planning de révision

Des tableaux de bord

  • Suivi de la progression
  • Score d’assiduité
  • Un compte Parent