Алгоритм метода градиентного спуска

1. Задать начальную точку х, погрешность ε, начальный шаг β и вычислить y=f(x).

2. Вычислить ∇f(x), проверить условие ||∇f(x||< ε. Если оно выполнено, то расчёт закончен, ответ - пара значений {x, y}, иначе перейти к шагу 3.

3. Вычислить x1= x - β ∙∇f(x) и y1=f(x1).

4. Если y1 < y, то положить x=x1, y=y1 и перейти к шагу 2, иначе к шагу 5.

5. Положить β = β / 2 и перейти к шагу 3.

Пример.

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

методом наискорейшего спуска, начиная расчёт из точки x0= (7,4) с начальным шагом β = 0.1 и величиной ε=0.01.

Решение.

Вычисляем f(x) = f(7;4) = 188.

Находим градиент заданной функции:

∇f(x) =(10x1 -15; 6x2 -1). Тогда p = (-10x1+15; -6x2 +1).

Проверим выполнение условия ||∇f(x||< ε. Имеем

||∇f(7;4)|| = ||(70 -15; 24 -1) || = ||(55; 23) || ⋲ 59.6 > ε

Вычислим x1= x - β ∙∇f(x) = (7;4) – 0.1 ∙ (55;23) = (7- 5,5; 4 – 2,3) = (1,5; 1,7)

и y1 = f(x1) = -0,28.

Т.к. y1 < y, то x = x1 = (1,5; 1,7), y = y1 = - 0,28.

Вычисляем ∇f(x) = (0; 9,2), проверяем условие ||∇f(x||< ε: ||∇f(x|| = 9,2 > ε.

Вычисляем x1= x - β ∙∇f(x) = (1,5; 1,7) – 0,1 ∙ (0; 9,2) = (1,5; 0,78) и y1 = f(x1) = - 6,2048.

Т.к. y1 = - 6,2048 < y - 0,28, то x = x1 = (1,5; 0,78) y = y1 = - 6,2048.

Вычисляем ∇f(x) = (0; 3,68), проверяем условие ||∇f(x||< ε: ||∇f(x|| = 3,68 > ε.

Вычисляем x1= x - β ∙∇f(x) = (1,5; 0,78) – 0,1 ∙ (0; 3,68) = (1,5; 0,412) и y1 = f(x1) = - 7,1528.

И т.д.


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



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