Résolution d'équation avec grande précision

Petit nouveau ! | 2 Messages

10 oct. 2012, 13:26

Bonjour à tous,

dans le cadre d'une page web que j'ai créée, je dois trouver les zéros d'une fonction sur un intervalle ouvert de type ]a;b[. Hors un phénomène très particulier se produit, puisque la limite de ma fonction en b est -infini, mais il y a un zéro qui est très proche de b, que je n'arrive pas à attraper par manque de précision de PHP (l'écart entre le zéro en question et la borne b est de l'ordre de 10^-40)
Quelqu'un saurait-il comment je pourrais procéder pour trouver ce zéro? Faut-il nécessairement avoir recours à une bibliothèque spéciale?

Merci d'avance!

ViPHP
ViPHP | 2577 Messages

10 oct. 2012, 13:37

La taille d'un nombre décimal est dépendant de la plate-forme, cependant, un nombre maximal de ~1.8e308 avec une précision sur 14 chiffres est une valeur commune (format 64 bits IEEE).
Source : http://www.php.net/manual/fr/language.types.float.php

Donc 10^-40 n'a pas de signification si b est éloigné de 10^26 (et encore)

Tu peux regarder du coté des fonctions gmp : http://www.php.net/manual/fr/ref.gmp.php

Petit nouveau ! | 2 Messages

10 oct. 2012, 14:09

Merci beaucoup pour ta réponse, je vais regarder ça de plus près.

En pratique, le module complémentaire (GMP) devra être chargé chaque fois que la page est ouverte (ou que l'équation est résolue)? (cette question peut sembler bête mais je débute vraiment en PHP)
Parce que j'ai l'impression que c'est un module à télécharger, et que toutes les opérations de base (additions, multiplications...) devront être modifiées avec les fonctions correspondantes de GMP

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 oct. 2012, 14:39

salut,


il s'agit d'une extension à activer sur le serveur (ce n'est pas le cas par défaut).

ensuite oui il faut utiliser les fonctions citée par le lien de Mazarini en lieu et place des opérateur classique. Mais ceci seulement pour les calculs dont tu a besoin de cette précision.


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

10 oct. 2012, 14:55

De toute façon, il me semble qu'il vaut mieux se donner un intervalle et considérer qu'on est à la limite lorsque la valeur calculée entre dans l'intervalle.
GMP :existe sous Windows ou seulement sous Windows?
GMP traite seulement les entiers ou entiers et réels?
Sans quoi Harald Werz a dit des choses passionnantes sur la précision absolue (maintien de toutes les décimales) mais la limitation est la mémoire disponible. C'est ce que font ds ucs comme mathematica ou maxima
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD