Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция 11

.pdf
Скачиваний:
10
Добавлен:
12.01.2020
Размер:
396.62 Кб
Скачать

Лекция 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

Соседние файлы в предмете Математическое моделирование