Méthode de bissection

Objectifs d'apprentissage

À la fin de cette leçon, vous serez en mesure de :

  • Comprendre le principe de l'alternance de signe
  • Implémenter l'algorithme de bissection
  • Estimer le nombre d'itérations nécessaires pour atteindre une précision donnée
  • Identifier les conditions d'application de la méthode

Principe fondamental : l'alternance de signe

La méthode de bissection (aussi appelée interval-halving method ou méthode de dichotomie) repose sur un principe géométrique simple : si une fonction continue change de signe entre deux points, alors elle s'annule quelque part entre ces deux points.

💡

Théorème des valeurs intermédiaires

Si est continue sur l'intervalle et si et sont de signes opposés, alors il existe au moins un point tel que .

Idée de la méthode

L'algorithme exploite ce théorème de manière itérative :

  1. On part d'un intervalle contenant une racine
  2. On coupe l'intervalle en deux au point milieu
  3. On détermine dans quelle moitié se trouve la racine (par le test de signe)
  4. On recommence avec le nouvel intervalle, deux fois plus petit

À chaque itération, l'intervalle de recherche est divisé par 2, d'où le nom de « bissection ».


Condition suffisante de convergence

🚨

Condition suffisante

La méthode de bissection converge vers une racine si :

est continue sur l'intervalle de recherche

et (signes opposés)

Cas de figure selon le comportement de F

Examinons différentes configurations possibles pour une fonction F continue sur [X₁, X₂] avec F(X₁) · F(X₂) < 0 :

Cas de figure pour la méthode de bissection

Condition : F continue sur [X₁, X₂] avec F(X₁) · F(X₂) < 0

Cas 1 : F croissante

Racine unique garantie

F(X₁), F(X₂)
Racine(s)
X₁, X₂

F(X₁) < 0 et F(X₂) > 0

→ F(X₁) · F(X₂) < 0 ✓

Cas 2 : F décroissante

Racine unique garantie

F(X₁), F(X₂)
Racine(s)
X₁, X₂

F(X₁) > 0 et F(X₂) < 0

→ F(X₁) · F(X₂) < 0 ✓

Cas 3 : Plusieurs racines

F continue, change de signe

F(X₁), F(X₂)
Racine(s)
X₁, X₂

F(X₁) > 0 et F(X₂) > 0

→ F(X₁) · F(X₂) < 0 ✓

⚠️ La bissection convergera vers UNE SEULE racine (non déterminée à l'avance)

Résumé des cas :

Cas 1 & 2 :

Si F est monotone (croissante ou décroissante), la racine est unique et la bissection la trouve.

Cas 3 :

Si F n'est pas monotone, il peut y avoir plusieurs racines. La bissection en trouve une seule.

Conseil :

Toujours tracer la fonction avant d'appliquer la bissection pour identifier toutes les racines.

⚠️

Attention aux racines multiples

Si l'intervalle contient plusieurs racines, la méthode de bissection convergera vers une seule d'entre elles (celle qui se trouve dans le sous-intervalle sélectionné à chaque étape). Il n'y a pas de garantie sur laquelle sera trouvée.


Algorithme de la méthode de bissection

Pseudo-code

bissection.pseudotext
Algorithme : Méthode de bissection
Entrées : F (fonction), X1, X2 (bornes), δ (tolérance sur x), ε (tolérance sur F)
Sortie : X (approximation de la racine)

Précondition : F(X1) · F(X2) ≤ 0

Calculer X3 = (X1 + X2) / 2

Tant que (|X1 - X2| ≥ δ) ET (|F(X3)| ≥ ε) faire
  Calculer X3 = (X1 + X2) / 2

  Si F(X1) · F(X3) ≤ 0 alors
      X2 ← X3    // La racine est dans [X1, X3]
  Sinon
      X1 ← X3    // La racine est dans [X3, X2]
  Fin Si
Fin Tant que

Retourner X = X3

Implémentation en Python

bissection.pypython
def bissection(f, x1, x2, tol_x=1e-6, tol_f=1e-10, max_iter=100):
  """
  Méthode de bissection pour trouver une racine de f sur [x1, x2].

  Paramètres:
      f : fonction dont on cherche la racine
      x1, x2 : bornes de l'intervalle initial
      tol_x : tolérance sur x (critère d'arrêt)
      tol_f : tolérance sur f(x) (critère d'arrêt)
      max_iter : nombre maximum d'itérations

  Retourne:
      x3 : approximation de la racine
      iterations : liste des itérés successifs
  """
  # Vérification de la condition initiale
  if f(x1) * f(x2) > 0:
      raise ValueError("f(x1) et f(x2) doivent être de signes opposés")

  iterations = []

  for n in range(max_iter):
      x3 = (x1 + x2) / 2
      fx3 = f(x3)
      iterations.append({'n': n+1, 'x3': x3, 'f(x3)': fx3, 'erreur': abs(x2 - x1)})

      # Critères d'arrêt
      if abs(x2 - x1) < tol_x or abs(fx3) < tol_f:
          return x3, iterations

      # Choix du sous-intervalle
      if f(x1) * fx3 <= 0:
          x2 = x3
      else:
          x1 = x3

  return x3, iterations

Définitions importantes

Itération

💡

Définition : Itération

Une itération est définie comme un parcours complet de la séquence d'opérations de la boucle principale de l'algorithme. Cela comprend :

  1. Le calcul du point milieu
  2. L'évaluation de
  3. Le choix du nouveau sous-intervalle

Itéré d'ordre n

💡

Définition : Itéré d'ordre n

L'itéré d'ordre n, noté , est la valeur de l'approximation de la racine obtenue après itérations.

  • : valeur initiale (point milieu de )
  • : valeur après la 1ère itération
  • : valeur après la n-ème itération

Analyse de l'erreur

Intervalle de confiance

Au départ, la racine se trouve dans l'intervalle . L'erreur maximale sur notre approximation est donc :

Après chaque itération, l'intervalle est divisé par 2, donc l'erreur est également divisée par 2.

Formule de l'erreur à l'itération n

🚨

Erreur de la méthode de bissection

Après itérations, l'erreur absolue sur l'approximation de la racine est bornée par :

Nombre d'itérations nécessaires

Si on souhaite obtenir une précision sur la racine, on peut calculer le nombre d'itérations nécessaires :

💡

Estimation du nombre d'itérations

Pour obtenir une précision à partir d'un intervalle initial , il faut au minimum :

désigne la fonction plafond (arrondi supérieur).

Exemple de calcul

Pour un intervalle initial et une précision souhaitée :

Il faudra donc au moins 11 itérations.


Exemple détaillé

Considérons la fonction :

Cette fonction peut s'écrire sous forme factorisée :

Elle possède donc trois racines exactes : , et .

Paramètres de l'algorithme

  • Intervalle initial :
  • Tolérance sur :
  • Tolérance sur :

Tableau des itérations

ItérationX₃F(X₃)|Xₙ₊₁ - Xₙ|
11.5-1.8750.5
21.750.1718750.25
31.625-0.9433590.125
41.6875-0.4094240.0625
51.71875-0.1247860.03125
61.734380.02202990.015625
71.72656-0.05175540.0078125
81.73047-0.01495720.00390625
91.732420.003512670.00195312
101.73145-0.00572820.000976562
111.73193-0.001109240.000488281

Résultat : La tolérance en est atteinte en 11 itérations.

L'approximation obtenue est , très proche de la valeur exacte


Visualisation interactive

Le graphique suivant vous permet de visualiser la méthode de bissection en action. Vous pouvez observer comment l'intervalle se réduit à chaque itération.

Visualisation de la méthode de bissection

Fonction : F(X) = X³ + X² - 3X - 3

Intervalle initial :

Itération : 1 / 13
X₁1.00000
X₂2.00000
X₃ (milieu)1.50000
Erreur1.000000
Tableau des itérations (13 itérations)
nX₁X₂X₃F(X₃)Erreur
11.000002.000001.50000-1.8750001.000000
21.500002.000001.750000.1718750.500000
31.500001.750001.62500-0.9433590.250000
41.625001.750001.68750-0.4094240.125000
51.687501.750001.71875-0.1247860.062500
61.718751.750001.734380.0220300.031250
71.718751.734381.72656-0.0517550.015625
81.726561.734381.73047-0.0149570.007813
91.730471.734381.732420.0035130.003906
101.730471.732421.73145-0.0057280.001953
111.731451.732421.73193-0.0011090.000977
121.731931.732421.732180.0012010.000488
131.731931.732181.732060.0000460.000244
Interprétation
  • • La zone bleue claire représente l'intervalle de recherche actuel [X₁, X₂]
  • • Les points verts sont les bornes de l'intervalle
  • • Le point rouge est le point milieu X₃
  • • À chaque itération, l'intervalle est divisé par 2
  • • La racine exacte est √3 ≈ 1.7320508...
Formule de l'erreur

ΔX⁽ⁿ⁾ = |X₁ - X₂| / 2ⁿ

Après 1 itération(s), l'erreur théorique est : 0.500000


Avantages et inconvénients

Avantages

  • Simplicité : algorithme facile à comprendre et à implémenter
  • Robustesse : converge toujours si les conditions sont satisfaites
  • Hypothèse faible : ne nécessite que la continuité de
  • Convergence garantie : on peut prédire exactement le nombre d'itérations nécessaires

Inconvénients

  • Convergence lente : convergence linéaire (l'erreur est divisée par 2 à chaque itération)
  • Nécessite un intervalle initial : il faut connaître et tels que
  • Une seule racine : ne trouve qu'une racine même si l'intervalle en contient plusieurs
  • Pas d'extension directe : difficile à généraliser aux systèmes d'équations

Résumé

Dans cette leçon, nous avons étudié la méthode de bissection :

  1. Principe : diviser successivement l'intervalle de recherche par 2 en utilisant le changement de signe

  2. Condition suffisante : continue sur avec

  3. Algorithme : calculer le point milieu, tester le signe, choisir le bon sous-intervalle

  4. Erreur : — convergence linéaire

  5. Estimation : itérations pour une précision