ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges

Méthode des pas décimaux pour l'équation f(x) = 0       
       » Autres méthodes

La pratique de la méthode dichotomique conduit à utiliser une méthode dérivée conduisant plus rapidement à une solution approchée, surtout si l'on se contente de peu de décimales exactes, ce qui est le cas dans la résolution des équations proposées au collège ou au lycée.

A cet égard l'exemple proposé ci-contre, f : x → sin x - x/2 au voisinage de x = 2, est significatif :

 

On voit que la solution cherchée La solution cherchée s est proche de 2. La représentation graphique permet d'affirmer qu'au voisinage de s, on a f(x) > 0 si x < s et f(x) < 0 si x > s.

On est alors amené à préférer "tester" successivement sur sa calculatrice programmable 1.9 , 1.89, 1.891, …, 1.895, 1.896, 1.8951, etc. suivant la précision demandée (généralement le dixième ou le centième près). C'est ce que nous appelons la méthode des pas décimaux.

Les conditions sur la fonction f à annuler sont les mêmes que pour la méthode dichotomique. L'algorithme sur ordinateur est le suivant : on part d'une valeur approchée par défaut. On constate le signe de f(x
o) et on augmente x de h en h (h est le pas initial, 1 par exemple) tant que f(x) et f(xo) sont de même signe.

Dès que le signe change, on recule de h; soit x la valeur obtenue (1 dans notre cas). On augmente alors x de 1/10 en 1/10 : on teste successivement 1,1, ..., 1,8; pour x = 1,9 on aura f(x) < 0 : on recule en 1,8 (x - h) et on augmente x de 1/100 en 1/100 (h = h/10) et ainsi de suite.

Cette méthode, d'une simplicité extrême, est très efficace et fournit à chaque recul une décimale exacte supplémentaire.

Programmation de la méthode en JavaScript :

 !   Rappelons que JavaScript travaille et affiche toujours en double précision, c'est à dire avec 16 chiffres significatifs. Le dernier chiffre significatif sera alors généralement faux.

     Pour tester ce programme vous devez entrer votre fonction en utilisant une syntaxe comprise par le langage JavaScript. L'instruction with (Math), placée en début de procédure, évite à l'utilisateur de préciser Math devant chaque fonction mathématique utilisée. Les opérations et fonctions usuelles sont les suivantes :

»   fonctions mathématiques usuelles


<SCRIPT LANGUAGE=JavaScript>
var pi=3.141592653589793;
var e=2.7182818284590452;

function meth_decim()
{
with (Math)
{
f="sin(x)-x/2"; x=1 ;h=1;
f=prompt("Votre fonction f(x) = ",f)
x=eval(prompt("x initial = ",x))
y=eval(f) ; s=sgn(y)
h=prompt("pas initial = ",h)
if (h==null) {return} else {h=eval(h)}
while (x != x+h)
{
dp=1
while (dp>0)
{
x=x+h ; y=eval(f) ; dp=s*sgn(y)
}
x=x-h ; h=h/10
if (!confirm("x= "+x+"\n"+"Ok pour continuer")) return
}
alert("x= "+x+"\n"+"Je ne peux pas faire mieux.")
}
}

function sgn(y)
{return (y>0) - (y<0)}
</SCRIPT>

Un autre exemple d'exécution : L'équation résolue est x2 - 2 = 0 au voisinage de x = 1

 

Autres méthodes de résolution approchée :  »


© Serge Mehl - www.chronomath.com