Vous êtes sur la page 1sur 2

MPSI 23/24 Python pour les Sciences Physiques-ON-2-1

OUTILS NUMERIQUES
Equations algébriques (première partie)

Il s’agit d’un exemple de problème stationnaire à une dimension, qui permet d’appliquer à l’informatique les
propriétés mathématiques des suites et les fonctions. Les deux méthodes proposées par le programme permettent de
trouver une approximation de la solution d’une équation du type f (x) = 0 où f : [a,b] → est une fonction
continue (a < b). Dans notre cours de Sciences Physiques, une équation algébrique sera toujours une équation de
la forme P = 0, où P est un polynôme d’ordre n, et une équation transcendante sera une équation de la forme E =
0 où E met en jeu la fonction exponentielle, logarithme, sinus, cosinus.
Recherche par dichotomie
Le principe de la dichotomie repose sur la version suivante du théorème des valeurs intermédiaires :
Si f (a).f (b)  0, alors il existe xo  [a,b] tel que f (xo) = 0.
La condition f (a).f (b)  0 signifie que f (a) et f (b) sont des termes de signes opposés (ou que l’un des deux est
nul). L’hypothèse de continuité est ici essentielle. Ce théorème affirme qu’il existe au moins une solution de
l’équation f (x) = 0 dans l’intervalle [a,b]. Pour trouver une solution approchée de l’équation f (x) = 0, il faut
appliquer ce théorème sur un intervalle suffisamment petit. Cela permet d’obtenir la solution recherchée comme la
limite d’une suite. La dichotomie permet de construire facilement une suite d’intervalles emboîtés, dont la longueur
tend vers 0, et contenant chacun la solution. On obtient donc un intervalle de longueur divisée par deux, dans lequel
l’équation f(x) = 0 admet une solution. On itère alors le procédé pour diviser de nouveau l’intervalle en deux.
Recherche de l’algorithme avec une approche mathématique
f fonction continue sur l’intervalle [a,b]. On suppose a < b et f(a).f(b)  0. On définit les suites (an) et (bn) :
- a0 = a et b0 = b
- puis par récurrence : si f(an) et f  a n + b n  sont de même signe, on pose a + bn
a n+1 = n et bn+1 = bn
 2  2
a +b
Sinon, on pose an+1 = an et bn+1 = n n
2
Ainsi, l’équation f(x) = 0 possède toujours une solution dans l’intervalle [an , bn] quelle que soit la valeur de n  .
On montre alors que les suites (an) et (bn) sont adjacentes et que leur limite commune est la solution recherchée : en
effet, dans les deux cas, il existe une solution xn+1 de l’équation f (x) = 0) dans l’intervalle [an+1,bn+1], et
an+1  xn+1  bn+1
b− a
On arrête le processus dès que b n − a n = n est inférieur à la précision souhaitée (dès que le critère de
2
convergence est satisfait). Comme (an) est par construction une suite croissante, (bn) une suite décroissante, et que
(bn – an) tend vers 0, lorsque n tend vers l’infini, les suites (an) et (bn) sont adjacentes et admettent une même limite.
D’après le théorème des gendarmes, c’est aussi la limite de la suite (xn).
La continuité de f permet d’affirmer que les suites (an) et (bn) tendent toutes les deux vers la solution recherchée.
Exemple de graphe
Algorithme en langage naturel et en pseudo-code
A partir d’un intervalle donné [a,b], encadrant une racine de la fonction f :
● Calculer le point c milieu de l’intervalle : c = (a + b)/2
● Evaluer p = f (a). f (c) puis test :
○ si p > 0, il n’y a pas de racine dans l’intervalle [a, c]. La racine est donc
dans l’intervalle [c, b]. On donne alors à a la valeur de c
○ si p < 0, la racine est dans [a, c]. On donne alors à b la valeur de c
○ si p = 0, alors la racine est c.
● Test d’arrêt : Evaluer le critère de convergence
● Recommencer si le critère de convergence n’est pas satisfait

La méthode fonctionne mal si la précision machine ne permet pas d’approcher la solution de suffisamment près.

Quelques compléments sur la résolution d’équation par dichotomie


Théorème des zéros d’une fonction continue
soit une fonction continue f : [a,b] → R, si f (a) f (b) < 0, alors il existe   ]a,b[ tel que f () = 0
L’idée de la méthode est donc de partir de l'intervalle [a; b], et de le restreindre jusqu'à l'obtention d'un intervalle
contenant une racine f de largeur suffisamment petite . On suppose f(xm)  0.
Exemple d’algorithme : 1. On fixe l’intervalle [x1; x2] tel que f (x1).f (x2) < 0 et un critère d'arrêt .
x1 + x 2
2. Poser xm =
2
x
3. Si 1 − x 2   arrêter; la solution est xm.
4. Sinon si f (x1) . f (xm) < 0 poser x2 = xm.
5. Sinon si f (x2) . f (xm) < 0 poser x1 = xm.
6. Retourner à l'étape 2.
Soit L la longueur de l'intervalle de départ [a; b].
Après la 1ère itération, le nouvel intervalle est divisé par 2, d'où l'erreur absolue est au plus L/2.
Après la 2e itération, le nouvel intervalle est divisé par 2, d'où une erreur absolue d'au plus L/4.
Ainsi de suite…
Après la nième itération, l'intervalle précédent est divisé par 2, pour une erreur absolue d'au plus L/2n.

Exemple : f(x) = x2 sin x – 3.1 sur l’intervalle [1,4]

Limites de la méthode
En plus des conditions d'arrêts, il faut également vérifier si, pour la solution xm, |f (xm)| tend bien vers 0.
La méthode de la dichotomie ne permet de travailler que sur un intervalle fermé.Elle n'est pas rapide mais on est
sûr d’aboutir si on a un bon intervalle de départ.
Il existe des cas où la méthode ne fonctionne pas bien, en particulier :
si la fonction f (x)
- est tangente à l'axe des x et donc f ne présente pas un changement de signe autour de la racine (cas où f possède
une racine multiple en ce point),
- possède un nombre pair de racines dans l'intervalle de départ (dans ce cas, f a le même signe aux extrémités de
l'intervalle),
- ou possède un nombre impair de racines dans l'intervalle de départ (dans ce cas, il n'est pas possible de déterminer
à l'avance laquelle des racines sera trouvée).

Vous aimerez peut-être aussi