Я не понимаю результата scipy.оптимизировать.минимизировать

#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