Консультация № 187290
20.04.2013, 14:46
93.65 руб.
0 3 1
Здравствуйте, уважаемые эксперты!
Подскажите пожалуйста, как найти антиградиент функции y = sin(2x) в точке x = 2.

Обсуждение

давно
Мастер-Эксперт
17387
18345
20.04.2013, 21:05
общий
это ответ
Здравствуйте, Андрей!

Как я понимаю, имеется функция f(x) = sin 2x. Тогда grad f(x) = df(x)/dx i = 2 cos 2x i. Антиградиент - вектор, имеющий направление, противоположное градиенту. Значит, при x = 2 -grad f(2) = -2 cos (2 * 2) i = -2 cos 4 i [$8776$] 1,31i.

С уважением.
5
Об авторе:
Facta loquuntur.
Неизвестный
21.04.2013, 11:47
общий
Спасибо!
Я, чисто из любопытства решил найти локальный минимум этой функции методом градиентного спуска, как отправную точку выбрал х=2.

Вычисляю значение шага (a0):
f(a0) = f(2+1,31a0i) = sin(4+2,62a0i);
f'(a0) = 2,62i*cos(4+2,62a0i);
2,62i*cos(4+2,62a0i) = 0;
4+2,62a0i = arccos(0);

Тогда x1 = 2 + 0,927i*1,31i ≈ 0,786
Найденная точка является ближайшим локальным максимумом Т.е. я шагал не в сторону минимума.
Не подскажете, что я делаю неправильно ? как мне делать шаг в сторону минимума ?
давно
Мастер-Эксперт
17387
18345
21.04.2013, 14:17
общий
21.04.2013, 14:22
x(0) = 2, f(x(0)) = sin (2 * 2) = sin 4 [$8776$] - 0,76, (df/dx)(0) = 2 * cos 4 [$8776$] -1,31;

x(1) = x(0) - h(0)(df/dx)(0) = 2 + 1,31h(0),
f(2 + 1,31h(0)) = sin (4 + 2,62h(0)),
f'h(2 + 1,31h(0)) = 2,62 * cos (4 + 2,62h(0)) = 0,
4 + 2,62h(0) = 4,71 (шаг должен быть положительным, поэтому принимаем ближайшее к четырём значение арккосинуса нуля),
h(0) = 0,27,
x(1) = 2 + 1,31 * 0,27 [$8776$] 2,35,
f(2,35) = sin (2 * 2,35) = sin 4,70 [$8776$] -1.

Пожалуйста, не отвлекайтесь от темы консультации.
Об авторе:
Facta loquuntur.
Форма ответа