Код: Выделить всё
In [26]: import numpy as np
In [27]: np.sin(np.pi)
Out[27]: 1.2246467991473532e-16
В некоторой степени я не уверен, можно ли считать вычисленный результат неточным: его абсолютная ошибка находится в пределах одного машинного эпсилона (для двоичного кода 64), тогда как относительная ошибка равна +inf — вот почему я чувствую некоторое замешательство. Есть идеи?
[Изменить] Я полностью понимаю, что вычисления с плавающей запятой могут быть неточными. Но большинству библиотек с плавающей запятой удается выдавать результаты с небольшим диапазоном ошибок. Здесь относительная ошибка равна +inf, что кажется неприемлемым. Представьте себе, что мы хотим вычислить
Код: Выделить всё
1/(1e-16 + sin(pi))
Мобильная версия