Bandeau
APMEP Île-de-France
de la maternelle à l’université

Site de la Régionale APMEP Île-de-France

Vous avez dit bizarre… comme c’est bizarre…
Article mis en ligne le 24 mars 2014
dernière modification le 19 juillet 2022

par Rémy Coste

Suites numériques instables

Parmi les surprises ou bizarreries que l’on peut observer lors de l’utilisation d’une calculatrice ou d’un tableur, il y celles très connues des suites instables. Il s’agit de suites dont le calcul formel démontre qu’elles sont convergentes, mais dont les valeurs affichées par un tableur "dérapent" complètement à partir d’un certain rang, alors qu’avant ce rang fatal, tout avait l’air de se passer conformément au résultat théorique. Les exemples sont légions (dans une prochaine édition, je proposerai des exemples donnant lieu à des activités tout à fait consistantes du niveau de terminale S).

Voici un exemple très simple mais qui est vraiment très surprenant, évoqué par un collègue, Émile Sinturel, et que je vous propose d’analyser et de généraliser :

Soit la suite définie par : $ \begin{cases} u_0 = {0{,}3} \\ u_{n+1} = 11u_{n} -3 \end{cases}$

On démontre rapidement que cette suite est une suite constante : $ \forall n \in \mathbb{N}, u_n = 0{,}3$
Pour calculer les termes de la suite et en faire la représentation cartésienne, utilisons GeoGebra qui dispose d’un registre graphique et d’un tableur :

  • Afficher le tableur de GeoGebra (Affichage/Tableur)
  • Générer les rangs dans la 1re ligne
  • Générer les valeurs de la suite dans la 2e ligne : A2 : = 0,3,  B2 : =11A2-3 à recopier vers la droite
  • Sélectionner une plage contenant les rangs et les valeurs de la suite (jusqu’à la colonne T ça suffit)
  • Cliquer-droit sur la plage sélectionnée, et choisir Créer/Liste de points.

On constate qu’on est bien dans un cas d’instabilité puisqu’au lieu de rester constante, la suite affichée a tout l’air de tendre vers $-\infty$.

On a l’habitude de voir ce phénomène lorsque les valeurs en jeu ne sont pas des nombres décimaux, ce qui provoque une très faible erreur d’arrondi, laquelle est amplifiée par la réitération due à la récurrence, et finit par donner des valeurs qui n’ont plus rien à voir. Mais ce qui est très troublant ici, c’est que 0,3 est un bête nombre décimal à 1 chiffre après la virgule. En principe, pas de quoi affoler un simple tableur … C’est ce qu’on croit … et ce n’est pas ce qu’on voit !

Pour mener des investigations, généralisons un peu. Si la suite précédente est constante, c’est parce que $u_{n+1} = 11u_n - 3 = 11u_n - 10u_0$.
Du coup $u_1 = 11u_0 - 10u_0 = u_0$. Une démonstration par récurrence permet d’en déduire le résultat.

Cas général : Soit la suite définie par $ \begin{cases} u_0 = {a} \\ u_{n+1} = 11u_{n} - 10a \end{cases}$

Tous les termes sont égaux à $ a$.

Si $ a=3$, on a vu que la suite "dérape" (pour $ n=14$ , l’ordre de grandeur de l’erreur est de 0,01 ). Qu’en est-il pour d’autres valeurs de $ a$ ?

Pour prospecter, c’est là que GeoGebra va prendre toute son ampleur :

  • Créer un curseur : variable $ a$ de 0 à 1 , pas de 0,05 .
  • Dans le tableur, générer les rangs dans la ligne 1, A2 : =0,3 , B2 : = 11A2-10$A2 à recopier vers la droite.
  • Créer le nuage de points (Sélection de la plage, clic droit, Créer/Liste de points).

Il ne reste plus qu’à faire varier le curseur et observer…

On constate qu’il apparaît 3 sortes de suites, celles qui semblent tendre vers $ + \infty$, celles qui semblent tendre vers $ -\infty$ , et celle qui, comme cela devrait être toujours le cas, sont constantes. Donc elles ne dérapent pas toutes ! Mais quelles sont les valeurs de $ a$ qui sont bien sages, et quelles sont les rebelles ? Le résultat est spectaculaire : sur [0 ; 1], parmi les valeurs de $a$ que l’on peut tester avec le curseur, ce sont les valeurs 0, 0,25 , 0,5, 0,75 et 1 qui renvoient bien une suite constante. Pour les autres valeurs, ça dérape, et systématiquement au rang 14.

Mais alors, qu’ont de particulier ces 5 nombres ? Il s’écrivent respectivement $2^0$, $2^{-2}$, $2^{-1}$, $3 \times 2^{-2}$ et $2^1$ . Bon sang, mais c’est bien sûr un ordinateur, ça représente les nombres en binaire ! Comment écrit-on ces nombres en binaire ? Révision…

En décimal En binaire
0 0
0,25 = $0 \times 2^0 + 0 \times 2^{-1} + 1 \times 2^{-2}$ 0,01
0,5 = $0 \times 2^0 + 1 \times 2^{-1}$ 0,1
0,75 = $0 \times 2^0 + 1 \times 2^{-1} + 1 \times 2^{-2}$ 0,11
1 1

Et comment s’écrivent les autres, les rebelles ? Quelques exemples :

En décimal En binaire
0,3 = $ 2^{-2} + 2^{-5} + 2^{-6} + 2^{-9} + \cdots $ 0,010011001…
0,4 = $ 2^{-2} + 2^{-3} + 2^{-6} + 2^{-7} + \cdots $ 0,0110011…
0,7 = $ 2^{-1} + 2^{-3} + 2^{-4} + 2^{-7} + \cdots $ 0,1011001…

Les valeurs du terme initial qui font déraper la suite sont celles dont l’écriture à virgule en binaire est illimitée ! Les nombres non "binaux" en quelque sorte ! Les valeurs de ces nombres sont donc inévitablement arrondies. Pour autant, cela n’explique toujours pas le dérapage. En effet, arrondi ou pas, quel que soit $a$, $11a - 10a = a$ et donc on devrait bien avoir $u_1 = u_0$> et les suivants aussi…

Mais souvenons-nous : un outil de calcul dispose d’un nombre de chiffres fixé pour écrire les nombres. En conséquence, la précision de l’arrondi de $a$ et de $10a$ n’est pas la même (pour $a \lt 1$, la partie entière de $10a$ consomme 1 chiffre alors que celle de $a$ n’en consomme pas). D’où le décalage fatal !

Reprenons l’exemple initial pour aller plus loin en faire une activité pour les élèves :

Pour le tableur $3 \approx 10 \times 0{,}3$. Pour comprendre pourquoi la suite diverge, étudions la suite $ \begin{cases} u_0 = {0{,}3 + \varepsilon} \\ u_{n+1} = 11u_{n} - 10a \end{cases}$
$\varepsilon$ est l’erreur induite par la représentation de 0,3 par le tableur.

Il s’agit d’une suite arithmético-géométrique, objet d’exercices en lycée. Posons $v_n=u_n-0{,}3$. On démontre que $(v_n)$ est une suite géométrique de 1er terme $v_0 = \varepsilon$ et de raison $q = 11$.

On en déduit : $ \forall n \in \mathbb{N}, v_n = v_0 \times qn = \varepsilon \times 11n$,

d’où $u_n = v_n + 0{,}3 = \varepsilon \times 11n + 0{,}3$.

Selon le signe de $\varepsilon$, la limite de $(u_n)$ est $+\infty$ ou $-\infty$. Les valeurs obtenues sur tableur montrent que c’est $-\infty$, c’est-à-dire que $\varepsilon \lt 0$.

Enfin, $11^{13} \lt 10^{14} \lt 11^{14}$. Or nous savons que les calculs sur tableur se font avec une erreur relative de $10^{-14}$. C’est ce que l’on observe avec le tableur.


article suivant


retour au sommaire

Les chantiers de pédagogie mathématique n°160 mars 2014
La Régionale Île-de-France APMEP, 26 rue Duméril, 75013 PARIS