Экстремум функции следует искать в стационарной точке, которая является решением
системы уравнений:
, (1)
где
.
Решить систему (1) в
некоторых случаях бывает довольно сложно. Особенно, если это система нелинейных
уравнений. В таких случаях применяют численные методы. В частности, метод
последовательных приближений.
Начнем с функции одной
переменной. Рассмотрим уравнение где
- нелинейная функция
скалярного аргумента. Предположим, что найти точное значение корней не удается.
Найдем приближенное значение его корней.
Предположим, что известен
интервал, содержащий один корень уравнения. Начнем с произвольной точки х1 из этого интервала.
Построим в этой точке касательную к функции . Как известно, уравнение касательной в точке
с угловым
коэффициентом
записывается так:
или
.
Найдем точку очередного
приближения. Это будет точка х2,
в которой касательная пересекает ось ординат. Сделаем это из условия
.
Отсюда получается, что
.
Теперь строим касательную в
точке (х2 Р(х2))
и далее аналогичным образом находим точку х3.
В результате получаем последовательность точек х1, х2,
х3, …, хk, хk+1,
где каждое последующее значение находится через предыдущее по формуле
. (2)
Учитывая, что , соотношение (2) можно переписать в виде
. (3)
Формулу (3) можно распространить
на общий случай, когда вместо скалярной величины в качестве аргумента функции
имеем вектор :
, (4)
где
- градиент,
- матрица Гессе.
Итерационный процесс продолжается до тех пор,
пока не будет обнаружено, что произошло достаточное приближение к искомой
точке. Критерием этого является выполнение условия , где
- длина градиента,
- достаточно малое положительное число.
В некоторых случаях процесс
сходится к искомой точке за конечное число шагов. Например, для квадратичной
функции метод дает результат, за число шагов не превышающих n.
Пример. Найти стационарную точку функции
.
Решение. Решим задачу классическим способом,
затем проиллюстрируем метод Ньютона.
1) Решение классическим
способом:
- стационарная точка.
2) Решим задачу методом
Ньютона. В данном случае формулу (4) можно записать так:
.
Найдем градиент и матрицу
Гессе для заданной функции:
,
.
Предположим, что исходная
точка , тогда
.
Вычислим обратную матрицу к матрице Гессе:
Таким образом,
.
Тогда координаты очередной
точки
.
Точка следующего приближения
.
Как видим, получена точка, совпадающая с той, которая была на предыдущем шаге, следовательно, стационарная точка найдена. Заметим, что это решение совпадает с тем, которое было найдено классическим способом.
Известно, что градиент скалярной функции в некоторой точке
направлен в сторону наискорейшего возрастания функции и ортогонален линии
уровня в этой точке. Находясь в очередной точке
и каждый раз выбирая в
качестве направления движения градиент (или
антиградиент - вектор противоположной направленности), мы приходим к
итерационному процессу возрастания (убывания) функции. Этот итерационный
процесс можно выразить следующей формулой:
где - параметр, определяющий длину и направление очередного шага;
- градиент функции в
текущей точке.
Существует несколько
вариантов градиентного метода в зависимости от того, как на каждой итерации
осуществляется выбор параметра . Рассмотрим эти варианты.
1. Градиентный метод с
постоянным параметром шага предполагает, что =
, где
- постоянная величина, например
= 1. Тогда шаг будет равен длине градиента в текущей точке и
направлен в сторону возрастания функции. По мере приближения к стационарной
точке (если функция вообще имеет стационарную точку локального максимума) длина
шага будет уменьшаться и процесс приближения будет замедляться.
2. Градиентный метод с
дроблением шага. Параметр на каждой итерации
вычисляется по формуле
,
в результате чего длина шага не зависит от длины
градиента и остается постоянной, равной . Кроме того, выбирая знак параметра
, можно выбирать направление движения - к максимуму (
) или к минимуму (
). Однако может случиться так: приблизившись к стационарной
точке, мы сделаем очередной шаг, который окажется слишком большим. Обнаружится,
что
(предполагается, что
мы ищем максимум), т.е. полученный результат хуже предыдущего. Это значит, что
мы вошли в область стационарной точки, необходимо уменьшить шаг. В соответствии
с этим параметр
уменьшается, например,
в 2 раза. И процесс продолжается. Так будет происходить до тех пор, пока длина
шага не станет достаточно малой. Этот метод прост, но его существенный
недостаток состоит в том, что выбор параметра
приходится делать
субъективно.
3. Градиентный метод
наискорейшего подъема (спуска). Здесь длина шага берется не произвольно, а так,
что на каждой итерации достигается максимальное увеличение целевой функции. То
есть длина шага выбирается оптимальным образом, путем решения вспомогательной
задачи.
.
Беря производную по и приравнивая
полученное выражение к нулю, мы получаем:
.
Это выражение показывает,
что направления движения на двух последних шагах ортогональны.
Все три рассмотренных
варианта метода имеют общий недостаток, который состоит о том, что они плохо
работают, если поверхность функции напоминает "овраг" или
"гребень". В этом случае сходимость даже в случае применения
наискорейшего подъема (спуска) сильно замедляется. Существуют более эффективные
варианты градиентного метода, способные преодолевать это обстоятельство, но их
рассмотрение выходит за рамки нашего учебника.