Лекция 11
.pdfЛекция 11
3.4. Метод сопряженных градиентов
Другой подход к построению эффективных методов I порядка связан с использованием понятия сопряженных направлений.
Определение: Два вектора x y в пространстве En |
называют |
A |
||
(взаимно) сопряженными (или сопряженными по отношению к матрице |
A ) |
|||
или A – ортогональными, если ( x, Ay) 0 или ( Ax, y) 0. |
|
|||
Сопряженность – обобщение ортогональности. |
|
|
||
Лемма: A сопряженные векторы p0 ,..., pn 1 – линейно независимы. |
||||
Рассмотрим задачу минимизации квадратичной функции |
|
|
||
f ( x) |
1 |
( Ax, x) (b, x), |
(3.4.14) |
|
|
||||
2 |
|
|
A – симметричная положительно определенная матрица.
Методы сопряженных направлений позволяют найти точку минимума функции не более чем за m шагов благодаря выбору направления поиска по сопряженным направлениям. Под методом сопряженных направлений для минимизации квадратичной функции (3.4.14) понимается метод
|
|
|
|
|
|
|
|
|
|
||
xn 1 xn n pn , |
n 0, m 1, |
|
|
|
|
|
|||||
в котором направления |
p0 , p1 ,..., pm 1 взаимно |
|
сопряжены, |
т.е. |
|||||||
( Apk , pn ) 0,k n , а |
шаги |
k |
получаются как |
|
решения |
задач |
|||||
одномерной минимизации |
|
|
|
|
|
|
|
|
|
|
|
f ( xk k pk ) min f ( xk |
pk ) , k |
|
( f |
|
( xk ), pk ) |
, |
|||||
|
|
||||||||||
|
|
( Apk , pk ) |
|
||||||||
R |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
k 0,1, . |
|
|
|
|
|
|
|
Теорема: Метод сопряженных направлений позволяет найти точку минимума квадратичной функции не более чем за m шагов.
1
Методы сопряженных направлений отличаются друг от друга способом построения сопряженных направлений. Наиболее известен метод сопряженных градиентов.
В этом методе процессу A – ортогонализации подвергаются последовательно вычисляемые градиенты, т.е. направления pn строят по правилу
|
|
|
|
|
|
(3.4.15) |
|
|
p0 f ( x0 ) |
|
|||||
|
( Apn 1 , f |
|
( xn )) |
|
|
||
|
|
|
|||||
pn f ( xn ) |
|
|
|
|
pn 1 , |
n 1. |
|
( Apn 1 , pn 1 ) |
|||||||
|
|
|
Т.к. p0 f ( x0 ), то первый шаг этого метода совпадает с шагом метода наискорейшего спуска. Можно показать, что направления (3.4.15) являются
сопряженными |
|
относительно |
матрицы |
|
|
A , |
более |
того, |
|
|
|
||||||||||||||||||
|
|
|
f ( xn ), |
||||||||||||||||||||||||||
n |
0, m 1 |
, взаимно ортогональны. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
Пример 17 (иллюстрация метода сопряженных направлений). Найти |
|||||||||||||||||||||||||||
минимум функции 2-х переменных f ( x, y) x2 |
4 y2 |
1. |
|
|
|
||||||||||||||||||||||||
|
|
Для произвольной начальной точки |
|
x0 и произвольного начального |
|||||||||||||||||||||||||
направления поиска |
|
p0 |
следующая точка x1 определяется по |
формуле |
|||||||||||||||||||||||||
x1 x0 0 p0 , где длина шага 0 |
вычисляется из условия минимума |
||||||||||||||||||||||||||||
функции |
f ( x) по в направлении движения: |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
df ( x0 0 p0 ) |
0 . |
|
|
|
|
|
|
|
(3.4.16) |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
d 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Пусть |
x |
(1,1)T , p (1,2)T |
(произвольный вектор, не антиградиент). |
||||||||||||||||||||||||||
|
|
0 |
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тогда |
x |
|
1 |
|
. |
y |
1 2 |
|
. |
|
|
|
из |
(19): |
|
df |
2(1 |
|
) |
||||||||||
|
0 |
0 |
0 |
|
|
|
|
0 |
|||||||||||||||||||||
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
d 0 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
4 2(1 2 |
|
) 2 0 , |
|
|
отсюда |
|
|
|
|
|
|
9 |
, |
|
|
и |
|||||||||||||
0 |
|
|
|
|
|
0 |
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
1 |
|
8 |
|
1 |
T |
|
|
||||
x1 |
|
|
, y1 |
|
|
, X1 |
|
|
, |
|
|
|
. Выберем направление |
p1 из |
|
|
|
|
|
|
|
|
|||||||||
|
17 |
|
|
17 |
|
17 |
|
17 |
|
|
|
||||
точки |
|
x1 |
сопряженным |
к вектору |
p0 |
относительно матрицы |
вторых |
||||||||
производных целевой функции, т.е. из условия ( f p0 , p1 ) 0: |
Так как |
|
2 |
0 |
|
|
f |
|
|
, |
то |
|
0 |
8 |
|
|
|
|
2 |
|
p(1) |
|
|
|
|
|
|
1 |
|
0, откуда |
|
|
, |
( 2) |
|||
|
|
16 |
p1 |
|
|
|
|
|
|
2 |
0 |
|
1 |
|
p(1) |
|
||
( f p , p ) |
|
|
|
|
, |
|
1 |
|
||||
|
0 1 |
|
|
0 |
8 |
|
|
|
|
(2) |
|
|
|
|
|
|
|
2 |
|
p1 |
|
|
|||
2 p(1) |
16 p(2) |
0. |
Компоненты |
вектора |
||||||||
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
p1 определяются неоднозначно с точностью до произвольного множителя.
Поэтому положим p(1) |
1, |
тогда p( 2) |
1 |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
Следующую точку x2 |
вычислим по формуле |
x2 x1 |
1 p1 |
или в |
||||||||||||||||||||||||||||||||||||||
координатной форме: |
|
x |
|
|
x |
|
p(1) |
|
|
8 |
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
1 |
|
|
17 |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
y |
|
y |
|
p(2) |
|
1 |
|
|
|
1 |
|
|
. Шаг |
|
определим, минимизируя функцию |
|||||||||||||||||||||||||||||
|
|
|
|
|
|
1 |
||||||||||||||||||||||||||||||||||||||
|
2 |
1 |
|
|
|
|
1 |
1 |
|
17 |
|
8 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
f ( x) по выбранному направлению |
df ( x1 1 p1 ) |
2( x |
p(1) ) |
|||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d 1 |
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
( y |
|
1 |
p( 2) ) 0 . Подставляя значения координат точки X |
1 |
||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
8 |
1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
1 |
|
|
|
|
|
|
|
||||
и |
|
вектора |
|
|
p , |
получим |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 , |
откуда |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
17 |
|
|
|
1 |
|
|
|
|
|
17 |
|
|
8 |
|
1 |
|
|
|
|
|
1 178 , x2 0, y2 0 .
На рисунке 3.4.14 представлена траектория поиска. Как видно, квадратичная функция двух переменных минимизируется за 2 шага, по одному в каждом из сопряженных направлений.
3
Рис. 3.4.14
Пример 18 (иллюстрация метода сопряженных градиентов).
Рассмотрим |
|
задачу |
минимизации |
|
|
квадратичной |
функции |
|||||||
f x, y x2 2 y2 4x 4 y . |
|
|
|
|
|
|
|
|
|
|
||||
Искомую |
функцию, |
|
|
представляя |
в |
виде |
||||||||
f ( x) x 2 2 2 y 1 2 6, |
запишем как |
f ( x) |
1 |
( Ax, x) (b, x) , |
||||||||||
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
2 |
0 |
|
|
|
4 |
|
|
|
(2,1)T . |
|
|
||
где A |
|
|
, A AT 0, |
b |
|
, x* |
|
|
||||||
|
0 |
4 |
|
|
|
4 |
|
|
|
|
|
|
|
|
Пусть |
x |
(0,0)T . Первый шаг метода совпадает с первым шагом |
||||||||||||
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
метода |
|
|
наискорейшего |
|
|
спуска, |
следовательно, |
|||||||
|
|
|
4 |
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
. Формулу |
|
(3.4.15) на |
|||||
f ( x0 ) Ax0 b |
, p0 f ( x0 ) |
|
|
|||||||||||
|
|
|
4 |
|
|
|
|
4 |
|
|
|
|
|
|
первом шаге не можем применить, т.к. нет точки x1 , поэтому 0 находим из метода наискорейшего спуска:
|
|
|
|
|
|
|
4 4 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
, |
|
|
|
2 |
|
2 |
|
|
|
||
|
|
( f ( x0 ), f ( x0 )) |
|
|
|
|
4 4 |
|
|
4 |
4 |
|
1 |
|
||||
0 |
|
|
|
|
|
|
|
|
, |
|||||||||
( Af ( x0 ), f ( x0 )) |
|
|
8 4 |
8 4 16 4 |
3 |
|||||||||||||
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 4 |
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
4 |
T |
|
отсюда x1 |
x0 |
0 |
f ( x0 ) |
|
, |
|
|
. |
|
3 |
|||||||
|
|
|
3 |
|
|
|||
|
|
|
|
|
|
4 |
|
|
f ( x1 ) Ax1 |
|
|
4 |
|
4 |
T |
||
На втором шаге |
b |
|
|
, |
|
|
, |
||
3 |
3 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
0 |
|
4 |
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 4 |
4 |
|
4 |
|
|
|
|
|
|
|
8 |
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
1 |
|
|
||||||||||||||||||||||||||||||||||||||||||
|
( Ap0 , f ( x1 )) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
, |
и |
||||||||||||||||||||||||||||
|
|
( Ap0 , p0 ) |
|
|
|
|
|
|
2 |
|
|
0 |
|
4 |
4 |
|
|
|
|
|
|
8 4 16 4 |
|
|
|
|
|
|
9 |
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
4 |
|
|
4 |
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
p1 f ( x1 ) |
1 |
|
p0 |
|
|
4 |
|
, |
4 T |
|
|
1 |
|
|
|
|
T |
|
|
16 |
, |
8 T |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(4,4) |
|
|
|
|
|
|
|
|
|
|
, |
|||||||||||||||||||||||||||||||||||||||||||
|
9 |
3 |
|
|
|
|
|
9 |
|
9 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
( f ( x1 ), p1 ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
3 |
|
, |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
1 |
|
|
( Ap1 |
, p1 ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
|
|
|
16 |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
4 |
|
8 |
9 |
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
4 |
|
|
|
16 |
|
|
|
4 |
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
3 |
|
|
|
9 |
|
|
|
|
3 |
|
|
|
|
9 |
|
|
|
|
|
|
|
|
3 |
|
|
Получим |
|
x2 x1 |
1 p1 |
|||||||||||||||||||||||||||||||||||||
2 |
16 |
9 |
16 |
9 |
|
|
|
|
|
|
8 |
|
|
|
8 |
|
|
|
|
8 |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
9 |
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
4 |
|
|
3 |
|
|
16 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
3 |
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ax2 b |
||||||||||||||||||||||||||
|
|
4 |
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
Так |
|
|
|
|
|
|
|
|
как |
|
|
|
|
f ( x2 ) |
||||||||||||||||||||||||||||||||||||
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
3 |
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
2 |
|
0 2 |
|
4 |
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
x* |
|
x |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
то |
|
|
|
2 |
|
|
|
и |
|
решение |
оказалось |
||||||||||||||||||||||||||||||||||||||||||||
|
|
0 |
|
4 1 |
|
4 |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
найденным за два шага.
Общая схема алгоритма сопряженных градиентов.
10 . Выбрать x0 Rn , удовлетворяющее условиям теоремы 1 (ниже),
положить k 0.
5
Основной цикл. 2 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
. Вычислить f ( xk ) . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
3 |
0 |
|
|
|
|
0 , то положить x |
* |
xk |
и выход из алгоритма, иначе |
|||||||||||||||||||||||||||||||||||||||||||||
|
. Если f ( xk ) |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
перейти к шагу 40 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
40 . Вычислить pk Q xk p |
|
f xk , p 0, p Rn . |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
50 . Вычислить |
k |
из условия |
f ( x |
k |
|
k |
p ) min f ( x |
k |
p ) . |
|||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
k |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
60 . Вычислить следующее приближение |
x |
k |
1 |
x |
k |
|
k |
p . |
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
||||||||||||||
70 . Положить k k 1 и перейти к шагу 20 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
Теорема 1: Пусть f ( x) – |
|
строго |
выпуклая, дважды |
непрерывно |
||||||||||||||||||||||||||||||||||||||||||||||||
дифференцируемая функция x X , |
X |
|
x |
|
f x f |
x |
, x Rn |
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
и y Rn |
выполняется 1 |
|
|
y |
|
|
|
2 f x y, y 2 |
|
|
|
y |
|
|
|
2 , 1 |
0. Если |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
на шаге 40 |
вектор |
p |
выбирается так, что для некоторого фиксированного |
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
k |
f xk , pk |
|
|
|
|
f xk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
0 выполняется |
|
|
|
|
|
|
|
|
|
|
|
|
pk |
|
, |
то |
алгоритм |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
порождает |
либо |
|
конечную |
|
|
|
|
xk k 0 |
|
, |
|
последний |
|
|
|
элемент |
которой |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
минимизирует f ( x) |
в R |
|
, |
либо бесконечную |
|
xk k 0 , |
сходящуюся к |
|||||||||||||||||||||||||||||||||||||||||||||||
точке минимума x* . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
Все варианты метода сопряженных градиентов отличаются только |
||||||||||||||||||||||||||||||||||||||||||||||||||||
разными способами вычисления k |
и pk . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
Алгоритм метода сопряженных градиентов |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
для минимизации квадратичной функции. |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|
Пусть |
f ( x) |
1 |
( Ax, x) (b, x) . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 . Выбрать x Rn , положить k 0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 . Вычислить Ax0 b и положить p0 |
Ax0 |
b , |
z0 |
p0 . |
||||||||||||||||||||||||||||||||||||||||||||||||||
30 . Если p 0 |
, то |
положить x* x |
0 |
|
|
и |
выход из |
алгоритма, иначе |
||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
перейти к шагу 40 .
6
Основной цикл. 40 . |
Если k 0, |
|
то перейти к шагу 70 , иначе вычислить |
|||||||||||||||||||||||||||||||||||||||
вектор gk 1 A xk |
xk 1 |
k 1 Apk 1 |
|
и перейти к шагу 50 . |
|
|||||||||||||||||||||||||||||||||||||
50 . |
Вычислить |
коэффициент |
|
|
k |
по |
|
одной |
из |
эквивалентных |
формул |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
(zk , gk 1 ) |
|
|
, k |
|
|
|
(zk , zk ) |
|
|
, |
k |
|
(zk |
, zk ) |
|
. |
|
|||||||||||||||||||||||
( pk 1 , zk 1 ) |
(hk 1 , zk 1 ) |
(zk 1 |
, zk 1 ) |
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
60 . Вычислить вектор |
p |
|
z |
k |
|
|
k |
p |
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
k 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
70 . |
Вычислить |
длину |
шага |
|
|
|
k |
по |
|
|
одной |
из |
|
эквивалентных |
формул |
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
k |
|
(z0 , pk ) |
|
|
, |
|
k |
|
|
|
(zk , pk ) |
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
( Apk , pk ) |
|
( Apk , pk ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
80 . Вычислить следующее приближение |
x |
k |
1 |
x |
k |
|
k |
p . |
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|||||||||
90 . Вычислить Ax |
k 1 |
b и положить |
|
z |
k 1 |
Ax |
k 1 |
b . |
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
100 . Если z |
k 1 |
0, то положить |
x* x |
k 1 |
|
и выход из алгоритма, иначе |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
перейти к шагу 110 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
110 . Положить k k 1 и перейти к шагу 40 . |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
Теорема |
2: |
|
|
|
|
Если |
A |
|
|
– |
строго |
|
положительно определенная |
симметричная матрица, то алгоритм решает задачу за число итераций, не
превосходящее |
n и |
1) для |
i, 0 i n 1 выполняется неравенство |
||||
Axi b, pi |
0 , |
если |
Axi |
b 0; |
2) |
точка xi , 1 i n 1 |
|
является точкой |
минимума |
квадратичной |
функции |
f ( x) на |
|||
подпространстве, образованном векторами |
p0 , p1 ,..., pi 1 |
и проходящем |
|||||
через точку x0 . |
|
|
|
|
|
|
|
Неоднозначностью в определении векторов |
pi можно воспользоваться |
так, чтобы упростить процедуру их построения и, в частности, не решать |
|
вспомогательных уравнений (при ортогонализации p0 , |
Ap1 , p0 0 , |
Ap1 , p2 0, Ap0 , p2 0 ).
7