Проблема в вычислении минимума функции. Python
Нахожу минимум функции с помощью Ньютона-Рафсона с x0: -pi/4, если писать вручную точку округленно 0.7853 то минимум получается близким к истинному - в районе нуля, но если писать именно как задано -pi/4 то получается большая погрешность и ответ выходит -1.04, это я где-то ошибся в коде, или это специфика моей функции?
import math
def f(x):
return x*math.cos(x)*math.sin(x)
def v(x):
return x*(math.cos(pow(x, 2))-math.sin(pow(x, 2)))+math.sin(x)*math.cos(x)
def g(x):
return -2*math.sin(pow(x, 2))-4*x*math.cos(x)*math.sin(x)+2*math.cos(pow(x, 2))
def newton(x0, eps):
f0 = v(x0)
x = x0
while abs(v(x)) > eps:
x -= f0 / g(x0)
f0 = v(x)
return x, f(x)
a = -math.pi/4
b = math.pi/4
eps = 0.001
print(newton(a, eps))