- •Содержание
- •Тема 1. Задачи одномерной безусловной минимизации
- •Тема 2. Задачи многомерной безусловной минимизации
- •Тема 3. Задачи многомерной оптимизации при наличии ограничений. Линейное программирование
- •Введение
- •Тема 1. Задачи одномерной безусловной минимизации
- •1.1. Постановка задачи
- •1.2. Метод перебора
- •1.3. Метод поразрядного поиска
- •1.4. Метод деления отрезка пополам (метод дихотомии)
- •1.5. Метод Фибоначчи
- •1.6. Метод золотого сечения
- •1.7. Метод средней точки.
- •1.8. Метод Ньютона.
- •Тема 2. Задачи многомерной безусловной минимизации
- •2.1. Необходимые сведения из курса линейной алгебры
- •2.2. Постановка задачи многомерной оптимизации
- •2.3. Необходимые сведения из курса математического анализа
- •2.4. Методы спуска
- •2.5. Метод градиентного спуска с дроблением шага
- •2.6. Метод наискорейшего спуска
- •2.7. Метод сопряженных градиентов
- •2.8. Метод покоординатного спуска
- •2.9. Метод Ньютона
2.9. Метод Ньютона
Метод Ньютона использует информацию о производных первого и второго порядка. Поэтому он относится к градиентным методам второго порядка.
Метод Ньютона для функции многих переменных является обобщением метода Ньютона для одномерного случая (разд. 1.8)
Пусть дана дважды непрерывно дифференцируемая функция n переменных f(x) = f(x1, x2, … ,xn) и начальная точка x(0) = (x , x , … , x )T.
Разложим функцию f(x) в ряд Тейлора в точке x(0) как функцию многих переменных и ограничимся тремя членами:
f(x)=f(x(0))
+
(2.28)
Пусть x(m) приближенное значение точки минимума, полученное на m-ом шаге итерационного процесса. Разложение (2.28) будет иметь место и для точки x(m), а именно
f(x)=f(x(m))+
(2.29)
или в векторной форме
f(x) f(x(m)) + (g(x(m)), (x – x(m)) + (G(x(m))(x – x(m)), (x – x(m))), (2.30)
где G(x(m)) – матрица Гессе (матрица вторых производных) функции f(x) в точке x(m).
Из соотношения (2.29) видно, что в окрестности точки x(m) поведение функции f(x) может быть приближенно описано квадратичной функцией с точностью до величины порядка o(||x – x(m)||)2
Необходимое условие минимума – равенство нулю в точке минимума первой производной функции f(x), т. е.
f '(x) g(x(m)) + G(x(m))(x – x(m)) = 0. (2.31)
Умножим (2.31) на G–1(x(m)):
G–1(x(m))g(x(m)) + (x – x(m)) = 0.
Следовательно,
x = x(m) – G–1(x(m))g(x(m)).
Пусть точка минимума x* x(m+1). Тогда
x(m+1) = x(m) – G–1(x(m))g(x(m)). (2.32)
Формула (2.32) является расчетной формулой метода Ньютона.
Для квадратичной функции матрица Гессе есть матрица квадратичной формы, равенство (2.31) является точным, и решение (точка минимума) находится за одну итерацию. В общем случае метод Ньютона обеспечивает , как правило, быструю сходимость. Недостатком метода Ньютона является необходимость на каждой итерации вычисления матрицы Гессе и обратной к ней матрицы. Кроме того, если начальная точка выбрана недостаточно близко к точке минимума x*, то последовательность x(0), x(1), …, x(m), … может расходиться. Для избежания подобной ситуации используется обобщенный метод Ньютона, со следующей расчетной формулой:
x(m+1) = x(m) – (m)G–1(x(m))g(x(m)). (2.33)
Формула (2.33) есть расчетная формула метода спуска (см. формулу (2.18)) с направлением в точке x(m), определяемым вектором p(m) = G–1(x(m))g(x(m)), и с шагом (m).
Величина шага (m) может быть выбрана из условия одномерной минимизации функции (m)() = f(x(m) – (m)G–1(x(m))g(x(m)).
Формулу (2.32) также можно рассматривать как формулу спуска с шагом (m)= 1.
Опишем теперь алгоритм метода Ньютона.
Алгоритм 2.6 (Алгоритм метода Ньютона).
Шаг 1. Выбрать произвольную начальную точку x(0) = (x , x , … , x )T, например, x(0) = (0, 0, … , 0)T и погрешность вычислений > 0.
В цикле по m =0, …, пока не будет выполнен критерий окончания вычислений,
Шаг 2. Вычислить g(x(m)) и G(x(m)).
Шаг 3. Вычислить G–1(x(m)).
Шаг 4. Вычислить x(m+1) = x(m) – G–1(x(m))g(x(m)).
Вычисления продолжить до тех пор, пока не будет выполнен критерий окончания вычислений:
x(m+1)
– x(m)
=
<
,
или
f(x(m+1)) – f(x(m)) < .
Если критерий окончания вычислений выполнен, то положить x* = x(m+1), f* = f(x*) и закончить вычисления.
В случае, когда f(x) – квадратичная функция, матрица Гессе есть матрица квадратичной формы и не зависит от x (G(x(m)) = A). Для этого случая получим следующий алгоритм.
Алгоритм 2.7 (Алгоритм метода Ньютона для квадратичной функции).
Шаг 1. Для квадратичной функции f(x) = + +с ввести матрицу A =(aij), вектор b = (b1, b2, … , bn)T и коэффициент c, i = 1, … , n; j = 1, … , n. Выбрать произвольную начальную точку x = (x1, x2, … , xn)T, например, x = (0, 0, … , 0)T и погрешность вычислений > 0.
Шаг 2. Вычислить
g(x(0)) = (g , g , … , g )T,
g = , i = 1, …, n.
Шаг 3. Вычислить A–1.
Шаг 4. Вычислить x(1) = x(0) – A–1 g(x(0)) .
Пример 2.7.
Методом Ньютона найдем минимум функции f(x) = 2x + 3x +x1x2 –3 x1 с точностью = 0.1.
Шаг 1. Введем
4 1
A = 1 6 ,
b = (– 3, 0)T,
x(0)) = (0, 0)T.
Шаг 2. Вычислим
g(x(0)) = (g , g )T,
g = = 40 + 10 +(– 3) = – 3,
g = = 10 + 60 + 0 = 0.
Шаг 3. Вычислим A–1 = (ij). Элементы обратной матрицы находят по формуле (2.7) (разд. 2.1)
ij = ,
где Aji – алгебраическое дополнение элемента aji матрицы A.
Для нашего примера
detA = 46 – 11 = 23,
A11 = a22 = 6, A12 = – a12 = –1, A21 = – a21 = – 1, A22 = a11 = 4.
Следовательно,
A–1 = .
Шаг 4. Вычислим x(1) = x(0) – A–1 g(x(0)) .
Покоординатно
x(1) = (x , x )T,
x
=
x
–
=
0 –
(–3)
– (
)0
=
,
x
=
x
–
=
0 –(
)(–3)
–
0
= –
.
Точка x(1) = (x , x )T = ( ,– )T есть точка минимума.
