Я пытаюсь использовать интеграцию Монте-Карло, чтобы приблизить область под заданным графом, чтобы вычислить ее площадь. Чтобы это работало, мне нужно, чтобы вычисленные y_min и y_max были точными. Итак, в качестве примера я буду использовать график sin(x)
от 0 до pi. Для того, чтобы найти y_min и y_max У меня есть следующие функции:Избегайте неточности при использовании чисел с плавающей запятой?
def y_range(f, x_min, x_max, n=100):
# Step size
h = float((x_max - x_min))/n
# Calculate y for n points between x_min and x_max
y = [f(x * h) for x in range(0, n + 1)]
# Get minimum and maximum y
y_max = max(y)
y_min = min(y)
return y_min, y_max
Печать y_min и y_max дает:
y_max = 1.0
y_min = -3.21624529935e-16
Я знаю y_min должна равняться 0.0, так как я могу исправить эту неточность?
Это * действительно близко * к нулю ... – jonrsharpe