Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
motc / opt14.doc
Скачиваний:
87
Добавлен:
10.12.2013
Размер:
417.79 Кб
Скачать

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

Сущность метода. Поиск экстремума ведется в направлении осей координат, т.е. в процессе поиска изменяется только одна координата. Таким образом многомерная задача сводится к одномерной (рис. 3.5).

Х2

М0

М2

М1

Х1

Рис. 3.5. Метод покоординатного спуска

(М1,2 – новые точки приближения к экстремуму)

Алгоритм метода. Первый цикл:

1 шаг. x1 = var, х2 = х20, х3 = х30 , , хn = хn0 .

Ищем экстремум функции f (х1). Положим, экстремум функции в точке х11.

2 шаг. x1 = х11, x2 = var, х3 = х30 , , хn = хn0.

Экстремум f (х2) равен х21.

n шаг. x1 = х11, x2 = х21, x3 = х31 , , xn = var.

В результате n шагов найдена новая точка приближения к экстремуму М1(х11, х21, , х n1). Далее проверяем критерий окончания счета (3.15): если grad f (M1 )    – решение найдено, в противном случае выполняем еще один цикл.

Пример 3.8. f (x1, x2 ) = 4 x12 - 10 x22 +10 x1 x2 - 26 x1, M0 = (0, 0),  = 0,1 .

Решение

1. x1 = var, х2 = 0, f (x1)= 4 x12 26 x1 .

Любым известным методом находим экстремум:  , x11 = 3,25.

2. x1 = 3,25, х2 =var, f (x2)= -10 x22 + 32,5 x2 - 42,25.

x21 = 1,625. M1 = (3,25; 1,625)

3. Проверка критерия окончания счета:

( f / x1 )2 + ( f / x)2 = 16,25.

M1

Как видим, grad f (M1)  0,1, следовательно, требуется выполнить еще хотя бы один цикл.

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

Поиск экстремума ведется шагами в направлении градиента (max) или антиградиента (min). На каждом шаге в направлении градиента (антиградиента) движение осуществляется до тех пор, пока функция возрастает (убывает).

Этот метод имеет лучшую сходимость, чем предыдущий.

Допустим, требуется найти минимум функции.

Алгоритм метода:

1. Находим

grad f (M0) = ( f / x , f / x2 , , f / xn ) .

M0 (3.16)

Введем обозначения: f / x1 = a1, , f / xn = an , тогда

M0 M0

grad f (M0) = (a1, a2, , an).

2. Делаем шаг в направлении антиградиента. Выражения для нахождения координат новой точки приближения к экстремуму выглядят следующим образом:

x11 = x10 - 1 a1,

x21 = x20 - 1 a2, (3.17)

xn1 = xn0 - 1 an .

1 величина шага в направлении антиградиента при 1-й итерации.

3. Находим величину шага.

В направлении антиградиента движемся до тех пор, пока функция убывает. Следовательно, шаг выбирается из условия минимума функции ( 1). Для этого в функцию f (х1, х2 ,, х n) подставляем выражения для координат новой точки: x11, x21, , xn1 . В результате получим функцию одной переменной f (1). Минимум f (1) находим любым известным методом поиска экстремума функции одной переменной. Полученное значение 1 подставляем в формулы (3.17) для x11, x21, , xn1. В результате получаем точку М1 .

4. Проверяем критерий окончания счета.

Если f (M1) – f (M0) , то решение в точке М1 , иначе – требуется сделать еще шаг.

Пример 3.9. f (x1, x2) = x12 7x1+ x224 x2 - x1 x2 + 35, M0 = (1, 1),  = 0,5.

Требуется найти минимум f (x1, x2).

Решение

1. f / x1 = 2 x1 - 7 - x2, a1 = 21 - 7 - 1 = -6 .

f / x2 = 2x2 - 4 - x1 , a2 = 21 - 4 - 1 = -3 .

2. x11 = x10 - 1 a1 = 1 + 6 1,

x21 = x20 - 1 a2 = 1 + 3 1.

3. f (x1, x2) = f(1) = = 27(1)2 - 451 + 35.

Находим минимум f (1), при 1 = 5/6.

x11 = 1 + 6 1 = 6 ,

x21 = 1 + 3 1 = 3,5 .

M1 = (6; 3,5).

4. f (M1) – f (M0) = 16,75  ,

следовательно, нужен еще шаг.

Соседние файлы в папке motc