где вектор <math>p^l\equiv p(u^{k_l})=-r^l+{\beta^lp}^{l-1}</math>, <math>r^l\equiv r(u^{k_l})</math>, <math>\beta^l=||r^l||^2/||r^{l-1}||^2, \beta^{1,n,2n...}=0</math>, <math>\tau^l=||r^l||^2/\langle p^l,H^lp^l\rangle</math>, произведение матрицы Гессе <math>H^l</math> на <math>p^l</math> находится численным дифференцированием:
где вектор <math>p^l\,\overset{\textrm{def}}{=}\,p(u^{k_l})=-r^l+{\beta^lp}^{l-1}</math>, <math>r^l\,\overset{\textrm{def}}{=}\,r(u^{k_l})</math>, <math>\beta^l=||r^l||^2/||r^{l-1}||^2, \beta^{1,n,2n...}=0</math>, <math>\tau^l=||r^l||^2/\langle p^l,H^lp^l\rangle</math>, произведение матрицы Гессе <math>H^l</math> на <math>p^l</math> находится численным дифференцированием:
Для гладкой функции в относительно большой окрестности точки найдётся точка , где градиенты и коллинеарные. Направлением на экстремум из точки будет направление . Вектор указывает на максимум или на минимум в зависимости от положения точки . Она может быть спереди или сзади от относительно направления на (см. рисунок). Далее будем рассматривать минимизацию.
т.е. это шаг метода Ньютона (метод второго порядка с квадратичной скоростью сходимости), где — матрица Гессе. Такие шаги обеспечивают МКГ квадратичную скорость сходимости.
В общем случае, если имеет переменную выпуклость и возможны седловые точки, то следует контролировать направление минимизации по углу между векторами и . Если , то — это направление максимизации и в (1) следует брать с обратным знаком.
Поиск коллинеарных градиентов
Коллинеарность градиентов оценивается невязкой их ортов, которая имеет вид системы уравнений для поиска корня :
(3)
где знак позволяет одинаково оценивать коллинеарность градиентов по одну или разные стороны от минимума , .
Система (3) решается итерационно (подитерации) методом сопряжённых градиентов в предположении, что она линейна в окрестности :
(4)
где вектор , , , , произведение матрицы Гессе на находится численным дифференцированием:
(5)
где , — малое положительное число такое, что .
Начальное приближение задаётся под 45° ко всем осям координат длинной :
(6)
Начальный радиус -окрестности точки корректируется:
(7)
Необходимо . Здесь малое положительное число заметно больше машинного эпсилон.
Подитерации завершаются при выполнении хотя бы одного из условий:
— достигнута точность;
— прекратилась сходимость;
— избыточность подитераций.
Алгоритм выбора направления минимизации
Параметры: .
Входные данные: .
. Если задаём из (7).
Находим из (6).
Вычисляем и находим из (3) при .
Если или , или , или { и }, то принимаем , возвращаем , , стоп.
Если , задаём , иначе .
Вычисляем .
Находим шаговый множитель для подитераций:
запоминаем , , , , ;
задаём , вычисляем , и находим из (5), присваиваем ;
если , тогда , возвращаемся к шагу 7.2;
восстанавливаем , , , , ;
находим .
Делаем подитерацию из (4).
, переходим к шагу 3.
Параметр . Для функций без седловых точек рекомендуется , . Для «обхода» седловых точек рекомендуется , .
Описанный алгоритм позволяет приблизительно найти коллинеарные градиенты из системы уравнений (3). Полученное направление для алгоритма МКГ (1) будет приблизительным направлением Ньютона (truncated Newton method).
Во всех демонстрациях МКГ показывает сходимость не хуже, а иногда и лучше (для функций переменной выпуклости), чем метод Ньютона.
Тестовая функция «повёрнутый эллипсоид»
Строго выпуклая квадратичная функция:
На рисунке для заданы три чёрные стартовые точки . Серые точки — подитерации с (показано пунктиром, завышено для демонстрации). Параметры , . Для всех потребовалась одна итерация и подитераций не более двух.
При (параметр ) с начальной точкой МКГ достиг с точностью 1 % за 3 итерации и 754 вычисления и . Другие методы первого порядка: Квазиньютоновский BFGS (работа с матрицами) потребовал 66 итераций и 788 вычислений; сопряжённых градиентов (Fletcher-Reeves) — 274 итерации и 2236 вычислений; конечно-разностный метод Ньютона — 1 итерация и 1001 вычислений. Метод Ньютона второго порядка — 1 итерация.
С ростом размерности , вычислительные погрешности при реализации условия коллинеарности (3), могут заметно возрастать. Поэтому МКГ, по сравнению с методом Ньютона, в рассматриваемом примере потребовал более одной итерации.
Параметры те же, кроме . Траектория спуска МКГ полностью совпадает с методом Ньютона. На рисунке синяя начальная точка , красная — . В каждой точке нарисованы орты градиентов.
МКГ является очень экономичным по количеству вычислений и . Благодаря формуле (2), он не требует затратных вычислений шагового множителя посредством линейного поиска (например, методом золотого сечения и т.п.).