Rédiger le cours
Moon Arrows Sun
Arrows

Appliquer le théorème des valeurs intermédiaires

Le théorème des valeurs intermédiaires sert presque toujours à la même chose : montrer qu'une équation a une solution, et une seule , puis l'encadrer.

La rédaction en trois points

Trois vérifications, dans cet ordre. En omettre une coûte le raisonnement entier, car chacune porte une partie de la conclusion .

  1. \(f\) est continue sur l'intervalle - ce qui donne l'existence
  2. \(f\) est strictement monotone - ce qui donne l'unicité
  3. la valeur cherchée est comprise entre les images des bornes

La continuité s'obtient presque toujours gratuitement : toute fonction dérivable est continue , et les polynômes, quotients et composées usuelles le sont sur leur ensemble de définition.

Un exemple rédigé

Montrer que \(x^3 + 2x - 5 = 0\) admet une unique solution sur \(\bigl[1 \ ; \ 2\bigr]\).

Rédaction :

$$ f(x) = x^3 + 2x - 5 $$

\(f\) est un polynôme, donc dérivable sur \(\mathbb{R}\), donc continue sur \(\bigl[1 \ ; \ 2\bigr]\).

$$ f'(x) = 3x^2 + 2 > 0 $$

\(f\) est donc strictement croissante sur cet intervalle. Enfin :

$$ f(1) = -2 \qquad f(2) = 7 $$

Comme \(0\) est compris entre \(-2\) et \(7\), le théorème des valeurs intermédiaires appliqué à une fonction strictement monotone donne :

$$ \text{une unique solution } \alpha \in \bigl] 1 \ ; \ 2 \bigr[ $$

La conclusion doit nommer l'intervalle ouvert : les bornes sont exclues puisque \(f\) n'y prend pas la valeur cherchée.

Encadrer la solution

On calcule des images jusqu'à trouver un changement de signe sur un intervalle assez petit.

\(x\)
\(1{,}3\)
\(1{,}31\)
\(1{,}32\)
\(f(x)\)
\(-0{,}203\)
\(-0{,}132\)
\(-0{,}060\)
la solution est plus loin : le signe n'a pas encore changé

En poursuivant, \(f(1{,}33) \approx 0{,}013\) : le signe change entre \(1{,}32\) et \(1{,}33\).

$$ 1{,}32 < \alpha < 1{,}33 $$

Le faire par dichotomie

Plutôt que d'essayer des valeurs au hasard, on coupe l'intervalle en deux à chaque étape.

def f(x):
    return x**3 + 2*x - 5

a = 1
b = 2
while b - a > 0.01:
    m = (a + b) / 2
    if f(m) < 0:
        a = m
    else:
        b = m
print(a, b)

Chaque tour divise l'amplitude par deux : sept tours suffisent à passer de \(1\) à moins d'un centième. C'est bien plus rapide qu'un balayage , qui en demanderait cent.