Aller au contenu

Un mot pour Fahmio

Tu écris. Tu continues.

Un problème, une idée — assez pour qu’on comprenne, puis tu retournes à ta copie.

On lit. Tu n’as rien d’autre à faire.

Où veux-tu aller ?

↑ ↓ pour parcourir · Entrée pour ouvrir · Échap pour fermer

Fahmio
Fahmio
Bac Tunisie
AP-BAlgorithmes d’approximation

Méthode de Newton (tangente)

Idée directrice

L'énoncé donne une fonction ff dérivable et demande d'approcher une racine par la méthode de Newton : à partir d'un point x0x_0, on suit la tangente jusqu'à l'axe des abscisses pour obtenir x1x_1, et ainsi de suite. La suite de récurrence est xn+1=xn−f(xn)f′(xn)x_{n+1} = x_n - \dfrac{f(x_n)}{f'(x_n)}. L'arrêt se fait quand ∣xn+1−xn∣<ε|x_{n+1} - x_n| < \varepsilon (ou ∣f(xn)∣<ε|f(x_n)| < \varepsilon). La convergence est quadratique — bien plus rapide que la dichotomie — mais exige f′(xn)≠0f'(x_n) \neq 0.

Ce qui aide à reconnaître la démarche

« Écrire un algorithme utilisant la méthode de Newton pour approcher la solution de f(x)=0f(x)=0 » ; « Donner la formule de récurrence xn+1x_{n+1} en fonction de xnx_n » ; « Quel est le critère d'arrêt de l'algorithme ? » ; « Donner la trace pour les trois premières itérations » ; « Comparer la convergence de Newton et de la dichotomie »

Besoin d’un point de départ ? Voir la méthode
  • Calculer f′(x)f'(x) explicitement avant d'écrire l'algorithme — la formule de récurrence en dépend.
  • Critère d'arrêt le plus courant au bac : ∣xn+1−xn∣<ε|x_{n+1} - x_n| < \varepsilon. Parfois ∣f(xn)∣<ε|f(x_n)| < \varepsilon.
  • Toujours vérifier f′(xn)≠0f'(x_n) \neq 0 pour éviter la division par zéro (signaler dans l'algorithme).
  • Newton converge en O(log⁡log⁡(1/ε))O(\log \log(1/\varepsilon)) itérations (quadratique), dichotomie en O(log⁡(1/ε))O(\log(1/\varepsilon)).
  • Si l'énoncé parle de tangente, c'est Newton ; si de bissection ou couper en deux, c'est la dichotomie.
Les pièges à vérifier dans ta démarche

Pièges fréquents : (1) Oublier de simplifier la formule de récurrence (écrire xn+1=xn−f(xn)/f′(xn)x_{n+1} = x_n - f(x_n)/f'(x_n) sans substituer ff et f′f'). (2) Utiliser f(x)=0f(x) = 0 comme critère d'arrêt au lieu de ∣xn+1−xn∣<ε|x_{n+1}-x_n| < \varepsilon : en virgule flottante, f(x)f(x) n'atteint jamais exactement 0. (3) Mauvais choix de x0x_0 qui fait diverger la suite (ex. x0x_0 loin de la racine sur une fonction non monotone).

Sujet principal

Exercice — dans l'esprit des sujets du bac

4 questionsCorrigé masqué

On veut approcher 3\sqrt{3} en cherchant la racine positive de f(x)=x2−3f(x) = x^2 - 3 sur [1,2][1, 2].

  1. Rappeler la formule de récurrence de la méthode de Newton appliquée à cette fonction. Simplifier l'expression de xn+1x_{n+1} en fonction de xnx_n.
  2. Écrire l'algorithme de Newton permettant de calculer une valeur approchée de 3\sqrt{3} avec une précision ε>0\varepsilon > 0 donnée.
    1. Identifier les données d'entrée et de sortie.
    2. Quel risque existe-t-il si f′(xn)=0f'(x_n) = 0 ? Comment s'en prémunir ?
  3. Donner la trace de l'algorithme pour x0=2x_0 = 2 et ε=10−4\varepsilon = 10^{-4} (3 premières itérations). Compléter le tableau (nn, xnx_n, f(xn)f(x_n), xn+1x_{n+1}).
  4. Comparer la rapidité de convergence de Newton et de la dichotomie. Quel inconvénient majeur présente Newton ?
Voir la correction commentéeAprès avoir posé votre démarche

1. Formule de Newton pour f(x)=x2−3f(x)=x^2-3 sur [1,2][1,2], racine positive 3\sqrt{3}.

f′(x)=2xf'(x)=2x, donc xn+1=xn−xn2−32xn=xn2+32xn=xn+3/xn2x_{n+1}=x_n-\dfrac{x_n^2-3}{2x_n}=\dfrac{x_n}{2}+\dfrac{3}{2x_n}=\dfrac{x_n+3/x_n}{2} (moyenne arithmético-harmonique, aussi méthode de Héron).

2. Algorithme. TDOL — objets locaux :

  • x, xnew : réel — itéré courant et suivant
  • x0, eps : réel — donnée initiale et précision (Type/Nature : paramètres d'entrée)
DEF PROC Newton(x0, eps : réel)
Variables x, xnew : réel
Début
  x ← x0
  xnew ← (x + 3/x) / 2
  TantQue ABS(xnew - x) > eps faire
    x ← xnew
    xnew ← (x + 3/x) / 2
  FinTantQue
  Écrire(xnew)
Fin

3. Trace d'exécution (x0=2x_0=2, ε=10−4\varepsilon=10^{-4}) :

nnxnx_nf(xn)=xn2−3f(x_n)=x_n^2-3xn+1x_{n+1}∣xn+1−xn∣\lvert x_{n+1}-x_n\rvert
0211,750,25
11,750,06251,7321430,0179
21,7321430,0003191,7320519,2×10−5<ε9{,}2\times10^{-5}<\varepsilon → arrêt


On retourne x3≈1,732051x_3\approx1{,}732051, soit 3\sqrt3 à 10−410^{-4} près en trois itérations (valeur exacte 1,7320508…).

Contrainte : x≠0x\neq 0 (division par f′(x)f'(x)) ; eps dans ]0 ; 1]. Critère d'arrêt : ∣xn+1−xn∣<ε|x_{n+1}-x_n|<\varepsilon, pas f(x)=0f(x)=0 exact.

Équivalent Python (extrait).
def newton(x0, eps):
    x = x0
    xnew = (x + 3/x) / 2
    while abs(xnew - x) > eps:
        x = xnew
        xnew = (x + 3/x) / 2
    return xnew
print(newton(2.0, 1e-4))

4. Newton contre dichotomie. La dichotomie divise l'intervalle par 2 à chaque étape : pour passer d'une largeur 1 à 10−410^{-4} il lui faut ⌈log⁡2104⌉=14\lceil\log_2 10^4\rceil=14 itérations, et elle converge toujours dès que ff change de signe. Newton double environ le nombre de décimales exactes à chaque itération (convergence quadratique) : trois itérations ici. Son inconvénient majeur : il exige la dérivée et un bon point de départ ; si f′(xn)f'(x_n) est nul ou très petit, la tangente est presque horizontale et l'itéré suivant part très loin — l'algorithme peut diverger, ce que la dichotomie ne fait jamais.

Changer d’énoncé, garder le raisonnement

Choisis un seul transfert après le sujet principal. Qu’est-ce qui change ? Quel résultat ou quelle méthode peux-tu réutiliser ? Les autres exercices restent disponibles pour une prochaine séance.

Variantes rencontrées : Newton appliqué à f(x)=x2−af(x) = x^2 - a donne la méthode de Héron pour a\sqrt{a} (voir AP-D). Parfois l'énoncé demande de montrer la convergence en calculant ∣xn+1−α∣|x_{n+1} - \alpha| en fonction de ∣xn−α∣2|x_n - \alpha|^2. On rencontre aussi f(x)=ex−2f(x) = e^x - 2 ou f(x)=ln⁡(x)−1f(x) = \ln(x) - 1.

Exercices d'entraînement — une nuance à la fois

1 Drill AP-B.1 — méthode de Newton
Entraînement 01 / 04

Drill AP-B.1 — méthode de Newton

1 questionCorrigé masqué

Donner la formule d'itération de la méthode de Newton pour approcher une racine de f.

Voir la correction commentéeAprès avoir posé votre démarche

xn+1=xn−f(xn)/f′(xn)x_{n+1}=x_n-f(x_n)/f'(x_n) si f′≠0f'\neq 0. TDOL : x réel. Type/Nature : itéré.

DEF FN IterNewton(x : réel) : réel
Début
  Retourner x - f(x)/f'(x)
Fin

On retourne le nouvel itéré ; convergence quadratique près de la racine.

2 Transfert — Newton sans garde-fou : reconnaître la moyenne de Héron, détecter un cycle
Entraînement 02 / 04

Transfert — Newton sans garde-fou : reconnaître la moyenne de Héron, détecter un cycle

4 questionsCorrigé masquéEn cours de relecture

La méthode de Newton approche un zéro (une racine) de ff en remplaçant, à chaque itération, la courbe par sa tangente : xn+1=xn−f(xn)f′(xn)x_{n+1} = x_n - \dfrac{f(x_n)}{f'(x_n)}. Une fonction Newton(x0, eps) proposée par un élève répète ce calcul « jusqu'à ∣xn+1−xn∣<eps|x_{n+1} - x_n| < eps » et retourne le dernier terme, sans autre test.

  1. Pour f(x)=x2−af(x) = x^2 - a (a>0a > 0), montrer que la formule de Newton s'écrit xn+1=12(xn+axn)x_{n+1} = \dfrac{1}{2}\left(x_n + \dfrac{a}{x_n}\right) : la tangente redonne la moyenne de xnx_n et de a/xna/x_n. Donner la trace pour a=3a = 3, x0=2x_0 = 2, eps=10−4eps = 10^{-4} (colonnes nn, xnx_n, ∣xn−xn−1∣|x_n - x_{n-1}|) jusqu'à l'arrêt.
  2. Pour g(x)=x3−2x+2g(x) = x^3 - 2x + 2 et x0=0x_0 = 0, calculer x1x_1 puis x2x_2. Que fait la fonction de l'élève sur cet exemple ? Quel second danger, indépendant de celui-ci, guette le calcul de xn+1x_{n+1} ?
  3. Écrire l'algorithme d'une fonction NewtonSur(x0, eps, nmax : …) : … qui retourne la valeur approchée trouvée et signale l'échec par une valeur sentinelle, en se protégeant des deux dangers. On dispose des fonctions F(x) et DF(x) déjà écrites. Donner son TDOL.
  4. Traduire NewtonSur en Python (les fonctions F et DF étant définies), puis indiquer ce que retournent les appels correspondant à ff avec x0=2x_0 = 2 et à gg avec x0=0x_0 = 0, nmax=50nmax = 50.

Cet exercice et sa correction sont en cours de relecture. Tu peux les consulter ; l’exercice n’est pas encore proposé en séance.

Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : appliquer la formule générale à f(x)=x2−af(x) = x^2 - a, f′(x)=2xf'(x) = 2x.

xn+1=xn−xn2−a2xn=2xn2−xn2+a2xn=xn2+a2xn=12(xn+axn)x_{n+1} = x_n - \dfrac{x_n^2 - a}{2x_n} = \dfrac{2x_n^2 - x_n^2 + a}{2x_n} = \dfrac{x_n^2 + a}{2x_n} = \dfrac{1}{2}\left(x_n + \dfrac{a}{x_n}\right). La tangente à la parabole redonne exactement la moyenne de Héron : si xn>ax_n > \sqrt a alors a/xn<aa/x_n < \sqrt a, et la moyenne resserre l'encadrement.

Trace pour a=3a = 3, x0=2x_0 = 2 :

nnxnx_n∣xn−xn−1∣\lvert x_n - x_{n-1}\rvert
02—
11,750,25
21,7321430,0179
31,73205089,2×10−59{,}2\times10^{-5}


À n=3n = 3, l'écart 9,2×10−5<10−49{,}2\times10^{-5} < 10^{-4} : arrêt, la fonction retourne x3≈1,7320508\boxed{x_3 \approx 1{,}7320508} (3=1,7320508…\sqrt3 = 1{,}7320508\ldots, sept décimales exactes en trois itérations).

2. Idée : dérouler deux itérations et regarder où l'on retombe.

g(0)=2g(0) = 2, g′(x)=3x2−2g'(x) = 3x^2 - 2, g′(0)=−2g'(0) = -2 : x1=0−2−2=1x_1 = 0 - \dfrac{2}{-2} = 1. Puis g(1)=1−2+2=1g(1) = 1 - 2 + 2 = 1, g′(1)=1g'(1) = 1 : x2=1−1=0x_2 = 1 - 1 = 0. La suite revient à son point de départ : 0,1,0,1,…0, 1, 0, 1, \ldots L'écart ∣xn+1−xn∣|x_{n+1} - x_n| vaut toujours 11 : la condition d'arrêt <eps< eps n'est jamais vraie et la fonction de l'élève boucle indéfiniment, bien que gg ait une racine réelle (voisine de −1,769-1{,}769, atteinte par exemple depuis x0=−1x_0 = -1). Second danger, indépendant du cycle : si f′(xn)=0f'(x_n) = 0 (tangente horizontale), le calcul de xn+1x_{n+1} divise par zéro ; pour f(x)=x2−af(x) = x^2 - a c'est le cas dès x0=0x_0 = 0.

3. Idée : deux gardes, un compteur d'itérations et un test de dérivée nulle, et une sentinelle pour l'échec.

0) DEF FN NewtonSur (x0, eps : réel ; nmax : entier) : réel
1) x ← x0 ; n ← 0 ; fini ← faux
2) Répéter
     n ← n + 1
     d ← DF(x)
     Si d = 0 alors
        fini ← vrai ; x ← -1
     Sinon
        x1 ← x - F(x) / d
        Si abs(x1 - x) < eps alors fini ← vrai FinSi
        x ← x1
     FinSi
   Jusqu'à fini ou (n = nmax)
3) Si non fini alors x ← -1 FinSi
4) NewtonSur ← x
5) Fin NewtonSur


La sentinelle −1-1 signale l'échec (dérivée nulle ou nmaxnmax itérations sans convergence) ; elle convient ici parce que les racines cherchées sont positives, sinon on retournerait un booléen en paramètre var.

TDOL
ObjetType / NatureRôle
xréelterme courant xnx_n
x1réelterme suivant xn+1x_{n+1}
dréelvaleur de f′(xn)f'(x_n), testée avant division
nentiercompteur d'itérations
finibooléenvrai dès qu'un critère d'arrêt est atteint
F, DFfonctionsff et f′f'
4. Idée : même structure en Python, la boucle for borne d'elle-même le nombre d'itérations.

def newton_sur(x0, eps, nmax):
    x = x0
    for n in range(1, nmax + 1):
        d = DF(x)
        if d == 0:
            return -1
        x1 = x - F(x) / d
        if abs(x1 - x) < eps:
            return x1
        x = x1
    return -1


Avec F = lambda x: x*x - 3, DF = lambda x: 2*x : print(newton_sur(2, 1e-4, 50)) affiche 1,7320508…1{,}7320508\ldots (trois itérations, comme la trace). Avec F = lambda x: x**3 - 2*x + 2, DF = lambda x: 3*x*x - 2 : newton_sur(0, 1e-4, 50) effectue 50 itérations du cycle 0→1→00 \to 1 \to 0 et retourne −1\boxed{-1} : l'échec est signalé au lieu de bloquer le programme. Le même appel avec x0=−1x_0 = -1 retourne −1,7692923…-1{,}7692923\ldots, racine réelle de gg : Newton dépend du point de départ, et une valeur approchée n'est valable que si la fonction a réellement convergé.
3 Transfert — Dichotomie : le changement de signe est une hypothèse, pas une conclusion
Entraînement 03 / 04

Transfert — Dichotomie : le changement de signe est une hypothèse, pas une conclusion

4 questionsCorrigé masquéEn cours de relecture

La dichotomie approche un zéro d'une fonction continue en coupant en deux un intervalle [a,b][a, b] sur lequel la fonction change de signe : à chaque itération on garde la moitié qui contient encore ce changement de signe, et la largeur est divisée par deux. C'est la méthode d'approximation la plus robuste — elle ne demande ni dérivée ni bon point de départ — mais elle exige son hypothèse de départ. On travaille avec f(x)=x3+x−1f(x) = x^3 + x - 1 et g(x)=x2−1g(x) = x^2 - 1, continues sur R\R ; une fonction F(x) qui calcule f(x)f(x) est déjà écrite.

  1. Calculer f(0)f(0), f(1)f(1) et le produit f(0)×f(1)f(0) \times f(1). Qu'autorise le signe de ce produit à affirmer sur [0,1][0, 1] ? Donner ensuite la trace de la dichotomie sur [0,1][0, 1] pendant 4 itérations (colonnes nn, aa, bb, m=a+b2m = \dfrac{a+b}{2}, f(m)f(m), moitié conservée), puis l'encadrement obtenu du zéro et sa largeur.
  2. On lance le même traitement sur gg et l'intervalle [−2,2][-2, 2] : calculer g(−2)×g(2)g(-2) \times g(2). Un élève en déduit « gg ne s'annule pas sur [−2,2][-2, 2] ». Réfuter cette déduction par un calcul, dire ce que la méthode a réellement le droit d'annoncer ici, et indiquer comment relancer le calcul sur la même fonction pour obtenir un zéro.
  3. Écrire l'algorithme du module Dicho qui reçoit aa, bb et la précision epseps et qui rend deux informations : la valeur approchée du zéro et un booléen disant si le calcul a pu être mené. Le module refuse de calculer lorsque a≥ba \geq b ou lorsque F(a)×F(b)>0F(a) \times F(b) > 0. Donner le TDOL.
  4. Le module s'arrête quand la largeur de l'intervalle courant est ≤eps\leq eps et rend son milieu. Quelle erreur maximale est alors garantie sur le zéro rendu ? Cette garantie fait-elle intervenir la dérivée de ff, contrairement à la méthode de Newton ?

Cet exercice et sa correction sont en cours de relecture. Tu peux les consulter ; l’exercice n’est pas encore proposé en séance.

Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : pour une fonction continue, un changement de signe garantit l'existence d'un zéro — c'est l'hypothèse qui fait démarrer la méthode.

f(0)=0+0−1=−1f(0) = 0 + 0 - 1 = -1 et f(1)=1+1−1=1f(1) = 1 + 1 - 1 = 1, donc f(0)×f(1)=−1<0f(0) \times f(1) = -1 < 0. Comme ff est continue sur [0,1][0, 1], elle s'annule au moins une fois dans ]0;1[]0 ; 1[ ; ici f′(x)=3x2+1>0f'(x) = 3x^2 + 1 > 0, la fonction est strictement croissante et le zéro α\alpha est unique.

nnaabbmmf(m)f(m)moitié conservée
1010,5−0,375-0{,}375[0,5;1][0{,}5 ; 1]
20,510,75+0,171875+0{,}171875[0,5;0,75][0{,}5 ; 0{,}75]
30,50,750,625−0,130859375-0{,}130859375[0,625;0,75][0{,}625 ; 0{,}75]
40,6250,750,6875+0,012451171875+0{,}012451171875[0,625;0,6875][0{,}625 ; 0{,}6875]


Après 4 itérations : 0,625<α<0,6875\boxed{0{,}625 < \alpha < 0{,}6875}, largeur 0,0625=1240{,}0625 = \dfrac{1}{2^4} — la largeur initiale 11 divisée par 22 quatre fois. (Valeur exacte : α=0,6823278…\alpha = 0{,}6823278\ldots, bien dans l'encadrement.)

2. Idée : le test de signe est une condition suffisante d'existence ; ne pas la vérifier n'est pas une conclusion.

g(−2)=4−1=3g(-2) = 4 - 1 = 3 et g(2)=4−1=3g(2) = 4 - 1 = 3, donc g(−2)×g(2)=9>0g(-2) \times g(2) = 9 > 0. Pourtant g(−1)=0g(-1) = 0 et g(1)=0g(1) = 0 : il y a deux zéros dans [−2,2][-2, 2]. Les deux changements de signe se compensent aux extrémités, et le produit redevient positif : l'information « même signe aux deux bornes » ne distingue pas « aucun zéro » de « un nombre pair de zéros ».

Le module n'a donc le droit d'annoncer qu'une chose : sur cet intervalle je ne peux pas démarrer. Pour obtenir un zéro de gg, on coupe l'intervalle et on relance là où le signe change : g(−2)×g(0)=3×(−1)=−3<0g(-2) \times g(0) = 3 \times (-1) = -3 < 0, la dichotomie sur [−2,0][-2, 0] converge vers −1-1 ; de même sur [0,2][0, 2] elle converge vers +1+1.

3. Idée : un refus est une information, il se transmet par un booléen — pas par une valeur numérique qui aurait l'air d'un résultat.

0) DEF PROC Dicho (a, b, eps : réel ; var x : réel ; var possible : booléen)
1) Si (a ≥ b) ou (F(a) * F(b) > 0) alors
      possible ← faux
      x ← 0
   Sinon
      possible ← vrai
      inf ← a
      sup ← b
      Répéter
         m ← (inf + sup) / 2
         Si F(inf) * F(m) ≤ 0 alors
            sup ← m
         Sinon
            inf ← m
         FinSi
      Jusqu'à (sup - inf) ≤ eps
      x ← (inf + sup) / 2
   FinSi
2) Fin Dicho


TDOL
ObjetType / NatureRôle
infréelborne gauche courante
supréelborne droite courante
mréelmilieu de [inf;sup][inf ; sup]
Ffonctioncalculer ff en un point


Deux détails qui coûtent des points : les bornes de travail inf et sup sont des objets locaux (on ne modifie pas les données reçues, et le nom ne rentre pas en conflit avec la fonction gg de l'énoncé), et le test s'écrit F(inf)×F(m)≤0F(inf) \times F(m) \leq 0 — avec ≤\leq, le cas F(m)=0F(m) = 0 (on est tombé exactement sur le zéro) garde le bon côté au lieu de le rejeter.

4. Idée : ce que la dichotomie garantit se lit sur la largeur de l'intervalle, jamais sur la valeur de la fonction.

À la sortie de la boucle, sup−inf≤epssup - inf \leq eps et le zéro α\alpha appartient toujours à [inf;sup][inf ; sup] ; le milieu rendu est donc à une distance au plus sup−inf2\dfrac{sup-inf}{2} de α\alpha : l'erreur est ≤eps2\boxed{\leq \dfrac{eps}{2}}. C'est une majoration prouvée, pas une estimation : elle ne dépend que de la continuité et de l'encadrement maintenu à chaque étape.

Aucune dérivée n'intervient : le module n'évalue que des signes. La méthode de Newton, elle, calcule f(xn)f′(xn)\dfrac{f(x_n)}{f'(x_n)} et exige f′(xn)≠0f'(x_n) \neq 0 ; elle ne tient pas le zéro entre deux bornes, donc son test d'arrêt ∣xn+1−xn∣≤eps|x_{n+1} - x_n| \leq eps n'est qu'un indice de proximité. Le prix de la garantie : la dichotomie ne divise l'erreur que par 22 à chaque itération.

4 Transfert — Budget d'itérations : la dichotomie se compte d'avance, Newton se compte après coup
Entraînement 04 / 04

Transfert — Budget d'itérations : la dichotomie se compte d'avance, Newton se compte après coup

4 questionsCorrigé masquéEn cours de relecture

On cherche 53\sqrt[3]{5}, c'est-à-dire le zéro de h(x)=x3−5h(x) = x^3 - 5, avec la précision eps=10−6eps = 10^{-6}. Deux méthodes d'approximation sont en concurrence : la dichotomie sur [1,2][1, 2], qui s'arrête quand la largeur de l'intervalle devient ≤eps\leq eps, et la méthode de Newton partie de x0=2x_0 = 2, qui s'arrête quand ∣xn+1−xn∣≤eps|x_{n+1} - x_n| \leq eps. On suppose qu'évaluer hh ou h′h' coûte le même temps.

  1. Montrer que la largeur de l'intervalle après nn itérations de dichotomie vaut 12n\dfrac{1}{2^n}, puis déterminer le plus petit nn tel que cette largeur soit ≤10−6\leq 10^{-6}. Ce nombre dépend-il de hh ?
  2. Écrire la formule de récurrence de Newton pour hh, simplifiée en fonction de xnx_n, puis donner la trace jusqu'à l'arrêt (colonnes nn, xnx_n, ∣xn−xn−1∣|x_n - x_{n-1}|). Combien d'itérations ?
  3. Comparer les deux méthodes en nombre d'évaluations de fonction (la dichotomie évalue hh une fois par itération si l'on mémorise le signe de la borne gauche ; Newton évalue hh et h′h' à chaque itération). Puis choisir sous contrainte : le zéro d'une grandeur relevée par un capteur, dont aucune expression de la dérivée n'est disponible, doit être approché à 10−310^{-3} sur [1,2][1, 2] — quelle méthode, et combien d'itérations annonce-t-on au chef de projet ?
  4. Écrire l'algorithme d'une fonction NbIter (a, b, eps : réel) : entier qui rend le nombre d'itérations que la dichotomie effectuera sans exécuter la dichotomie, et donner son TDOL. Expliquer pourquoi la fonction équivalente est impossible à écrire pour Newton.

Cet exercice et sa correction sont en cours de relecture. Tu peux les consulter ; l’exercice n’est pas encore proposé en séance.

Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : une largeur qui est divisée par deux à chaque pas se compte avant d'avoir calculé quoi que ce soit.

La largeur initiale vaut b−a=1b - a = 1 et chaque itération la divise par 22 : après nn itérations elle vaut b−a2n=12n\dfrac{b-a}{2^n} = \dfrac{1}{2^n}. On cherche le plus petit nn tel que 12n≤10−6\dfrac{1}{2^n} \leq 10^{-6}, c'est-à-dire 2n≥1062^n \geq 10^6, soit n≥log⁡2(106)=6log⁡210≈19,93n \geq \log_2(10^6) = 6\log_2 10 \approx 19{,}93.

1219=1,907×10−6>10−6\dfrac{1}{2^{19}} = 1{,}907\times10^{-6} > 10^{-6} et 1220=9,537×10−7≤10−6\dfrac{1}{2^{20}} = 9{,}537\times10^{-7} \leq 10^{-6} : il faut n=20\boxed{n = 20} itérations. Ce nombre ne dépend que de b−ab - a et de epseps — pas de hh : la même borne vaut pour une fonction compliquée comme pour x3−5x^3 - 5.

2. Idée : Newton remplace la courbe par sa tangente, ce qui double le nombre de décimales exactes à chaque pas.

xn+1=xn−h(xn)h′(xn)=xn−xn3−53xn2=2xn3+53xn2x_{n+1} = x_n - \dfrac{h(x_n)}{h'(x_n)} = x_n - \dfrac{x_n^3 - 5}{3x_n^2} = \dfrac{2x_n^3 + 5}{3x_n^2}.

nnxnx_n∣xn−xn−1∣\lvert x_n - x_{n-1}\rvert
02—
11,7500000000002,50×10−12{,}50\times10^{-1}
21,7108843537413,91×10−23{,}91\times10^{-2}
31,7099764289179,08×10−49{,}08\times10^{-4}
41,7099759466774,82×10−74{,}82\times10^{-7}


À la 4ᵉ itération l'écart passe sous 10−610^{-6} : 4 iteˊrations\boxed{4 \text{ itérations}}, pour x4=1,709975946677x_4 = 1{,}709975946677 — la valeur exacte 53=1,709975946677\sqrt[3]{5} = 1{,}709975946677 est déjà atteinte à 10−1210^{-12} près, bien au-delà de ce qui était demandé.

3. Idée : compter les itérations flatte Newton ; compter les évaluations rétablit le vrai coût, et une contrainte sur la dérivée peut renverser le choix.

Dichotomie : 2020 itérations ×\times 1 évaluation =20= 20 évaluations. Newton : 44 itérations ×\times 2 évaluations (hh et h′h') =8= 8 évaluations. Newton reste 2,52{,}5 fois moins cher malgré son itération deux fois plus chère — mais son compteur n'était connu qu'après coup.

Avec un capteur, h′h' n'a pas d'expression : Newton ne peut pas être appliqué tel quel (le remplacer par une dérivée approchée ajoute une évaluation et une erreur supplémentaire). La dichotomie ne demande que le signe de la grandeur mesurée. Pour eps=10−3eps = 10^{-3} sur [1,2][1, 2] : 129=1,95×10−3>10−3\dfrac{1}{2^9} = 1{,}95\times10^{-3} > 10^{-3} et 1210=9,77×10−4≤10−3\dfrac{1}{2^{10}} = 9{,}77\times10^{-4} \leq 10^{-3}, donc on annonce 10 iteˊrations\boxed{10 \text{ itérations}}, donc 10 mesures — un chiffre ferme, donné avant de lancer la campagne.

4. Idée : le nombre d'itérations de la dichotomie est une fonction de (a,b,eps)(a, b, eps) seuls ; celui de Newton dépend de la fonction et du point de départ.

0) DEF FN NbIter (a, b, eps : réel) : entier
1) L ← b - a
   n ← 0
   Tant que L > eps faire
      L ← L / 2
      n ← n + 1
   Fin tant que
2) NbIter ← n
3) Fin NbIter


TDOL
ObjetType / NatureRôle
Lréellargeur courante de l'intervalle
nentiernombre d'itérations comptées


On est tenté d'écrire directement n=⌊ln⁡((b−a)/eps)ln⁡2⌋+1n = \left\lfloor \dfrac{\ln((b-a)/eps)}{\ln 2} \right\rfloor + 1 ; la formule tombe juste presque partout, mais elle se trompe d'une unité quand b−aeps\dfrac{b-a}{eps} est exactement une puissance de 22 : pour b−a=1b - a = 1 et eps=0,0625eps = 0{,}0625 elle annonce 55 alors que 44 divisions suffisent (1/24=eps1/2^4 = eps). La version par divisions successives n'a pas ce défaut.

Pour Newton, rien de tel : avec le même hh et le même eps=10−6eps = 10^{-6}, le départ x0=2x_0 = 2 demande 4 itérations et le départ x0=100x_0 = 100 en demande 15. Le compteur dépend de la fonction et du point initial, et pour certains couples la suite ne converge même pas — il n'existe donc pas de fonction de (a,b,eps)(a, b, eps) qui le rende.

Limite machine, vérifiée par exécution : avec eps=10−20eps = 10^{-20}, NbIter annonce 67 itérations, mais la dichotomie réelle ne s'arrête jamais — dès que les deux bornes sont deux réels machine voisins (écart ≈2,2×10−16\approx 2{,}2\times10^{-16} autour de 1,71{,}7), leur milieu est arrondi sur l'une d'elles et la largeur cesse de diminuer. Newton n'est pas mieux loti : écrit xn+1=2xn3+53xn2x_{n+1} = \dfrac{2x_n^3 + 5}{3x_n^2}, il oscille indéfiniment entre deux réels machine voisins ; écrit xn+1=xn−h(xn)h′(xn)x_{n+1} = x_n - \dfrac{h(x_n)}{h'(x_n)}, il tombe par chance sur un écart exactement nul à la 6ᵉ itération et s'arrête. Une précision demandée plus fine que le pas machine n'est rendue par aucun des deux, et c'est pourquoi un compteur maximal d'itérations accompagne toujours ces boucles.

Relier ce raisonnement au bac

Choisis une filière pour voir les sujets qui étayent ce scénario.