Почему обратная обратная функция стандартного вычисления нормального распределения при scipy.stats python идентична? - PullRequest
0 голосов
/ 23 марта 2020

Я тестировал следующий пример

from scipy.stats import norm
i=0.2
k=0.5
i==norm.cdf(norm.ppf(norm.cdf(norm.ppf(i)+k))-k)

Результат дает False

Если я проверяю значение norm.cdf(norm.ppf(norm.cdf(norm.ppf(i)+k))-k), это 0.19999999999999996.

Почему это происходит? Есть ли лучший способ запустить обратную функцию?

1 Ответ

2 голосов
/ 23 марта 2020

Потому что они числовые приближения . Точно так же, как sqrt(2) * sqrt(2) не равно 2. Существует просто нет число с плавающей запятой, так что его квадрат (в точности с плавающей запятой) точно равен 2.

Проверьте класс Голдберга c Что должен знать каждый программист о плавающей запятой , ACM Computing Surveys 23: 1 (март 1991), с. 5-48.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...