Почему np.sqrt (1-0,5 ** 2) не возвращает 0,75, как ожидалось? - PullRequest
0 голосов
/ 11 июля 2019

Рассмотрим код Python:

import numpy as np
print(np.sqrt(1 - 0.5**2))

Это возвращает длинное десятичное число, начинающееся с 0,86, тогда как я ожидаю, что оно вернется 0,75. Почему расхождение?

Ответы [ 3 ]

3 голосов
/ 11 июля 2019

Я не знаю, почему вы ожидаете, что он вернется 0,75.Рассмотрим подробно, что вы делаете:

1 - 0.5**2

Квадрат 0.5, а затем вычтите это из 1. Это дает 0,75, как и ожидалось.

np.sqrt(1 - 0.5**2)
np.sqrt(0.75)

Теперь, numpy принимает квадратный корень из 0,75 и возвращает 0.8660254037844386.Как и должно быть, потому что это квадратный корень из 0,75.

1 голос
/ 11 июля 2019

шаг за шагом, то, что происходит:

import numpy as np

exp = (0.5**2)

print(exp)

diff = 1 - exp

print(diff)

print(np.sqrt(diff))
1 голос
/ 11 июля 2019

Поскольку 1-0.5**2 равно 0.75, а квадратный корень для 0.75 равно ~0.86

...