Approcher un maximum : balayage puis dichotomie
Énoncé
Dans une feuille carrée de 20 cm de côté, on découpe aux quatre coins un carré de côté x cm, puis on replie les bords pour former une boîte sans couvercle. Son volume, en cm³, vaut V(x) = x(20 - 2x)² pour x ∈ [0 ; 10].
On admet que V est strictement croissante sur [0 ; c] puis strictement décroissante sur [c ; 10], où c est un nombre qu'on ne connaît pas.
a) Justifier l'expression de V(x).
b) On applique l'algorithme de balayage suivant, au pas de 1 :
```
xmax ← 0
pour x allant de 1 à 10
si V(x) > V(xmax) alors
xmax ← x
fin si
fin pour
```
Calculer V(x) pour les entiers x de 0 à 10, donner la valeur de xmax à la fin, et en déduire un intervalle d'amplitude 2 qui contient c.
c) On affine avec le programme Python suivant :
```python
def V(x):
return x * (20 - 2 * x) * (20 - 2 * x)
a, b = 2, 4
while b - a > 0.01:
m = (a + b) / 2
if V(m) < V(m + 0.001):
a = m
else:
b = m + 0.001
print(round(a, 4), round(b, 4))
```
Expliquer le rôle du test sur V(m) et V(m + 0,001). Faire tourner à la main les deux premiers tours de boucle, sachant que V(3,001) ≈ 588,028, V(3,5) = 591,5 et V(3,501) ≈ 591,487.
d) Le programme affiche `3.3299 3.339`. En déduire un encadrement de c et une valeur approchée du volume maximal.
Indice : Pour b), compare deux valeurs voisines de V : sur la partie croissante, la plus à droite est la plus grande. Pour c), si V monte encore juste après m, le sommet est à droite de m.
Correction
- Étape 1 : On connaît la forme des variations de V — elle monte, puis descend —, mais pas l'endroit c où elle change de sens. Deux algorithmes du programme permettent de l'approcher :
Balayage et dichotomie :
le balayage calcule V à pas réguliers et garde la plus grande valeur : le sommet est à moins d'un pas de là ;
la dichotomie coupe l'intervalle en deux à chaque tour, en regardant si V monte encore juste après le milieu.
👉 Le balayage donne un premier encadrement grossier ; la dichotomie l'affine très vite. Les deux reposent sur la même idée : comparer deux valeurs voisines de V dit de quel côté du sommet on se trouve.
- Étape 2 : a) Après découpage des quatre coins, le fond de la boîte est un carré de côté 20 - 2x : on a retiré x à chaque bout de chaque côté. En repliant les bords, la hauteur de la boîte vaut x.
Le volume d'un pavé droit est l'aire de la base multipliée par la hauteur :
V(x) = (20 - 2x)² × x = x(20 - 2x)²
Et x varie entre 0 (aucune découpe) et 10 (on découperait toute la feuille), d'où x ∈ [0 ; 10].
- Étape 3 : b) On calcule les onze valeurs. Par exemple, V(3) = 3 × 14² = 3 × 196 = 588.
| x | 0 | 1 | 2 | 3 | 4 | 5 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| V(x) | 0 | 324 | 512 | 588 | 576 | 500 |
puis V(6) = 384, V(7) = 252, V(8) = 128, V(9) = 36 et V(10) = 0.
L'algorithme remplace xmax chaque fois qu'il rencontre une valeur plus grande : xmax vaut 1, puis 2, puis 3, et ne change plus ensuite, puisque 576, 500, … sont inférieurs à 588. À la fin, xmax vaut 3.
Or V(2) < V(3) : si l'on avait c ≤ 2, les nombres 2 et 3 seraient dans [c ; 10], où V est strictement décroissante, et l'on aurait V(2) > V(3). Donc c > 2. De même, V(3) > V(4) impose c < 4.
2 < c < 4
- Étape 4 : c) Le test compare V(m) à la valeur un tout petit peu plus loin, V(m + 0,001) :
si V(m) < V(m + 0,001), la fonction monte encore en m : on est avant le sommet, donc c > m, et l'on remplace a par m ;
sinon, elle a déjà commencé à descendre avant m + 0,001 : c < m + 0,001, et l'on remplace b par m + 0,001.
Tour 1 : a = 2, b = 4, donc m = 3. Comme V(3) = 588 < V(3,001) ≈ 588,028, on pose a = 3. L'intervalle devient [3 ; 4].
Tour 2 : m = 3,5. Comme V(3,5) = 3,5 × 13² = 591,5 > V(3,501) ≈ 591,487, on pose b = 3,501. L'intervalle devient [3 ; 3,501].
À chaque tour, la longueur de l'intervalle est à peu près divisée par 2 : de 2, elle passe à 1, puis à 0,501.
- Étape 5 : d) Le programme s'arrête quand l'intervalle mesure moins de 0,01, et cet intervalle contient toujours c :
3,329 < c < 3,340
Le volume maximal vaut donc environ V(3,33) = 3,33 × 13,34² ≈ 592,6 cm³, pour une découpe d'environ 3,33 cm.
ℹ️ En Première, de nouveaux outils permettront de trouver la valeur exacte, c = 10/3, et le volume maximal exact, (16 000)/27 ≈ 592,6 cm³.
👉 Comparer les coûts : un balayage au pas de 0,01 sur [0 ; 10] demanderait 1 001 calculs de V ; la dichotomie n'a fait que 8 tours, soit 16 calculs.
- Étape 6 : L'erreur classique :
Affirmer après le balayage que « le maximum est atteint en x = 3 ». Le balayage ne donne que la meilleure valeur parmi celles calculées : V(3,5) = 591,5 dépasse déjà V(3) = 588. Ce qu'il garantit, c'est un encadrement : 2 < c < 4.
À retenir :
Balayage : la meilleure valeur calculée situe le sommet à moins d'un pas.
Dichotomie : comparer f(m) et f(m + petit pas) dit de quel côté du sommet on se trouve, et l'intervalle est divisé par deux à chaque tour.