Квадратичная интерполяция, которая рассматривалась в предыдущем разделе, называется методом Пауэлла и аппроксимирует функцию квадратным трехчленом. В этом разделе рассматривается метод Давидона, который гарантирует большую точность и аппроксимирует функцию кубическим полиномом.
Для кубической интерполяции в этом методе используются значения функции и ее производной, вычисленных в двух точках.
Рассмотрим задачу минимизации функции f(x) на прямой x0 + hd, то есть минимизацию функции
Предположим, что известные следующие значения:
Эту информацию можно использовать для построения в кубического полинома
который будет аппроксимировать функцию (h) Если p=0, то уравнения, которые определяют a, b, c, d имеют вид:
Точки перегиба кубического полинома являются решением уравнения
Следовательно, если r является точкой минимума кубического полинома,
Одно из значений этого выражения является минимумом. Друга производная равна 2c +6dh
Если мы выберем положительный знак, то при
|
|
друга производная будет
(2.1)
Выбор точки q зависит от нас. Если Gp >0, то надо выбрать значение q положительным, то есть сделать шаг в направлении уменьшения функции (h), в другом случае значения q надо выбирать отрицательным. Значение должно быть таким, чтобы интервал (0,) включал в себя минимум. Это будет верным, если q > p или Gp >0.
Если ни одно из этих условий не исполняется, то мы удваиваем значения q, повторяя это в случае необходимости, пока указанный интервал не будет содержать в себе минимум.
Давидон, Флетчер и Пауэлл предложили выбирать q следующим чином:
где m - оценка самого малого значения истинного минимумf (h), а - константа, значение которой обычно берут 2 или 1.
итерационная процедура:
1. Найти и
2. Проверить, если не выполняется условие Gp < 0, то выполнять поиск в направлении -d. Выбрать q из выражения. При этом надо "угадать" m.
3. Вычислить и
4. Если Gq < 0 или q > p, то интервал, который содержит минимум, найден. В другом случае изменить q на 2q и возвратиться к шагу 3.
5. Использовать уравнение (2.1) для апроксимации точки минимума на интервале (0, q) значением r.
6. Если , где - заданная точность, то остановиться.
7. Возвратиться на шаг 5, используя интервал (0,r), если Gr > 0, или используется интервал (r,q), если Gr 0.
Квадратичные функции
Квадратичная функция
(1)
где a - стала; b - постоянный вектор и G - положительно определенная симметричная матрица - имеет минимум в точке x *, где x * определяется следующим путем:
(2)
оттуда x*= -G-1 b. Любую функцию можно аппроксимировать в окресности точки x0 функцией
|
|
(3)
где G(x0) - матрица Гессе, вычисленная в точке x0.
Аппроксимацией минимума функции f(x) может быть минимум функции (x). Если последний находится в точке xm, то
оттуда
или
(4)
Таким образом точкой xи следующей аппроксимации минимума будет:
(5)
или,
(6)
где длина шага и определяется одномерным поиском в направлении G-1(xи) g(xи).
Метод Ньютона-Рафсона основан на последнем уравнении.
Уравнения (5) и (6) в том виде, как они записаны, требуют вычисления и транспонирования матрицы Гессе на каждом шаге, который чаще является главной частью вычислений. Если точка xи близко расположенная к точке x *, то сходимость будет быстрой, потому, что в общем случае функция (x) будет хорошо аппроксимировать функцию f(x) в этой ячейке. Как норму градиента g(xи+1) , так и расстояние между точками xи+1 - xи надо проверить на выполнение критерий завершения. Интересно отметить, что сравнивая с простым методом самого быстрого спуска направлением спуска в данном случаю будет не -g(xи), а - G-1(xи) g(xи), где учитываются и вторые сменные. Методом Давидона - Флетчера - Пауэлла можно получить самый лучший результат, делая поиск на и -му этапе в направлении - Hи g(xи), где Hи - положительно определенная симметричная матрица, которая в конечном счете будет приравнивать - G-1(x*). Таким образом, этот метод обходит как вычисления, так и транспонирование матрицы G(xи) при каждой итерации.
Следовательно, направление поиска при каждой итерации является решающим фактором, если говорить об эффективности итерационных методов поиска. При каждой итерации желательно провести одномерный поиск в самом лучшем направлении. Для квадратичной функции переменных вида (1) самым лучшим направлением является направление, сопряженное с предыдущим направлением поиска.
Говорят, что два направления p и q сопряженные относительно симметричной положительно определенной матрицы G, если
(7)
Можно показать, что если p0, p1,:,pn-1 это n взаимно сопряженных направлений в n -мерном пространстве, то они ленейно независимые.
Перепишем функцию (1) в виде
причем ее минимум находится в точке
и
(8)
Допустим, что для поиска минимума функции (8) используется итерационная процедура.
Начнем из точки x0 и проведем поиск в направлении p0 с целью нахождения минимума в точке
(9)
где 0 - некоторая скалярная величина.
Отметим, что в точке x1 направление ортогональный направлению p0 и
(10)
В общему случаю на шаге и происходит поиск из точки xи в направлении pи с целью нахождения минимума в точке
(11)
где для F(x) справедливые соотношения
(12) (13)
Повторным применением уравнения (11) после шагов получим
(14)
для всех j на промежутке 0 j<n-1.
Таким образом, согласно уравнению (13)
(15)
Следовательно,
(16)
и из уравнения (16) получим:
Сейчас, если все векторы p0,p1,:,pn-1 взаимно сопряженные так, что то из соотношения (12) получим
Но потому, что в этом случае векторы p0,p1,:,pn-1 ленейно независимые и, таким образом, образовывают базис, то
g(xn)=0
оттуда
G(xn - x*)=0
и
xn = x*.
Следовательно, если поиск проводится по взаимно сопряженным направлениям, то минимум квадратичной функции n переменных будет найден не больше чем за n шагов.