Проблема в вычислении минимума функции. 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))

Ответы (0 шт):