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 |
| |
\\ | \\ |
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 *" |
* 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) ===== |
* 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. |