Я выполняю поиск строки как часть квазиньютоновского алгоритма BFGS. В одном шаге поиска строки я использую кубическую интерполяцию, чтобы приблизиться к локальному минимизатору.
Позволять быть функцией интереса. Я хочу найти такой, что ,
Позволять , , а также быть известным. Также предположим,, Я подгоняю кубический полином так что , , а также ,
Я решаю квадратное уравнение: для моего разыскиваемого используя решение в закрытой форме.
Вышеуказанное работает хорошо в большинстве случаев, кроме случаев, когда как решение в закрытой форме для делится на который становится очень близко или точно ,
Мое решение состоит в том, чтобы посмотреть на и если оно «слишком мало», просто примите решение в замкнутой форме для минимизатора квадратичного полинома для которого у меня уже есть коэффициенты от более раннего ,
Мой вопрос: как мне разработать хороший тест для того, когда брать квадратичную интерполяцию по кубике? Наивный подход к тестированию на плохо по численным причинам, поэтому я смотрю на где это точность машины, но я не могу определиться с хорошим это масштабный инвариант ,
Бонусный вопрос: есть ли какие-либо проблемы с использованием коэффициентов,из неудачной кубической подгонки или я должен выполнить новую квадратичную подгонку с подходящим способом вычисления коэффициентов?
Изменить для уточнения: По моему вопросу на самом деле то, что обычно называют в литературе. Я просто упростил формулировку вопроса. Задача оптимизации, которую я решаю, нелинейна в 6 измерениях. И я хорошо знаю, что условий Вульфа достаточно для поиска линии BFGS, следовательно, заявляя, что я был заинтересован в; Я ищу что-то, что удовлетворит сильные условия Вольфа, и использование минимизатора кубического приближения - хороший шаг на этом пути.
Вопрос был не о BFGS, а о том, как определить, когда кубический коэффициент достаточно мал, чтобы квадратичное приближение было более подходящим.
Редактировать 2: обновить обозначения, уравнения без изменений.
Есть статья Море, выполненная Nocedal, о которой:
источник