Применение метода Зейделя-Гаусса к квадратичным функциям

Аппроксимация квадратичными функциями гораздо более распространена. Пусть задана квадратичная функция (3): , которая является, как было показано ранее, выпуклой функцией с минимумом в точке . Возьмем начальную точку х0=(1, 1) (это можно считать начальной локализацией). Зафиксируем и найдем экстремум по координате х2 из уравнения: , , .

Далее фиксируем и отыскиваем экстремум по х1, , , . Как видно за одну итерацию, содержащую два шага, экстремум не найден.

Делаем следующий шаг из точки х1, , , , . Следующий шаг из дает . Закончена вторая итерация. Продолжая вычисления, получим точку , т.е. последовательность сходится к экстремальной точке. Теперь встает вопрос, когда закончить вычисления? Т.к. метод З-Г сходится, то вычисления можно прервать на любой итерации. Обычно задают некоторую малую величину e, по координатам или d по значению функции. Вычисления заканчиваются тогда, когда разница между значениями координат (или функции) на текущей и на предыдущей итерациях станет меньше или равна данной величине e или d. Метод З-Г достаточно прост, но имеет малую скорость сходимости, т.к. на каждой итерации в общем случае надо делать n шагов при несепарабельных функциях.

Градиентные методы.

В градиентных методах направление движения к экстремальной точке выбирается по градиенту или антиградиенту, а шаг mk выбирается различными способами в зависимости от метода.

Метод наискорейшего спуска.

Пусть задана сепарабельная функция и начальная точка х0=(–0,6;–2,6), у0=4,68. Вычислим в точке х0 проекции градиента:

Построим на графике линий равного уровня проекции градиента в определенном масштабе и результирующий вектор L1, который дает направление наибольшего изменения функции в точке х0. Если провести через L1 плоскость, перпендикулярную {x1, x2}, то эта плоскость, рассекая поверхность , выделит на ней параболу. Теперь надо найти точку экстремума полученной параболы. Для этого следует записать уравнение параболы в данной плоскости (плоскости градиента) с помощью параметра m, учитывающего направление антиградиента:

Подставляя значения координат и проекций градиента, получим:

Определим параметр m исходя из экстремума функции :

,

Теперь определим координаты точки х(1), в которой функция по направлению L1 достигает экстремума.

,

,

Значение функции в этой точке: у(1)=1,3. Полученная точка х(1) по направлению L1 показана на рисунке. Линия градиента касается в этой точке линии равного уровня функции у.

Продолжая вычисления, а именно: 1) определяя проекции градиента, 2) составляя уравнения параболы в плоскости градиента , 3) находя параметр m из условия экстремума функции , 4) определяя координаты точки х(2), в которой функция по направлению градиента достигает экстремум, получим следующие результаты:

Итерация            
х (-0,6;2,6) (-0,08;1,82) (0,48;2,19) (0,65;1,94) (0,83;2,06) (0,89;1,98)
у 4,68 1,3 0,41 0,14 0,043 0,014

В математике доказывается, что метод наискорейшего спуска сходится. Значит, вычисления можно прервать на любом шаге, если выполнена заданная точность. Например, если задана точность по значениям функции у на смежных шагах d£0,05. Тогда разность на 4 и 5 итерациях , следовательно, на пятой итерации вычисления можно закончить.

Метод наискорейшего спуска в изложенном выше пошаговом варианте достаточно универсален и применим для широкого класса функций, имеющих конечную производную в каждой точке, т.е. гладких. Но уравнение для m иногда получается сложным и громоздким. Для квадратичных функций определение m можно упростить и сделать более удобным для расчетов на ЭВМ.

Пусть дано квадратичное уравнение в матричной форме:

,

которое запишем в развернутой форме через матрицу Н и С:

Запишем градиент функции у:

Возьмем теперь любое направление S с проекциями S1 и S2 и составим для этого направления уравнение экстремальной линии через параметр m для любой точки (х1, х2):

Раскрыв скобки и продифференцировав по m, получим:

Отсюда определяем m из условия экстремума по m:

Нетрудно заметить, что данное выражение можно переписать так:

,

что соответствует матричной записи:

Если вместо произвольного направления взять градиент, то получим:

, или:

, (6)

В общем виде, для функции многих переменных:

Покажем, насколько упростилась процедура определения m для квадратичной функции . Зададимся начальной точкой с координатами .

Определим проекции градиента в точке х0:

На рисунке показаны линии уровня и проекции градиента. Определяем m по (6):


Координаты экстремальной точки по L1:

;

Далее вычисляются проекции градиента во вновь найденной точке :

, и строится направление L2. Затем вычисляется m для второй итерации по (6): .

Координаты экстремальной точки по направлению L2:

Как видно, за две итерации методом наискорейшего спуска была достигнута малая окрестность экстремума функции. В этом и состоит основное преимущество данного метода над методом Зейделя-Гаусса.

Градиентные методы с заданием параметра шага m

Для поиска экстремума функций с большим числом переменных метод наискорейшего спуска становится трудоемким (если не применять ЭВМ). Поэтому был предложен ряд его модификаций.

Самая трудная операция в методе наискорейшего спуска – нахождение экстремального параметра m. Чтобы ее исключить, можно задавать параметр m в виде некоторой сходящейся числовой последовательности, например, в виде ряда:

, где n=1,2… – номер итерации, К – коэффициент.

Скорость сходимости данной модификации данной модификации в целом ниже, чем в методе с определением m по экстремуму функции у(m), и зависит от выбора коэффициента К и самой последовательности. Последовательность должна выбираться такой, чтобы скорость ее сходимости была ниже скорости сходимости градиента, иначе ряд сойдется к 0 быстрее, чем градиент. Для определения коэффициента К желательно определить на первой итерации параметр m по экстремуму у(m) или по уравнению (6).

Например, пусть задана функция: , . Данный пример уже рассматривался в методе наискорейшего спуска. На первой итерации проекции градиента имели значения: , Параметр .

Выбираем m в виде последовательности , причем К берем близким к m0, пусть К=0,2.

Тогда на первой итерации m0=0,2.

На второй итерации при и проекциях градиентов в точке х(1)

получим:

Расчеты можно продолжить дальше, получим сходящуюся минимизирующую последовательность. Хотя скорость сходимости данного метода будет меньше, чем у метода наискорейшего спуска, зато значительно упрощается расчет m на каждом шаге.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: