Scilab : erreur de précision
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Scilab : erreur de précision



  1. #1
    invite870a36d7

    Scilab : erreur de précision


    ------

    Bonjour à tous,

    Je suis nouveau sur ce forum et j'ai une question à poser si toutefois quelqu'un peut m'aider à résoudre mon problème.
    Dans le cadre d'une stage, j'effectue une simulation sous Scilab et je suis confronté à des problèmes de précision.

    Pour exemple lorsque l'on rentre le programme ci-dessous:
    format(25) //Pour visualiser le maximum de décimales
    3.1415 //Nombre décimal quelconque
    0.1234 //Nombre décimal qui entraine une erreur plus conséquente

    On obtient un nombre qui en réalité n'est pas fini, puisqu'une erreur apparait à une précision plus ou moins significative (10^-5 puis 10^-15 dans le deuxième cas).
    Je me demandais d'où provient cette erreur et comment remédier à ce problème car il est primordial pour moi d'avoir des valeurs précises !

    Je me suis renseigné et je sais que sous Scilab les variables (double par défaut) sont codées en 64 bits dont 1 pour le signe, 11 pour l'exposant et 52 pour la mantisse.
    Je ne vois vraiment pas d'où peut provenir cette erreur. C'est pourquoi je m'en remet à vous.

    Merci d'avance pour toute réponse que vous pourrez m'apporter.

    Bourdon

    -----

  2. #2
    serrepate

    Re : Scilab : erreur de précision

    bonjour,

    en cherchant un peu j'ai trouvé ce qui suit et qui rejoint ce que tu constates (d'autres retour le confirme).

    "Les calculs sont effectués en double précision (16 chiffres après la virgule). SCILAB n’est donc pas un logiciel de calcul formel : il ne connaît ni pi ni e mais seulement des valeurs approchées de ces nombres. On verra que, pour cette raison, SCILAB ne trouve pas 0 lorsqu’il calcule sin pi !!"

    http://infobcpst.free.fr/Initiation/...ILAB-Cours.pdf

    toutefois, je ne pratique pas scilab.

    cordialement

  3. #3
    invite870a36d7

    Re : Scilab : erreur de précision

    Merci serrepate pour cette réponse.
    En effet, on observe une erreur de l'ordre de "l'erreur machine" qui est de %eps=2.22D-16.
    Connais-tu des logiciels de calcul formel utilisable facilement ? Gratuit serait un plus ...
    Cordialement

  4. #4
    serrepate

    Re : Scilab : erreur de précision

    bonjour,
    il semble que ça existe. un début
    http://www.google.fr/search?q=logici...ient=firefox-a
    cordialement

  5. A voir en vidéo sur Futura
  6. #5
    polo974

    Re : Scilab : erreur de précision

    scilab-scimax
    basé sur maxima
    dispo dans toute bonne distribution linux...

    ensuite, il y a aussi le paquet scilab-scimax-doc qui peut aider...

    les erreurs sur les flottants (float ou double) viennent du passage d'une écriture en base 10 à une écriture en base 2 et vice-versa (surtout vice).

    tout comme quand on fait (1/3) * 3 on obtient .9999999999 (et puis ça s'arrête alors qu'en réalité, ça devrait continuer à l'infini).
    Jusqu'ici tout va bien...

  7. #6
    invite2d7144a7

    Re : Scilab : erreur de précision

    Bonjour,

    Les erreurs ne sont pas dues au passage d'une base à une autre, mais au fait bien connu (normalement ) suivant :

    Entre 2 réels quelconques différents, aussi proches soient-ils, il y a une infinité de réels.

    On ne peut pas tous les représenter exactement, quels que soient les moyens utilisés.

  8. #7
    polo974

    Re : Scilab : erreur de précision

    essaye de représenter 0.1 en float (base 2)...

    Et tu verras que c'est le transcodage d'une écriture exacte vers une écriture approchée qui fait perdre des petits morceaux, ce qui fait s'arracher les cheveux de 99.99% des comptables...

    Ensuite, effectivement les nombres ne sont pas exactement représentés, mais les erreurs n'arrive qu'après un calcul à ce moment.

    Alors que le transcodage apporte son erreur initiale avant tout calcul explicite.
    C'est ce dernier cas qui était incriminé par ptt_bourdon.
    Jusqu'ici tout va bien...

  9. #8
    invite870a36d7

    Re : Scilab : erreur de précision

    Salut à tous,

    Oui Polo974: J'ai aussi pu constater que l'erreur vient d'une simplification due au changement de base. L'erreur créé est donc de l'ordre de 1/(2^54) donc très proche de %eps. Et elle est due à la troncature du nombre binaire qui entraîne une erreur sur la valeur décimale.

    J'ai essayé un programme qui me permet de tronquer la valeur binaire à une décimale voulue afin d'avoir une certaine précision sur la valeur de base que je désire simplifier.
    Ainsi plus de problème de nombre de digit de visualisation ni de troncature de la valeur binaire.
    Reste plus qu'a tester ce programme.

    Merci pour tous vos conseils.

Discussions similaires

  1. Erreur, incertitude et précision
    Par invite57cecb71 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 06/09/2010, 06h37
  2. [scilab] Problème sur une erreur d'index invalide
    Par invite42f97068 dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 15/04/2010, 12h19
  3. PIV : erreur de precision
    Par invitecc849c1c dans le forum Physique
    Réponses: 4
    Dernier message: 22/09/2009, 13h13
  4. [Scilab] Détection d'une erreur et arrêt de boucle
    Par inviteaeeb6d8b dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 05/06/2009, 21h25
  5. précision et vitesse de calcul en scilab
    Par invitee75a2d43 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 06/05/2008, 08h31
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...