Algorithme de la méthode de dichotomie avec exemples

Résumé intelligent

La méthode de dichotomie est une technique numérique fiable qui permet de trouver une racine d'une fonction continue en divisant par deux de manière itérative un intervalle où la fonction change de signe. Simple et à convergence garantie, elle est largement utilisée en ingénierie, en calcul scientifique et dans les cours d'introduction à l'analyse numérique.

  • (I.e. Idée de base : Divisez à plusieurs reprises en deux un parenthèse [a, b] où f(a) et f(b) ont des signes opposés jusqu'à ce que l'intervalle se réduise en dessous d'une tolérance.
  • (I.e. Base théorique : Elle repose directement sur le théorème des valeurs intermédiaires, qui garantit l'existence d'une racine lorsque la fonction change de signe sur un intervalle continu.
  • (I.e. Comportement de convergence : Convergence linéaire avec une erreur divisée par deux à chaque itération, ce qui donne des améliorations de précision prévisibles mais relativement lentes.
  • Points forts : Converge toujours pour des parenthèses valides, ne nécessite que des valeurs de fonction et est facile à implémenter dans n'importe quel langage de programmation.
  • 🧪 Utilisation pratique: Utile pour la résolution d'équations non linéaires en physique, en finance, pour la recherche d'hyperparamètres en apprentissage automatique et pour les solveurs numériques pilotés par l'IA.

Qu'est-ce que la méthode de dichotomie ?

La méthode de dichotomie est l'une des techniques numériques fondamentales pour trouver la racine d'un polynôme ou d'une équation transcendante. Elle consiste à encadrer l'intervalle contenant la racine, puis à subdiviser cet intervalle en deux à chaque itération jusqu'à ce que la racine soit localisée dans une tolérance acceptable. C'est pourquoi la méthode de dichotomie est également appelée méthode d'encadrement.

La méthode de dichotomie, dont le mécanisme de fonctionnement s'apparente à la recherche dichotomique, est également connue sous les noms de méthode de recherche dichotomique, méthode de la moitié ou méthode de la dichotomie. Elle repose sur un fondement théorique solide : le théorème des valeurs intermédiaires, qui garantit qu'une fonction continue changeant de signe sur un intervalle s'annule nécessairement à l'intérieur de cet intervalle.

Maintenant que la définition de base est posée, explorons pourquoi la recherche des racines des équations est importante et comment la méthode de dichotomie s'intègre dans ce contexte plus large.

Trouver les racines des équations

Dans cette discussion, nous nous concentrons uniquement sur les équations à une seule variable indépendante. Ces équations peuvent être linéaires ou non linéaires. Les équations linéaires décrivent le graphique d'une droite, tandis que les équations non linéaires décrivent des courbes et des formes plus complexes.

La racine d'une équation est la valeur de la variable indépendante qui satisfait l'équation. Par exemple, la racine de l'équation f(x) = 4 – x2 = 0 vaut 2, car f(2) = 4 – 22 = 0.

Considérons f(x) comme une fonction réelle continue. D'après le théorème des valeurs intermédiaires, l'équation f(x) = 0 admet au moins une racine entre a et b dès que f(a)f(b) < 0. Autrement dit, la fonction f(x) possède une racine « c » quelque part entre a et b.

Trouver les racines des équations

C’est précisément cette propriété de changement de signe que la méthode de dichotomie exploite. La section suivante illustre graphiquement ce principe.

Représentation graphique de la méthode de dichotomie

Le graphique suivant représente le principe de fonctionnement de la méthode de dichotomie. On y voit que la racine réelle de l'équation est indiquée en rouge.

La procédure peut être résumée comme suit :

  • Nous choisissons d'abord deux estimations initiales, a1 et B1, pour lequel f(a1)f(b1) < 0. D'après le théorème des valeurs intermédiaires, la racine doit se trouver dans [a1, b1].
  • Nous calculons ensuite le point médian d'un1 et B1, qui est b2L'intervalle initial est maintenant réduit à [a1, b2] parce que f(a1)f(b2) < 0.
  • De la même manière, l'intervalle est divisé par deux à plusieurs reprises jusqu'à ce qu'une solution approximative soit trouvée dans la tolérance souhaitée.

Représentation graphique de la méthode de bissection

L'intuition géométrique étant désormais claire, nous pouvons formaliser la procédure sous forme d'un algorithme étape par étape.

Algorithme de méthode de bissection

Les étapes pour appliquer l'algorithme de la méthode de bissection pour trouver la racine de l'équation f(x) = 0 sont les suivantes.

Étape 1) Choisissez des estimations initiales a, b et un taux de tolérance e.

Étape 2) Si f(a)f(b) >= 0, alors la racine ne se trouve pas dans cet intervalle. Dans ce cas, il n'y a pas de solution dans [a, b].

Étape 3) Trouvez le point médian, c = (a + b)/2.

(i) Si la valeur de la fonction au point médian f(c) = 0, alors c est la racine. Passez à l'étape 5.
(ii) Si f(a)f(c) < 0, la racine se trouve entre a et c. Alors posez a = a, b = c.
(iii) Sinon, définissez a = c, b = b.

Étape 4) Si l'erreur absolue est supérieure au taux de tolérance, c'est-à-dire (b – a) > e, retournez à l'étape 3.

Étape 5) Affichez c comme racine approximative.

Prenons l'exemple de la méthode de dichotomie. Nous allons trouver la racine de la fonction continue suivante à l'aide de la formule de dichotomie.

f(x) = x3 - X2 + 2

Exemple de méthode de bissection

Étape 1) Supposons que,

         une = -10,
         b = 10, et
         e = 1% ou 0.01.

Étape 2) Maintenant, nous allons vérifier si f(a)f(b) >= 0 ou non.

         f(a) = f(-10) = (-10)3 – (-10)2 + 2 = -1098
         f(b) = f(10) = (10)3 - (10)2 + 2 = 902
         f(a)f(b) = f(-10)f(10) = (-1098)(902) < 0

Par conséquent, la racine de la fonction ci-dessus se trouve dans l'intervalle [-10, 10].

Étape 3) Ensuite, le point médian c est calculé.

Exemple de méthode de bissection

Il faut maintenant vérifier les conditions suivantes :

(i) Si f(c) = 0 :
         f(c) = f(0) = (0)3 - (0)2 + 2 = 2, ce qui n'est pas égal à 0.

(ii) Si f(a)f(c) < 0 :
         f(c)f(a) = 2 * (-1098) < 0

La condition est remplie. Pour l'itération suivante, les valeurs seront :

         une = une = -10
         b = c = 0

Étape 4) Comme (b – a) = (0 – (-10)) = 10 > 0.01, le processus est répété. Les itérations suivantes sont présentées dans le tableau ci-dessous.

Itération a b c ba f(c)
1 - 10 0 0 10 2
2 -5 0 -5 5 - 148
3 - 2.5 0 - 2.5 2.5 - 19.875
4 - 1.25 0 - 1.25 1.25 - 1.52562
5 - 1.25 - 0.625 - 0.625 0.625 1.36523
6 - 1.25 - 0.9375 - 0.9375 0.3125 0.297119
7 - 1.09375 - 0.9375 - 1.09375 0.15625 - 0.50473
8 - 1.01562 - 0.9375 - 1.01562 0.078125 - 0.0791054
9 - 1.01562 - 0.976562 - 0.976562 0.0390625 0.115003
10 - 1.01562 - 0.996094 - 0.996094 0.0195312 0.0194703
11 - 1.00586 - 0.996094 - 1.00586 0.00976562 - 0.0294344

Étape 5) À la 11e itération, la condition de l'étape 4 devient fausse. Par conséquent, la racine approximative de cette équation est -1.00586.

Une fois l'exemple numérique terminé, la section suivante présente le diagramme logique qui capture l'intégralité du flux de contrôle.

Diagramme logique de la méthode de bissection

L'organigramme ci-dessous résume la logique de décision de la méthode de dichotomie, y compris la vérification des supports, la mise à jour du point médian et le test de tolérance.

Diagramme logique de la méthode de bissection

Pseudo-Code

Le pseudo-code ci-dessous reproduit l'algorithme et sert de modèle pour implémenter la méthode de dichotomie dans n'importe quel langage de programmation.

Start
Set a, b, e
if f(a)*f(b) >= 0
    Output("Root does not exist in this interval")
    Stop
while (b-a) > e do
    c ← (a + b)/2
    if f(c) = 0
        break
    end if
    if f(c)*f(a) < 0 then
        b ← c
    else
        a ← c
end while
Output(c)
Stop

Exemple de méthode de bissection en C/C++

Le C/ suivantC++ Le programme implémente la méthode de dichotomie pour trouver la racine de f(x) = x3 - X2 + 2 dans l'intervalle [-10, 10].

Entrées :

#include <bits/stdc++.h>
using namespace std;
#define Error 0.01
double value(double x)
{
    return x*x*x - x*x + 2;
}
void bisection_method(double a, double b)
{
    if (value(a) * value(b) >= 0)
    {
        cout << "The root does not lie in this interval\n";
        return;
    }
    double c = a;
    while ((b-a) >= Error)
    {
        c = (a+b)/2;
        if (value(c) == 0.0)
            break;
        else if (value(c)*value(a) < 0)
            b = c;
        else
            a = c;
    }
    cout << "The root is :" << c;
}
int main()
{
    double a = -10, b = 10;
    bisection_method(a, b);
    return 0;
}

Sortie :

The root is :-1.00586

Exemple de méthode de bissection dans Python

Le Python La version ci-dessous produit la même racine approximative en utilisant une logique identique, ce qui la rend idéale pour des expérimentations et un enseignement rapides.

Entrées :

def value(x):
    return x*x*x - x*x + 2

def bisection_method(a, b):
    if (value(a) * value(b) >= 0):
        return
    c = a
    while ((b-a) >= 0.01):
        c = (a+b)/2
        if (value(c) == 0.0):
            break
        if (value(c)*value(a) < 0):
            b = c
        else:
            a = c
    print("The root is : ", "%.4f" % c)

a = -10
b = 10
bisection_method(a, b)

Sortie :

The root is :  -1.0059

Avantages et limites de la méthode de bissection

Comme toute technique numérique, la méthode de dichotomie présente des atouts indéniables et quelques inconvénients pratiques. Le tableau ci-dessous récapitule les principaux avantages et inconvénients.

Avantages Inconvénients
Méthode de recherche de racine simple et facile à implémenter dans n'importe quel langage. La convergence est lente car la méthode divise simplement l'intervalle par deux à chaque étape.
Elle converge toujours lorsqu'une parenthèse valide est fournie, puisqu'elle encadre la racine tout au long du processus. Si l'une des estimations initiales est déjà proche de la racine, atteindre la racine nécessitera tout de même de nombreuses itérations.
Le taux d'erreur peut être contrôlé directement en augmentant ou en diminuant le nombre d'itérations ou en resserrant la tolérance. Elle ne peut pas trouver de racines complexes ni de racines multiples de multiplicité paire, car la fonction ne change pas de signe à de telles racines.

Applications de la méthode de dichotomie

La méthode de dichotomie est utilisée dans de nombreux scénarios informatiques pratiques et modernes où une étape de recherche de racines robuste est nécessaire.

  • Simulations d'ingénierie : Résolution d'équations non linéaires intervenant dans le transfert de chaleur, la dynamique des fluides et l'analyse structurale.
  • Modélisation financière: Calcul des rendements, des taux de rendement internes et des seuils de rentabilité pour lesquels il n'existe pas de solutions analytiques.
  • Apprentissage automatique et IA : Localisation des seuils, étalonnage des modèles et réglage des hyperparamètres au sein des solveurs numériques pilotés par l'IA.
  • Infographie : Détermination des intersections rayon-surface et des valeurs des paramètres le long des courbes.
  • Systèmes embarqués: Approximation des racines dans les contrôleurs à faibles ressources où la simplicité et la prévisibilité sont plus importantes que la vitesse.

FAQ

La méthode de dichotomie est une technique numérique qui permet de trouver une racine d'une fonction continue en divisant en deux de manière répétée un intervalle où la fonction change de signe et en sélectionnant la moitié qui contient encore la racine.

Elle converge toujours lorsque la fonction est continue sur [a, b] et f(a)f(b) est inférieur à zéro, car le théorème des valeurs intermédiaires garantit l'existence d'une racine dans l'intervalle, et la division par deux continue de réduire le crochet autour de celle-ci.

La méthode de dichotomie converge linéairement. L'erreur est approximativement divisée par deux à chaque itération ; ainsi, atteindre une tolérance e à partir d'un intervalle de longueur L nécessite environ log₂(L/e) itérations, ce qui est plus lent que les méthodes de Newton ou de la sécante.

La méthode échoue lorsque f(a) et f(b) ont le même signe, lorsque la fonction est discontinue dans l'intervalle, ou lorsque la racine a une multiplicité paire, car la fonction ne change pas de signe à travers une telle racine.

Les solveurs basés sur l'IA combinent souvent la méthode de dichotomie avec des modèles d'apprentissage. Un réseau neuronal suggère un intervalle précis autour d'une racine probable, et la méthode de dichotomie garantit alors une solution fiable et validée à l'intérieur de cet intervalle.

Les modèles d'IA excellent dans la reconnaissance de formes, mais ne peuvent pas toujours garantir des réponses exactes. Les méthodes numériques classiques, comme la dichotomie, offrent une convergence prouvée et une erreur bornée, ce qui les rend idéales comme backends fiables au sein des pipelines d'IA pour les calculs critiques.

Résumez cet article avec :