Comme expliqué à Benjamin hier, java me fait des arrondis aléatoirement... Ici dans le meme plan d experience (optimisation) qui tourne sur 3pop en meme temps, il arrondit différemment selon la pop, il calcule la fonction objectif correctement pour cod mais fait des arrondis intempestifs pour plaice et whiting. par contre il est consistant pour une pop... je crois que ca vient de l utilisation de l ecriture scientifique des nombres ex. 2.5e7 qd il a recours a cette ecriture il supprime une bonne partie des chiffres après la virgule (idem pour les parametres en e-7) tandis que pour cod les valeurs sont plus faibles et ecrites entierement ex. 324653.002... les fo calculées pour chaque simus sont dans le fichier xlsx d'historique joint colonne "objective" je mets aussi une simu. Merci !
On Thu, 19 Jan 2017 23:20:05 +0100 Sigrid Lehuta <sigridlehuta@gmail.com> wrote: Salut,
Comme expliqué à Benjamin hier,
de retour après une p'tite grippette
java me fait des arrondis aléatoirement...
Euh, informatique et aléatoire a moins de l'avoir écrit explicitement, c'est rarement le cas. ...
les fo calculées pour chaque simus sont dans le fichier xlsx d'historique joint colonne "objective"
tu veux dire que pour toi 1,41E+07 ce n'est pas assez précis (Palice; gen 0; id 0) alors que 323438,048 c'est bien (Cod7d; gen 0; id 0) ? Normalement en double, il y a environs une quinzaine de chiffre significatif (https://en.wikipedia.org/wiki/Double-precision_floating-point_format) Donc là en 10e7 il devrait pourvoir y avoir tout de même plus de précision. On est d'accord que c'est bien cette ligne la qui te donne ta valeur ? obj += Math.pow((obs - simules)/1000.0, 2);// On prend le millieme au carre pour eviter les valeurs trop grandes As-tu affiché "obs" et "simules" pour voir leur valeur ? Essaies de faire les calculs en utilisant l'objet BigDecimal au lieu du primitif double. BigDecimal garde toutes la précision, mais c'est plus lent. -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com
participants (2)
-
Benjamin POUSSIN -
Sigrid Lehuta