Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
math_decimal [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


math_decimal

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
math_decimal [2010/03/15 06:40]
tyrtamos
math_decimal [2010/03/15 06:55]
tyrtamos
Ligne 36: Ligne 36:
  
 \\ \\
-Dernier point général, les codes qui suivent supposent:+Dernier point général, **les codes qui suivent supposent**:
  
   * l'importation du module "decimal" avec "from decimal import *"   * l'importation du module "decimal" avec "from decimal import *"
Ligne 42: Ligne 42:
   * que les calculs se feront avec la précision donnée par "getcontext().prec=nbc" (nbc=nb de chiffres significatifs, 28 par défaut)   * que les calculs se feront avec la précision donnée par "getcontext().prec=nbc" (nbc=nb de chiffres significatifs, 28 par défaut)
  
-  * que les divisions avec '/' seront décimales, ce qui, avec Python 2.5, nécessite la ligne "from __future__ import division" juste après le shebang.+  * que les divisions avec '/' seront décimales, ce qui, avec Python 2.6, nécessite la ligne %%"from __future__ import division"%% juste après le shebang.
  
 ===== Calcul de sinus(x) ===== ===== Calcul de sinus(x) =====
Ligne 241: Ligne 241:
   * termes suivants: <m>terme(n) = {terme(n-1)}*{{x^2(2n-1)(2n-1)}/{(2n)(2n+1)}}</m>   * termes suivants: <m>terme(n) = {terme(n-1)}*{{x^2(2n-1)(2n-1)}/{(2n)(2n+1)}}</m>
  
-Voilà le code. Au départ, la 1ère fonction "_asindec(x)" aurait du suffire, mais elle a des problèmes de convergence lorsqu'on s'approche de x=1. Alors, on restreint ce calcul pour des valeurs de abs(x) inférieures à 0.70710678118654752 (en fait, la valeur exacte importe peu), c'est à dire pour un angle d'environ pi/4. Quand on sort de cette plage, on calcule en fait l'arc cosinus et on corrige ensuite l'angle obtenu avec pi/2.+Voilà le code. Au départ, la 1ère fonction "_asindec(x)" aurait du suffire, mais elle a des problèmes de convergence lorsqu'on s'approche de x=1. Alors, on restreint ce calcul pour des valeurs de abs(x) inférieures à 0.70710678118654752 (en fait, la valeur exacte importe peu), c'est à dire pour un angle d'environ pi/4. Quand on sort de cette plage, on calcule en fait l'arc cosinus et on corrige ensuite l'angle obtenu avec pi/2. Bien entendu, le 'pi' utilisé doit avoir la même précision que les autres nombres: voir calcul de pi plus loin dans cette page.
  
 Notez qu'on utilise la fonction racine sqrtdec(x) définie par ailleurs sur cette page. Notez qu'on utilise la fonction racine sqrtdec(x) définie par ailleurs sur cette page.
math_decimal.txt · Dernière modification: 2010/03/15 06:55 de tyrtamos