Aller au contenu principal

Module 07 · Leçon 2

Résolution numérique d'équations f(x) = 0

180 minanalyse · pascal
Affichage du code

Ce que vous saurez faire

  • Encadrer une racine par changement de signe
  • Approcher une racine par dichotomie
  • Contrôler la précision avec un epsilon

Avant de commencer

Vous voulez calculer √2 (ou plus généralement résoudre x² − 2 = 0). Pas de formule simple en arithmétique ? Pas grave : on va approcher la racine itérativement.


1. Théorème des valeurs intermédiaires (rappel)

Si f est continue sur [a, b] et f(a) × f(b) < 0 (signes opposés), alors il existe au moins une racine c dans [a, b].


2. Méthode de dichotomie

À chaque étape :

  1. Calculer le milieu m = (a + b) / 2.
  2. Si f(m) = 0 : on a la racine.
  3. Si f(a) × f(m) < 0 : la racine est dans [a, m]b ← m.
  4. Sinon : a ← m.

On répète jusqu'à b − a < ε.

DEF FN Dicho(a, b, eps : réel) : réel
  Tant que (b - a) > eps Faire
    m ← (a + b) / 2
    Si f(a) * f(m) < 0 Alors
      b ← m
    Sinon
      a ← m
    FinSi
  FinTantQue
  Dicho ← (a + b) / 2
Fin Dicho

3. Trace : √2 avec ε = 0.01

f(x) = x² − 2, on part de [a=1, b=2] (car f(1) = −1 < 0 et f(2) = 2 > 0).

Itérationabmf(m)Décision
11.02.01.50.25f(a)*f(m) < 0 → b = 1.5
21.01.51.25-0.4375f(a)*f(m) > 0 → a = 1.25
31.251.51.375-0.109a = 1.375
41.3751.51.43750.066b = 1.4375
51.3751.43751.40625-0.024a = 1.40625
61.406251.43751.4218750.021b = 1.421875
71.406251.4218751.414...ε atteint

Résultat : ≈ 1.414 (≈ √2 = 1.4142…).


4. Précision et nombre d'itérations

Après k itérations, l'intervalle vaut (b₀ − a₀) / 2^k. Pour atteindre ε :

(b₀ − a₀) / 2^k ≤ ε ⟹ k ≥ log₂((b₀ − a₀) / ε)

Pour [1, 2] et ε = 0.0001 : k ≥ log₂(10000) ≈ 14 itérations.


5. Exercices

Exercice 1facile
Premier milieu

Pour f(x) = x³ − 5 sur [1, 2] avec ε = 0.5, donner le premier milieu et la décision (a ou b mis à jour).

Voir le corrigé

m = 1.5. f(1) = -4, f(1.5) = 3.375 - 5 = -1.625. Même signe que f(a), donc a := 1.5. Nouvel intervalle : [1.5, 2].

Exercice 2moyen
Racine d'un polynôme (type bac courant)

Approcher la racine de f(x) = x³ + x − 1 dans [0, 1] avec ε = 0.001. Écrire le programme Pascal complet.

Voir le corrigé
PROGRAM Racine;
VAR a, b, eps, x : real;

FUNCTION f(x : real) : real;
BEGIN
  f := x*x*x + x - 1;
END;

FUNCTION Dicho(a, b, eps : real) : real;
VAR m : real;
BEGIN
  WHILE (b - a) > eps DO
  BEGIN
    m := (a + b) / 2;
    IF f(a) * f(m) < 0 THEN
      b := m
    ELSE
      a := m;
  END;
  Dicho := (a + b) / 2;
END;

BEGIN
  a := 0; b := 1; eps := 0.001;
  x := Dicho(a, b, eps);
  Writeln('Racine ≈ ', x:8:4);
END.

Résultat ≈ 0.682.

Exercice 3difficile
Méthode de Newton (hors bac, bonus)

La méthode de Newton converge plus vite que la dichotomie : x_{n+1} = x_n − f(x_n) / f'(x_n). Implémenter Newton pour f(x) = x² − 2 (donc f'(x) = 2x), avec x_0 = 1 et ε = 10⁻⁶.

Voir le corrigé
FUNCTION Newton(x0, eps : real) : real;
VAR x, xn : real;
BEGIN
  x := x0;
  REPEAT
    xn := x - (x*x - 2) / (2*x);
    x := xn;
  UNTIL ABS(x*x - 2) < eps;     { critère sur la valeur de f(x) }
  Newton := x;
END;

Newton converge en ~5 itérations ; la dichotomie en aurait pris 20.


6. Erreurs fréquentes au bac

  • Pas vérifier f(a) * f(b) < 0 au départ (sinon pas de racine garantie).
  • WHILE b - a > eps mais eps trop petit → boucle quasi infinie ou imprécisions flottantes.
  • Diviser par zéro en Newton si f'(x) = 0.

7. Quiz

Quiz (5 questions)

1

La dichotomie nécessite que f soit :

2

À chaque itération, l'intervalle est :

3

Pour ε = 0.001 sur [0, 1], il faut environ :

4

La condition d'arrêt est :

5

Si f(a) > 0 et f(b) > 0, on peut conclure :

Bravo d'être arrivé jusqu'ici. Marquez la leçon terminée pour ancrer le progrès.