Archive de l’étiquette baccalauréat

Baccalauréat mai 2019 série ES Amérique du Nord

Le sujet a été pris sur le site de l’APMEP. J’ai fait un corrigé rapide de l’enseignement obligatoire.

Bien entendu, si vous constatez une anomalie dans ce corrigé, n’hésitez pas à le mentionner en commentaire afin que je la rectifie dans les plus brefs délais.

Bac S 2019 Amérique du Nord, série S : un corrigé

Le sujet se trouve sur le site de l’APMEP ici :

https://www.apmep.fr/IMG/pdf/S_Amerique_Nord_28_05_2019-3.pdf

Je vous propose un corrigé rapide (qui peut aider les élèves) :

Une question impossible à faire correctement…

Dans ce sujet, il y avait une question qu’il était impossible de traiter correctement : dans l’exercice 3, la dernière question (à savoir de trouver le premier entier n tel que \(u_n\leq 10^{-15}\), a dû poser problèmes aux candidats… En effet, dès lors que l’on parle de 15 chiffres après la virgules, il faut se méfier des résultats donnés par les calculatrices car il est rare qu’elles fassent de bons calculs sur des nombres aussi proches de 0.

Pour trouver les valeurs les plus exactes possibles des premiers termes de la suite, je vais m’aider du développement limité de ln(1+x) pour x proche de 0 (puisque c’est ainsi dans le sujet):$$\ln(1+x)=\sum_{n=1}^{+\infty}\frac{(-1)^{n+1}x}{n!}$$Ainsi, comme \(u_{n+1}=u_n-\ln(1+u_n)\), je vais écrire:$$u_{n+1}=\sum_{k=2}^{+\infty}\frac{(-1)^ku_n^k}{k!}$$

Un programme en Python

Je ne vais pas utiliser le module math (car en définitive, il donne des résultats aussi faux que les calculatrices) mais je vais créer moi-même ma fonction “suivant”: je ne vais pas aller jusqu’à l’infini (bien sûr) pour calculer la somme du développement limité, mais je vais aller jusqu’à 100000.

def suivant(x):
    s = 0
    for i in range(100000):
        if i%2 ==0:
            s = s + x**i/i
        else:
            s = s - x**i/i
    return s
        
u,n = 1,0
while n<7:
    n = n+1
    u = suivant(u)
    print(n,':',u)

Ce programme m’affiche alors les 7 termes qui suivent le premier:

1 : 0.30684781941506745
2 : 0.03922982658261975
3 : 0.0007499391358166527
4 : 2.8106384197651534e-07
5 : 3.9498434232245516e-14
6 : 7.800631533994917e-28
7 : 3.042492616457795e-55

En utilisant le module math, on obtient:

from math import log
       
u,n = 1,0
while n<7:
    n = n+1
    u = u-log(u+1)
    print(n,':',u)
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

Vous remarquerez alors que \(u_6\) ne prend pas la même valeur que précédemment…

Et sur les calculatrices, c’est encore pire car les tableurs affichent des nombres en “E-14”:

Tableur généré sur une CASIO

Aie ! Là, ça coince grave ! Les candidat.e.s n’avaient donc pas de chance de trouver la bonne réponse…