Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Методы спуска



Поиск корня системы нелинейных уравнений можно свести к задаче минимизации некоторой целевой функции.

Пусть необходимо решить систему уравнений (5.12)

Составим целевую функцию Ф(x):

Ф(x 1, …, xn) = f 12(x 1, …, xn) + f 22(x 1, …, xn) + … + fn 2(x 1, …, xn) ³ 0.

Минимальное значение целевой функции, равное нулю Ф(х) = 0, достигается на корне x * = { x 1*, …, xn *} исходной системы, который обращает все fi (x) в нуль.

Поэтому решение исходной системы эквивалентно поиску минимума функции Ф(x 1, …, xn).

Если минимальное значение Ф(x 1, …, xn) в заданной области строго больше нуля, то это свидетельствует о том, что в этой области система уравнений не имеет решения.[1]

Рассмотрим некоторые методы решения задачи минимизации. Они представляют и самостоятельный интерес, не связанный с решением систем уравнений: найти минимум некоторой функции.

Основная идея всех методов спуска, используемых для нахождения минимума функции, состоит в том, чтобы исходя из начального приближения точки х (0) = { х 1(0), х 2(0), …, хn (0)} перейти в следующую точку х (1) так, чтобы значение Ф(х) уменьшилось:

Ф(х (1)) < Ф(х (0)).

Важным элементом всех методов спуска является минимизация функций одной переменной. Поэтому прежде чем говорить о минимизации функций многих переменных, рассмотрим некоторые методы минимизации функции одной переменной j (х).

1. Пусть функция j (х) –дифференцируемая (по крайней мере два раза).

Тогда нахождение минимума сводится к решению уравнения j' (х) = 0.

Метод Ньютона применительно к этому уравнению

.

В практических расчетах производные часто заменяют конечными разностями, причем стараются пользоваться симметричными разностями с постоянным шагом (выше точность). Тогда формула метода Ньютона:

.

Это эквивалентно замене кривой j (х) интерполяционной параболой, построенной по трем точкам: xk – h, xk, xk + h.

2. Пусть функция j (х) не дифференцируема, например, могут существовать разрывы первого рода.

Предположим также, что эта функция – унимодальная кусочно-непрерывная на некотором отрезке [ a, b ], т.е. имеющая на этом отрезке один минимум х * (рис.5.9), причем j (х) строго возрастает при х ³ х * и строго убывает для всех х £ х *.

 
 


Рис.5.9 – Поиск минимума функции одной переменной

Для унимодальной функции по любым двум значениям j (х 1), j (х 2) можно указать интервал, в котором находится точка х *, минимизирующая функцию j (х). Это делается следующим образом.

Вычисляем функцию на концах отрезка, а также в двух внутренних точках х 1 и х 2, сравниваем все четыре значения и выбираем наименьшее. Пусть наименьшее оказалось в точке х 1.Очевидно, минимум расположен в одном из прилегающих отрезков. Поэтому отрезок [ х2, b ] следует отбросить, а отрезок [ а, х 2] оставить. Первый шаг процесса сделан.

Теперь на отрезке [ а, х 2] снова надо выбрать две точки. Но одна точка х 1 уже есть, поэтому достаточно определиться с выбором только одной точки и в ней найти значение функции. Снова сравниваются все четыре значения, выбирают наименьшее и выбирают отрезки. Второй шаг процесса сделан.

В зависимости от стратегии выбора двух точек х 1 и х 2 , на интервале будет различна скорость стягивания интервала, содержащего минимум, к точке х*.

Одна из стратегий основана на методе золотого сечения.

Золотое сечение открыто Евклидом и заключается в нахождении точки, разбивающей интервал [ а, b ]на две части таким образом, чтобы отношение длины всего интервала к большей части было равно отношению большей части к меньшей:

или .

Рассмотрим первое соотношение. Если ввести обозначения

с = b – a, y = x – a,

то получим квадратное уравнение относительно y: y 2 + cy – c 2 = 0. Корни этого уравнения или , где .

Рассмотрим второе соотношение. Вводя обозначения с=b–a, y=b–x, получим уравнение, аналогично предыдущему, решение которого имеет вид: x 1 =b – t (b–a).

Алгоритм метода золотого сечения следующий:

1) вычисляют значения х 1, х 2;

2) вычисляют φ (х 1), φ (х 2);

3) если φ (х 1) £ φ (х 2), то для дальнейшего деления оставляют интервал [ a, x 2];

4) если φ (х 1) (х 2), то для дальнейшего деления оставляют интервал [ x 1, b ].

Процесс деления продолжают до тех пор, пока длина интервала не станет меньше заданной точности e.

Отметим, что точка х 1 производит золотое сечение интервала [ a,x 2], а точка х 2 – интервала [ x 1 ,b ]. Поэтому на оставшемся интервале нужно определить только одну точку, производящую золотое сечение.

Метод золотого сечения, естественно, можно применять и к дифференцируемым функциям. Он надежный, но медленно сходится. Это аналог метода бисекции применительно к задачам на минимум.

Теперь вернемся к функциям многих переменных.

Метод покоординатного спуска. Пусть задано нулевое приближение х (0) = { х 1(0), х 2(0), …, хn (0)}. Фиксируем х 2(0), х 3(0), …, хn (0) и находим минимум Ф(х 1, х 2(0), …, хn (0)) функции одной переменной х 1 одним из вышеизложенных методов. Значение х 1, доставляющее минимум, обозначим х 1(1), т.е.

Ф(х 1(1), х 2(0), …, хn (0)) £ Ф(х 1(0), х 2(0), …, хn (0))

Далее, фиксируем х 1(1), х 3(0) ,…, хn (0)и находим минимум функции Ф(х 1(1), х 2, х 3(0), …, хn (0)) одной переменной х 2. Значение х 2, доставляющее этот минимум, обозначим х 2(1), т.е.

Ф(х 1(1), х 2(1), …, хn (0)) £ Ф(х 1(1), х 2(0), …, хn (0)).

Продолжаем процесс. После n шагов получаем

Ф(х 1(1), х 2(1), …, хn (1)) £ Ф(х 1(1), х 2(1), …, хn (0)).

Таким образом, завершен один цикл покоординатного спуска. Мы перешли из точки х (0) в точку х (1). Если Ф(х (1)) < Ф(х (0)), то выполняется следующий цикл покоординатного спуска, в котором за начальную точку принимается х (1). В результате переходим в точку х (2) и т.д. Этот процесс продолжается до тех пор, пока не выполнится какое-нибудь условие окончания алгоритма, например.

| Ф(х ( k +1)) < Ф(х (k))| < e,

где e – заданная точность.

Этот метод несложен и легко программируется на ЭВМ. Сходится он медленно, сходимость зависит от поведения функции Ф. Хорошая сходимость, например, для функции двух переменных, когда линии уровня похожи на эллипсы (рис.5.10). Плохая сходимость – когда линии уровня кусочно-гладкие, т.е. имеются точки излома (рис. 5.11).

Метод градиентного спуска. Двигаться к минимуму функции можно не только параллельно осям координат. Определим направление спуска таким образом, чтобы в этом направлении функция Ф(х) быстрее всего убывала.

Как выбрать это направление?

Известно, что вектор

ортогонален линиям уровня Ф(х)= const (рис.5.12) и его направление совпадает с направлением максимального роста функции Ф(х) в заданной точке. В точке минимума grad Ф(х) = 0.

       
 
   
 


Рис.5.10 – Котловинный тип рельефа Рис.5.11 – Овражный тип рельефа

 
 

Рис.5.12. Направление вектора градиента

Поэтому итерационный процесс нахождения минимума функции можно определить следующим образом:

,

где hk шаг спуска, х (k)k -тое приближение к точке минимума.

Если grad Ф(х (k)) ¹ 0, то для достаточно малых значений hk будет выполняться условие:

Ф(х (k +1)) < Ф(х (k)). (5.17)

В случае нарушения (5.17) шаг hk дробят до тех пор, пока это условия не выполнится, и продолжают вычисления.

Итерационный процесс можно остановить, например, по выполнению условия

.

Можно модифицировать этот метод, специальным образом выбирая шаг. Найдем значение функции Ф(х) в точке х ( k +1):

и обратим внимание на следующее обстоятельство. Если х ( k ) определено, то целевая функция в следующей точке х (k +1) оказывается функцией только шага спуска h. Имеет смысл выбрать h=h* (рис.5.13) таким образом, чтобы функция Ф за этот шаг максимально уменьшила свое значение, т.е. необходимо решать задачу нахождения минимума функции одной переменной

на каждом шаге итерационного цикла.

Рис.5.1 – Нахождение оптимального шага h *

Пример. Выполнить шаг по методу градиентного спуска для функции .

Итерационная схема имеет вид:

; .

Примем за начальную точку х (0) = {1, 1} и найдем начальный шаг. Для этого необходимо решить задачу нахождения . Аргументами функции Ф будут

и .

Таким образом, задача определения шага h 0 сводится к задаче нахождения минимума функции

.

Вычисляя производную и приравнивая ее к нулю, получим:

; .

С этим шагом переходим в новую точку

и .

Далее процесс повторяется: ищем шаг h 1 и новую точку .

Основной недостаток методов спуска – зависимость от начального приближения х (0) и возможность попасть в локальный минимум (рис.5.14). Поэтому в задачах минимизации важно использовать всю имеющуюся информацию о функции Ф(х), чтобы правильно выбрать начальные значения и попасть в глобальный минимум.

 
 

 
 
б)


а)

Рис.5.14. Поверхность Ф с глобальным и локальным минимумами (а)

и ее проекция на плоскость x 1, x 2 (б)


[1] Речь идет о глобальном минимуме функции Ф. Но могут быть и ненулевые локальные минимумы, что усложняет решение задачи минимизации функции.





Дата публикования: 2015-01-23; Прочитано: 454 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.014 с)...