El 20 de marzo de 2013 12:37, Jose Caballero <jcaballero....@gmail.com>escribió:
> Imagino, sin haberlo comprobado, que será por la precisión con la que se > define pi. > > He usado un pi definido por mi con 100 decimales y el módulo decimal y sale lo mismo (con numpy me da error si uso Decimal con una precisión muy alta ¿?, si convierto el Decimal a np.float96 me da lo mismo). Como pruebas, he usado (sin z/cos z) en lugar de la tangente y da cosas similares con valores muy diferentes según la precisión del decimal pero a partir de un valor para la precisión el resultado ya no varía: In [113]: decimal.getcontext().prec = 16 In [114]: math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[114]: -2611942160735615.5 In [115]: decimal.getcontext().prec = 32 In [116]: math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[116]: 1.633123935319537e+16 In [117]: decimal.getcontext().prec = 64 In [118]: math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[118]: 1.633123935319537e+16 ... In [125]: decimal.getcontext().prec = 16 In [126]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[126]: -2611942160735615.5 In [127]: decimal.getcontext().prec = 32 In [128]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[128]: 1.633123935319537e+16 In [129]: decimal.getcontext().prec = 64 In [130]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[130]: 1.633123935319537e+16 ... Si hago, np.isinf(np.tan(np.pi/2)) me da, obviamente, False... :-P
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/