IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

À la recherche d'une astuce pour contourner les limitations de précision des nombres en virgule flottante


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Points : 4
    Points
    4
    Par défaut À la recherche d'une astuce pour contourner les limitations de précision des nombres en virgule flottante
    Bonsoir,
    Je viens rechercher quelques sages conseils sur ces forums, et j'espère que vous pourrez m'aider !
    Pour mon TIPE (Travail d'intérêt personnel encadré) j'essaye de coder avec le logiciel Matlab un algorithme me permettant de simuler le système solaire en considérant uniquement pour le moment le Soleil et les 8 planètes principales du système. Mon algorithme consiste simplement à intégrer les équations différentielles données par la seconde loi de Newton (système d'equations différentielles d'ordre 2) par la méthode d'intégration de Verlet.
    Viens alors mon problème : lorsque mon algorithme a fini de tourner, le tenseur contenant les coordonnées cartésiennes de chaque planète à chaque instant comporte des NaN sur la très très grande majorité des coefficients ! Je pense connaître l'origine de mon problème : ma liste de positions initiales contient des nombres de l'ordre de l'Unité Astronomique, alors que ma liste des vitesses initiales contient des nombres de l'ordre de 10^(-8) UA. Je pense donc que cette différence d'ordre de grandeur fait qu'à un moment ou un autre, Matlab considère mes vecteurs positions comme nuls, et la division par 0 (pour calculer les forces gravitationnelles) entraîne l'apparition du NaN (?)
    En gros, si je ne me trompe pas, je ne peux pas à la fois conserver des vitesses très petites comparées à mes distances.
    Voici donc ma question : Existe-t-il un moyen de contourner cette limitation du aux ordres de grandeurs (si mon problème vient réellement de là) ?
    Je ne peux pas mettre des bouts de code, car je ne sais pas d'où vient réellement le problème, mais je peux le fournir si nécessaire
    J'espère avoir été assez clair, je planche sur ce problème depuis 5 ou 6 heures maintenant, je suis fatigué et en plus j'ai du mal à mettre les mots justes sur mon problème !

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    En fait, le problème est résolu ! Après avoir passé la nuit à essayer de comprendre mon code et trouver mes erreurs, j'ai finalement trouvé la faute : un mauvais copié-collé dans mes valeurs initiales !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Exécuter une macro seulement dans les feuilles nommées par des nombres.
    Par baptou42 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/05/2014, 16h40
  2. [TPL] Une astuce pour éditer les TPL sous Ubuntu
    Par §Gama§ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 27/03/2013, 21h40
  3. Réponses: 4
    Dernier message: 25/05/2010, 14h59
  4. recherche dans une colonne pour changer les données
    Par cimbra55 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/03/2009, 16h49
  5. Réponses: 2
    Dernier message: 14/12/2007, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo