Page 1 of 1

Problème algorithme centres étrangers 2012

Unread postPosted: 18 Jun 2014, 17:24
by alain59
Bonjour, dans le sujet "centres étrangers de 2012" en TS il y a un exercice sur sur une suite d'intégrales avec un algorithme.
Il est établi la relation
$mathjax$I_{n+2}=\frac{1}{2}e-\frac{n+1}{2}I_n$mathjax$
, qui lie un terme au terme de deux rangs inférieurs.
L'algorithme proposé est le suivant:
Code: Select all
n=1
u=1/2*e-1/2
Tant que n<21
   u=1/2*e-(n+1)/2*u
   n=n+2
Fin tant que
Afficher u


Il est clair que cet algorithme affiche le terme u_21

Mon problème est le suivant : J'ai saisi cet algo dans ma TI-82 stat.fr.
Il n'y a aucun problème lorsque l'on laisse n<21, par contre dès que l'on met n<33 ou plus, la calculatrice affiche n'importe quoi : on obtient des valeurs négatives (alors que la suite est à termes positifs) ou des valeurs de l'ordre de 20000 alors que la suite converge vers 0.
Il n'y a aucun dépassement de capacités, les valeurs mises en oeuvre sont du type 30 * 0.125 !
J'ai soumis le problème à plusieurs de mes collègues qui ne trouvent aucune explication. Je trouve cela très inquiétant !
Pouvez-vous essayer? et me dire pourquoi la machine déraille ?
Merci

Re: Problème algorithme centres étrangers 2012

Unread postPosted: 18 Jun 2014, 17:49
by critor
Bonsoir,

Cela ne me surprend pas énormément, puisque l'algorithme met en oeuvre une relation de récurrence à partir d'une valeur dont l'écriture décimale est infinie

La TI-82 Stats (et la calculatrice en géréral) ne travaille pas sur l'ensemble des nombres réels contrairement à nous, mais sur la famille des nombres s'écrivant avec une mantisse d'au plus 13 chiffres significatifs.


Dès le départ avec un terme strictement compris entre 0,1 et 1, nous avons donc une erreur strictement inférieure en valeur absolue à 10-13

A chaque itération du calcul par récurrence, la calculatrice utilise donc une valeur fausse et commet en prime une nouvelle erreur qui dans certaines situations peut faire empirer l'erreur précédente au lieu de la compenser.

Une table de valeurs permet de comparer les résultats obtenus par la relation de récurrence (2ème colonne) et par la définition du terme général (3ème colonne):
Image

Ici sur TI-Nspire CX CAS j'ai pareil avec une différence qui se propage et réussit à atteindre la 5ème décimale pour le rang n=25.

Pour le rang n=33, j'obtiens bien une valeur négative aberrante:
Image

Re: Problème algorithme centres étrangers 2012

Unread postPosted: 18 Jun 2014, 18:17
by alain59
Merci pour votre réponse,
Cela m'inquiète fortement sur la crédibilité des machines, car les calculs ne sont pas très lourds.

Alain

Re: Problème algorithme centres étrangers 2012

Unread postPosted: 18 Jun 2014, 18:30
by critor
Au contraire, le calcul par récurrence du terme de rang 33 effectue beaucoup plus de calculs (à partir d'une valeur de départ fausse) que le calcul avec la définition du terme général.

Il est donc normal que les erreurs se propagent plus facilement dans le premier cas.


Mais c'est possiblement fait exprès, nous sommes probablement sur un cas particulier avec une valeur du terme initial critique dont dépend le comportement de la suite.

Re: Problème algorithme centres étrangers 2012

Unread postPosted: 18 Jun 2014, 21:36
by Bisam
Il faut comprendre que l'erreur de calcul initiale (pour le calcul de u1) est multiplié par n+1 à chaque passage dans la boucle.
Par conséquent, elle va vite dépasser la valeur réelle... et le résultat ne sera plus du tout correct.

Plus précisément, s'il y avait une erreur
$mathjax$\varepsilon$mathjax$
sur le terme de rang 1, il y aura une erreur
$mathjax$\frac{1\times 3\times 5\times \cdots \times (2n-1)}{2\times 2\times 2 \times \cdots \times 2}\varepsilon=\frac{(2n)!}{2^{2n} n!}\varepsilon$mathjax$
au rang 2n+1.

Au rang 21, l'erreur initiale a déjà été multipliée par 640000 environ.
Au rang 33, elle a été multipliée par 2.9*10^12... en considérant uniquement cette source d'erreur. Si l'erreur initiale est de 10^-13 environ, on a donc à présent, une erreur de l'ordre de 0.29... ce qui plus grand que le résultat exact. Il est normal d'obtenir des résultats aberrants.

Le seul moyen d'y remédier est d'utiliser une autre façon d'effectuer le calcul (par exemple utiliser un moteur CAS qui calcule l'expression exacte au fur et à mesure et calcule la valeur approchée seulement à la fin).

Re: Problème algorithme centres étrangers 2012

Unread postPosted: 19 Jun 2014, 09:54
by alain59
Merci pour ces réponses précises.
J'ai saisi l'algorithme sur le logiciel Xcas, le même problème demeure.
De même avec Scilab
Peut-être que ces logiciels ne sont pas des logiciels de calcul formel avec un moteur CAS.
Il faudrait que je réinstalle Mathematica ou Maple.

Encore merci.
Alain

Re: Problème algorithme centres étrangers 2012

Unread postPosted: 19 Jun 2014, 11:02
by critor
Xcas dispose bien d'un moteur de calcul formel.
Faut-il encore s'assurer que les calculs sont bien effectués et affectés en mode formel.

De même, c'est volontairement que j'ai forcé la TI-Nspire CAS à travailler sur la récurrence en mode numérique au lieu du mode formel pour faire apparaître le problème.