Границы optimize.fminbound влияют на результаты, которые я ищу

#python #optimization

Вопрос:

Ниже приведены мои коды на Python:

 import scipy.optimize as opt

q1=opt.fminbound(f, 0.00, 100.00, xtol=1e-9)
q2=opt.fminbound(f, 0.00, 1000.00, xtol=1e-9)
 

Результат показывает, что q1 НЕ равен q2, даже если они оба находятся в интервале (1,00, 10,00). В чем причина этого? Как я могу получить истинное оптимальное значение?

Ответ №1:

Не уверен на 100%, но я предполагаю, что математическая реализация fminbound используемого алгоритма зависит от диапазона для определения размера шага. Для вашего приложения это не должно иметь большого значения, так как вы можете указать произвольное значение xtol.