Zeros - Boni Marc
Zeros - Boni Marc
Zeros - Boni Marc
Chapitre 4
Zéros d'une fonction
Trouver les zéros d'une fonction f, c'est déterminer à quelles abscisses cette fonction coupe l'axe
des x (points rouges dans l'image ci-dessous). Cela revient à résoudre l'équation f (x) = 0.
Or, selon la fonction, l'entreprise peut se révéler difficile, voir impossible, en utilisant des
méthodes algébriques. Pour les polynômes par exemple, Galois a montré qu'il n'existe pas de
formules pour les polynômes de degré supérieur à 4.
Dans ces cas, l'emploi de méthodes numériques est indispensable. Nous allons en voir quelques-
unes dans ce chapitre.
Méthode
1. partir du couple de valeurs (a, b)
a+ b
2. évaluer la fonction en
2
3. si f ( )
a+ b
2
a le même signe que f (a), remplacer a par
a+ b
2
, sinon remplacer b par
a+ b
2
4. aller en 2 avec le nouveau couple de valeurs (a, b) jusqu'à ce que la différence entre a et b
soit inférieure à la précision voulue.
Exercice 4.2
Illustrez la dichotomie sur le graphe ci-dessous, pour trouver le zéro compris entre -1 et 0.
Idem pour le zéro compris entre 0 et 1.
Exercice 4.3
a) Calculez, avec la méthode de la dichotomie et à l'aide d'une calculatrice, le zéro de la
fonction sin(cos(2x2+1)) se trouvant dans l'intervalle [0, 1], avec une précision de 0.0001.
b) Programmez la dichotomie pour répondre à la question a).
Remarquons que cette droite est une sécante de la fonction f. En utilisant la pente et un point,
l'équation de la droite peut s'écrire :
f ( b) – f (a)
y= ( x – a)+ f (a)
b–a
Nous déterminons maintenant c, l'abscisse du point d'intersection de cette droite avec l'axe des
abscisses (zéro de la sécante) donnée par :
f (b) – f ( a)
(c – a)+ f ( a)=0
b–a
b–a
c=a – f (a)
f (b) – f ( a)
Déroulement du calcul
Comme la méthode de dichotomie, la regula falsi commence par deux points a1 et b1 tels que
f (a1) et f (b1) soient de signes opposés, ce qui implique que la fonction continue f possède au moins
un zéro dans l'intervalle [a1, b1]. La méthode consiste à produire une suite d'intervalles toujours plus
petits [ak, bk] qui contiennent tous un zéro de f. À l'étape k, le nombre
b k – ak
c k= ak – f (ak )
f ( b k ) – f ( ak )
est calculé. Comme expliqué ci-dessus, ck est l'abscisse de l'intersection de la droite passant par
(ak, f (ak)) et (bk, f (bk)) avec l'axe des abscisses. Si f (ak) et f (ck) sont de même signe, alors nous
posons ak+1 = ck et bk+1 = bk, sinon nous posons ak+1 = ak et bk+1 = ck.
Ce procédé est répété jusqu'à ce f (ck) soit « suffisamment proche » de 0.
Exercice 4.4
Illustrez le déroulement de la regula falsi sur le graphe ci-dessous, pour trouver le zéro compris
entre 0 et 1.
Exercice 4.5
a) Trouvez, avec la méthode de la regula falsi et à l'aide d'une calculatrice, le zéro de la
fonction sin(cos(2x2+1)) se trouvant dans l'intervalle [0, 1], avec une précision de 0.0001.
b) Programmez la regula falsi pour répondre à la question a).
f xn
Par récurrence, on définit la suite xn par : x n1 = xn – .
f ' x n
En principe, cette suite va converger vers le zéro cherché.
Si la fonction présente un extremum local, il y a un risque que la méthode ne converge pas, car la
valeur de la dérivée est nulle en un extremum et le nouveau point à l'infini.
Exercice 4.6
Retrouvez la valeur de xn+1 en partant de l'équation de la droite y-y0 = m(x-x0).
La pente m de la tangente en a est donnée par la dérivée f ' (a).
Exercice 4.7
Illustrez le déroulement de la méthode de Newton-Raphson sur le graphe ci-dessous...
a) avec x0 = -0.25 ;
b) avec x0 = 0.
Exercice 4.8
a) Calculez, avec la méthode de Newton-Raphson et à l'aide d'une calculatrice, le zéro de la
fonction f (x) = sin(cos(2x2+1)) se trouvant dans l'intervalle [0 ; 1], avec une précision de
0.0001.
Indication : f ' (x) = -4x·cos(cos(2x2+1))·sin(2x2+1).
b) Programmez la méthode de Newton-Raphson pour répondre à la question a).
c) Expliquez ce qui se passe en prenant x0 = 1, x0 = 1.1, et x0 = 1.2.
Exercice 4.9
Illustrez le déroulement de la méthode de la sécante sur le graphe ci-dessous avec x0 = -0.7 et
x1 = -0.25.
Exercice 4.10
a) Calculez, avec la méthode de la sécante et à l'aide d'une calculatrice, le zéro de la fonction
f (x) = sin(cos(2x2+1)) se trouvant dans l'intervalle [0, 1], avec une précision de 0.0001.
b) Programmez la méthode de la sécante pour répondre à la question a).
c) Expliquez ce qui se passe en prenant x0 = 0 et x1 = 2.
fen = Tk()
can = Canvas(fen, bg='white', width=600, height=400)
can.pack(side=LEFT)
can.create_line(10, 10, 100, 200, width=2, fill='black') # segment
can.create_text(10, 5, text="A")
can.create_text(100, 205, text="B")
fen = Tk()
can est le canevas dans lequel on va dessiner. Ici, il occupera toute le fenêtre. Il a un fond blanc
(white) et pour dimensions 600 x 400 pixels.
can.pack(side=LEFT)
can est calé à gauche de la fenêtre, mais cela n'a pas d'importance ici.
Dans l'exemple, le segment va du point (10, 10) au point (100, 200). Il a une largeur de 2 pixels et
la couleur noire (black). On utilisera black pour les axes et les graduations, blue pour la courbe,
white comme couleur de fond et gray75 pour le quadrillage.
Attention ! L'origine (0, 0) est dans le coin supérieur gauche de la fenêtre. Le coin inférieur droit
aura comme coordonnées (largeur, hauteur), dans notre exemple (600, 400).
can.create_text(10, 5, text="A")
can.create_text(100, 205, text="B")
i = 4
can.create_text(100, 205, text=str(i))
Exercice 4.11
Pour simplifier les choses, on supposera que la fonction f à dessiner est continue. Pour fixer les
idées, prenons la fonction f (x) = x + sin(x2 + 4x – 5).
On supposera aussi que les bornes de l'intervalle [a, b] sont des nombres entiers. On prendra ici
l'intervalle [–6, 3].
Procédez par étapes :
1. tabulez la fonction dans l'intervalle [a, b] et repérez les valeurs y_min et y_max ;
2. définissez la fonction affine qui transformera le couple (x ; f (x)) en un point de la fenêtre
graphique ; le couple (a ; y_max) sera envoyé sur le point (0 ; 0) et le couple (b ; y_min) sur
le point (largeur, hauteur).
3. tracez la courbe ;
4. dessinez les deux axes ;
5. graduez les axes ;
6. ajoutez un quadrillage.
Charles-François P0 = P1Q1 − P2
Sturm (1803-1855)
où Q1 est le quotient de la division euclidienne et où le degré de P2 est strictement inférieur à
celui de P1.
En d'autres termes, P2 est l'opposé du reste dans la division euclidienne de P0 par P1. Puis on
recommence et on définit Pk+1 comme l'opposé du reste dans la division euclidienne de Pk-1 par Pk,
On s'arrête lorsqu'on obtient un polynôme constant Pn, ce qui arrive forcément puisque les degrés
des polynômes obtenus décroissent à chaque division. La suite de Sturm du polynôme P est alors :
Le nombre de racines de P dans l'intervalle [a, b] est égal à la différence V (a) − V (b).
P1 3x2 + 12x | 8x + 16 P2
2
– 3x – 6x 3x/8 + 3/4 Q2
6x
– 6x – 12
– 12 -P3
On trouve P3 = – (–12) = 12. Le processus s'arrête ici, puisque P3 est un polynôme constant.
On a trouvé la suite de Sturm de P : S (x) = (x3 + 6x2 − 16, 3x2 + 12x, 8x + 16, 12).
On peut maintenant savoir combien P a de zéros dans l'intervalle [a, b]. Prenons par exemple
l'intervalle [−7, 2] :
S (0) = (−16, 0, 16, 12). Il y a un seul changement de signe dans cette suite, donc V(0) = 1.
Puisque V (0)−V (2) = 1, le polynôme x3 + 6x2 − 16 admet une racine dans l'intervalle [0, 2].
Exercice 4.12
Calculez la suite de Sturm du polynôme P (x) = x4 – 8x2 – 6x – 1.
Grâce à cette suite, déterminez le nombre de zéros de P dans les intervalles [–4, 0] et [0, 4].
Vérifiez ces résultats avec votre traceur de courbe.
Sources
[1] Wikipédia, « Méthode de dichotomie », <http://fr.wikipedia.org/wiki/Méthode_de_dichotomie>
[2] Wikipédia, « Méthode de la fausse position »,
<http://fr.wikipedia.org/wiki/Méthode_de_la_fausse_position>
[3] Wikipédia, « Méthode de la sécante », <http://fr.wikipedia.org/wiki/Méthode_de_la_sécante>
[4] Science & Vie Questions Réponses, Hors-Série N°1, novembre 2016, « Équations du second
degré »