#scipy #scipy-optimize #scipy-optimize-minimize
#сципи #scipy-оптимизация #scipy-оптимизировать-минимизировать
Вопрос:
Я не понимаю, почему результат этого кода равен 11 вместо 4,7
import scipy.optimize as sp def f(x): return np.sin(x) min = sp.minimize(f, x0=1.6).x print(min)
Ответ №1:
При минимизации функции с кратным (в нашем случае бесконечным) числом минимумов scipy.optimize.minimize
не гарантируется сходимость к ближайшей к начальной оценке x0
. Направление и размер шага метода оптимизации зависят от значения f'(x0)
(или его численной оценки). Для 3 * pi / 4* pi lt; x0 lt; 5 * pi / 4
метода по умолчанию scipy.optimize.minimize
will перейдите к 3 * pi/2 = 4.71238898038469