Quel algorithme pour les puissances ?

jacquot
Modifié (January 2022) dans Informatique théorique
Bonjour,
Si je tape $1,0001\ \boxed{x^y} \ 160$ sur la calculatrice de Windows, elle me renvoie $1,0161278725576610802886405958576$

Quel crédit puis-je accorder à ces décimales ? Sont-elles toutes justes ? La dernière résulte-t-elle d'une troncature ou bien d'un arrondi à la plus proche ?
Plus généralement, je me pose la question de l'algorithme utilisé par cette calculatrice ou encore Excel pour calculer les puissances et les exponentielles.
Merci à tout intervenant compétent qui voudra se donner la peine de me répondre.
NB Excel donne moins de décimales que la calculatrice.

Amicalement.
jacquot

Réponses

  • Je ne sais pas comment fait Windows, mais toutes les décimales ont l'air exactes.
    Maple avec une précision de 50 chiffres :
    > evalf[50]((10001/10000)^160);                                                
        1.0161278725576610802886405958576327442277397571494
    
  • Dans la calculette bc, j’ai :
    scale=40
    1.0001^160
    1.0161278725576610802886405958576327442277397571493506513411619694174209442260573326632858199067370543
    
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Merci Nicolas & Guego,
    Vous répondez déjà à ma première question : il semblerait que toutes les décimales données par la calculatrice soient justes, du moins elles coïncident avec celles qui vous sont fournies par vos puissants outils.

    Cette réponse me suffit par rapport à ce que je veux faire : vérification d'une table numérique datant du XVIIe siècle.

    La question de l'arrondi est de moIndre importance : la décimale suivant le $6$ étant $3$, je ne peux pas savoir si la calculatrice tronque ou si elle arrondit au plus proche.

    Reste ouverte la question de l'algorithme mis en oeuvre pour ce calcul.
    Je pense que la touche $x^y $ appelle un calcul d'exponentielle. Que se passe-t-il dans les entrailles de la machine ?
    Calcule-t-elle un développement limité ?

    Merci, en tous cas pour ces premières réponses.
    Amicalement. jacquot
  • Bonjour,
    Peut-être l'algorithme d'exponentiation rapide, comme l'exposant est un entier ? https://fr.m.wikipedia.org/wiki/Exponentiation_rapide
  • Je ne sais pas mais je me souviens d'avoir lu cet article de Nicole Bopp sur le logarithme – ce qui ne répond pas à la question...
  • Merci à vous deux pour ces références intéressantes.jacquot
  • L'exponentielle se calcule tres bien avec reduction d'argument et un approximant de Pade. En general les calculs en interne sont fait avec quelques chiffres ou bits supplementaires puis un arrondi est affiche.
  • Bonjour

    @jacquot: Tu es en train de comprendre que l'ordinateur est le monde de l'illusion. Les chiffres dans la mantisse sont plutôt justes car on a fait un calcul faux dont les décimales devant être affichées sont justes.

    On ne peut pas décrire $\pi$ avec des nombres entiers. L'ordinateur ne connaît pas pi.
    On ne peut pas avoir une précision infinie sur les nombres de la même manière qu'on ne peut pas avoir des nombres infinis en mémoire d'un ordinateur.

    Donc la question des ingénieurs est "quelle erreur peut-on se permettre ? (sans que personne ne voit la supercherie)".

    Certaines calculatrices donnent des nombres impairs comme résultat de grandes puissances de 2. Donc, à ta question, je répond "non". On ne peut pas faire confiance aux dernières décimales des grandes puissances.

    Une dernière chose. Tu vas galérer à écrire, en base 10, le résultat de $\frac{1}{3}$, car tu écriras $0,333333333...._{10}$ Alors qu'en base 3, tu écris simplement $0,1_3$. :-) Injuste mais réel. ($\frac{1}{3_{10}}=\frac{1}{10_{3}}=0.1_3$)
    Donc pour comprendre le problème, tu dois étudier l'écriture des nombres en binaire, et les différentes normes qui font des bijections entre les entiers naturels et les autres nombres (négatifs, à virgule, etc)
    Ce site est fatigant. Les gens modifient sans cesse leurs messages passés, et on ne comprend plus rien à la discussion. Je suis nostalgique du temps où, si on postait une bêtise, on devait l'assumer. Et si on cite le passage pour l'ancrer, l'administrateur supprime en disant qu'on n'a pas besoin de recopier le message passé.
  • C’est quoi la supercherie des ingénieurs qui disent qu’on ne peut pas écrire un nombre qui ne peut pas être écrit ?
  • Bonjour le résultat n'a rien à voir avec le système d'exploitation utilisé mais il a à voir avec l'algorithme utilisé et la représentation machine des nombres réels et entiers. Il y a fort à parier que le calcul passe par un logarithme et une exponentielle. Si la calculette est programmable alors faire une boucle avec 159 multiplications du même réel par lui-même donne souvent de bons résultats en raison de la troncature des nombres réels en machine, celles-ci utilisent souvent des registres en série avec un signal cadencé contrairement aux cerveaux des animaux qui utilisent en parallèle des signaux continus avec une interconnection complexe.

    Voici un autre exemple pour tester les représentations : calculer les $n$ premiers termes de la suite $e\times (1-1/n)^n$ laquelle tend vers $1$ quand $n$ tend vers $+\infty$ et comparer les calculettes.

    X:-(
    Les mathématiques ne sont pas vraies, elles sont commodes.
    Henri Poincaré
Connectez-vous ou Inscrivez-vous pour répondre.