Vote utilisateur: 5 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles actives
 

Bac S 2019 Amérique du Nord 28 mai 2019
Une question plante presque toutes les calculatrices

Le premier sujet du Bac 2019 est tombé ce mardi 28 mai 2019, c'est le sujet d'Amérique du nord 2019 dont les sujets et corrigés sont disponibles sur www.math93.com.

La question (4.b.) de l'exercice 3 proposait de déterminer le plus petit entier naturel \(n\) à partir duquel tous les termes de la suite \(\left(u_n\right)\) sont inférieurs à \(10^{-15}\). La suite est définie par :

$$\begin{cases} u_0=1 \\ u_{n+1} = u_n - \ln\left( 1 + u_n\right)  \end{cases}$$

La réponse attendue alors \(n=6\) mais presque aucune calculatrice ne donne le résultat correct puisque :

$$\begin{cases} u_5\approx 3,96\times 10^{-14} \\ u_6\approx 7,8 \times 10^{-28}\end{cases}$$

Les calculatrices TI-82/83/84 et casio renvoyaient un résultat faux, \(n=5\) ou ne renvoyaient jamais de réponse, partant en boucle infinie. La suite devenant stationnaire à partir du rang \(n=5\) . Par contre, en codant l'algorithme avec les modules Python on trouve \(n=6\) car la valeur obtenue de \(u_6\) est toujours fausse (on trouve \(u_6\approx 4,94\times 10^{-17}\) ) mais est inférieur au seuil choisi. La seule calculatrice qui donnerait la bonne réponse serait la DM42 de swissmicros (ou free42 sur smartphone).
La Numworks elle permettait d'avoir une sortie correcte \(n=6\) en utilisant le module suite mais elle donne un résultat en \(10^{-17}\) comme python ce qui n'est pas juste pour autant.

  • Remarque Hors programme TS
    En effectuant un DL de \(x\longrightarrow x- \ln(1+x)\) on voit que l'expression est de l'ordre de \(\dfrac{x^2}{2}\). La valeur de \(u_6\) est donc bien en \(10^{-28}\). Nul doute que toutes les réponses seront acceptées .

 

 TiBac S 2019 Amérique Nord problème calculatrice TI  NumworksBac S 2019 Amérique Nord problème calculatrice Numlworks

D'ailleurs sous repl par exemple, le programme tourne en boucle infini avec \(p=17\) et donne toujours des résultats faux à partir de \(n=6\)  :

 

from math import *
def s(p):    
    u=1
    n=0
    while u>=10**(-p):
        u=u-log(u+1)
        n=n+1
        print(n,u)        
    return n

 

>>> s(17)
1 0.3068528194400547
2 0.03923100059562018
3 0.0007499834542035178
4 2.8109705414345546e-07
5 3.9573363731490506e-14
6 4.9424054835715754e-17
7 4.9424054835715754e-17
8 4.9424054835715754e-17
9 4.9424054835715754e-17
10 4.9424054835715754e-17
11 4.9424054835715754e-17
12 4.9424054835715754e-17
13 4.9424054835715754e-17
14 4.9424054835715754e-17
15 4.9424054835715754e-17

 

Compléments et analyse du problème

Une analyse très détaillée de ce problème sur le site Ti-Planet.

On nous y démontre avec brio que c'est un problème de précision. Les modèles qui calculent sur 45 bits et moins sont incapables de fournir une réponse correcte.  Les implémentations Python pour nos calculatrices utilisent presque toutes le standard à 53 bits dit en "double précision" soit 16 chiffres significatifs, ce qui explique qu'elles donnent aussi des résultats faux pour \(n=6\) puisque le résultat est en \(10^{-28}\).

La seule calculatrice qui donne la bonne réponse serait la DM42 de swissmicros (ou free42 sur smartphone).
Cette calculatrice est censée être la plus précise du marché, calculant en 16 bytes avec 34 chiffres significatifs, et des exposants de -6143 à +6144.

Le fait que la numworks donne un résultat en \(10^{-17}\) comme python vient sans doute de sa conception, le résultat n'est pas correct pour autant.

 

Préparer le bac 2019

Pour vous préparer au bac 2019, les épreuves du bac 2019 dans les centres étrangers sont disponibles avec les corrigés : bac 2019 à l'étranger.

Ils sont utiles pour préparer le bac 2019 puisqu'ils donnent une idée précise des sujets probables du bac 2019 (en série S / en série ES).

 

 

Articles Connexes