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

Численные методы (пакет MATLAB). Пантелеев И.Н

.pdf
Скачиваний:
32
Добавлен:
30.04.2022
Размер:
3 Мб
Скачать
☆

пакета MATLAB и функции ZeidelO, листинг которой приве- ден в предыдущем разделе, свидетельствует о неоспоримом преимуществе первых. Данное обстоятельство обусловлено тем, что в пакете MATLAB (который изначально разрабаты- вался для проведения матричных вычислений) используются специальные быстрые алгоритмы для выполнения арифмети- ческих операций с матрицами. Поэтому при решении при- кладных задач, в ходе которых возникает необходимость ре- шения систем линейных уравнений, целесообразнее исполь- зовать встроенные возможности пакета MATLAB.

IV. Методы решения систем нелинейных уравнений

На примере метода Ньютона и метода спуска продемонст- рируем основные подходы к решению задачи нахождения кор- ней системы нелинейных уравнений, опишем соответствующие алгоритмы и их программные реализации, а также обсудим ис- пользование соответствующих функций пакета MATLAB.

4.1. Векторная запись нелинейных систем. Метод простых итераций

Пусть требуется решить систему уравнений

ì f (x , x ,Kx ) = 0,

 

ï 1

1 2

n

 

ï f2 (x1, x2 ,Kxn ) = 0,

(IV.1)

í

 

 

ïL L L L

 

ï f

(x , x ,Kx ) = 0,

 

î n

1 2

n

 

где f1.f2...,fn - заданные, вообще говоря, нелинейные веществен- нозначные функции n вещественных переменных x1,x2.....xn. Введем обозначения:

æ x

ö

ç 1`

÷

ç x2

÷

x º ç

÷,

çL

÷

ç

÷

è x3

ø

 

æ f

 

(x) ö

 

æ

f

 

(x , x

 

 

,Kx

n

) ö

 

 

 

ç

 

1

 

÷

 

ç

 

1

1

2

 

÷

 

 

F(x) º

ç

f

2 (x)÷

=

ç

f2 (x1, x2

,Kxn )÷

 

 

 

ç

 

 

 

÷

ç

 

 

 

 

 

 

 

 

, 0

 

 

 

M

 

 

 

M

 

 

 

 

 

÷

 

 

 

ç

f

 

÷

 

ç

f

 

 

 

,Kx

 

÷

 

 

 

ç

n

(x)÷

 

ç

n

(x , x

2

n

)÷

 

 

 

è

 

 

ø

 

è

 

1

 

 

 

ø

 

 

æ0ö ç ÷ º ççç0M ÷÷÷. çè0÷ø

Тогда систему (IV.1) можно заменить одним уравнением

F(x)=

 

(IV.2)

0

относительно векторной функции F векторного аргумента x. Следовательно, исходную задачу можно рассматривать как

задачу о нулях нелинейного отображения F : Rn ® Rn . В этой

постановке данная задача является прямым обобщением зада-

чи о нахождении решения нелинейного уравнения для случая пространств большей размерности. Это означает, что можно строить методы ее решения как на основе обсужденных в пре- дыдущей главе подходов, так и осуществлять формальный пе- ренос выведенных для скалярного случая расчетных формул. Однако не все результаты и не все методы оказывается воз- можным перенести формально (например, метод половинного деления). В любом случае следует позаботиться о пра- вомерности тех или иных операций над векторными перемен- ными и векторными функциями, а также о сходимости полу- чаемых таким способом итерационных процессах. Отметим, что переход от n= 1 к n ≥2 вносит в задачу нахождения нулей нелинейного отображения свою специфику, учет которой при-

вел к появлению новых методов и различных модификаций уже имеющихся методов. В частности, большая вариативность

методов решения нелинейных систем связана с разнообразием способов, которыми можно решать линейные алгебраические задачи, возникающие при пошаговой линеаризации данной не- линейной вектор-функции F(x) .

Начнем изучение методов решения нелинейных систем с метода простых итераций.

Пусть система (IV.1) преобразована к следующей эквива-

лентной нелинейной системе:

 

 

 

 

ìx1 = ϕ1 (x1 , x2 ,K, xn ),

 

ïx

2

= ϕ

2

(x , x

2

,Kx

n

),

 

ï

 

1

 

 

 

 

(IV.3)

í

 

 

 

L

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

ïx

n

= ϕ(x , x

2

,Kx

n

)

 

 

î

 

 

1

 

 

 

 

 

или в компактной записи:

æϕ1

(x)ö

æϕ1

(x1 , x2 ,K, xn ) ö

 

çϕ

2

(x)÷

çϕ

2

(x , x

2

,K, x

n

)÷

 

ç

 

 

÷

ç

1

 

÷

(IV.4)

x = F(x) = ç

L

÷

= ç

 

 

L

 

÷.

ç

÷

ç

 

(x , x

 

÷

 

çϕ

n

(x)÷

çϕ

n

2

,K, x

n

)÷

 

è

 

 

ø

è

1

 

ø

 

Для задачи о неподвижной точке нелинейного отображения F = Rn ® Rn запишем формальное рекуррентное равенство:

x (k +1) = F(x (k ) ), (IV.5)

где k определяет метод простых итераций, для задачи (IV.3) и k= 0,1,2,...,n .

Если начать процесс построения последовательности (x (k ) ) с некоторого вектора x (0) = (x1(0), x2(0) ,K, xn(0) )T и продолжить вы-

числительный процесс по формуле IV.5), то при определенных условиях данная последовательность со скоростью геометриче-

ской прогрессии будет приближаться к вектору x* — неподвиж- ной точке отображения Ф(х).

Справедлива следующая теорема, которую мы приводим без доказательства.

Теорема IV.1. Пусть функция Ф(х) и замкнутое множество M Í D(F) Í Rn таковы, что:

1.F(x)Î M, "x Î M.

2.$q < 1:

 

 

 

~

 

£ q

 

 

 

~

 

 

 

,

~

Î M.

 

 

 

 

 

 

 

 

 

 

F(x)- F(x )

 

 

 

 

x - x

 

 

 

"x, x

Тогда Ф(х) имеет в М единственную неподвижную точку x* ; последовательность (x (k ) ), определяемая (IV.5), сходится

при любом

 

 

 

 

 

x (0) Î M

 

к

 

 

 

 

x* ; справедливы оценки:

 

x* - x (k )

 

 

 

£

 

 

q

 

 

 

 

x (k ) - x (k −1)

 

 

 

£

 

qk

 

 

 

 

x (1) - x (0)

 

 

 

, "k Î N.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

- q

1- q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отметим низкую практическую ценность данной теоремы из-за не конструктивности ее условий. В случаях, когда вы-

брано хорошее начальное приближение x (0) решению x* , больший практический интерес представляет следующая тео- рема.

Теорема IV.2. Пусть F(x) дифференцируема в замкну-

 

 

(0)

 

 

 

¢

 

 

 

 

 

 

 

 

 

том

шаре S(x ,r)Í D(F), причем

$q Î (0;1): sup

 

 

£ q .

 

F (x)

 

 

 

если центр x (0)

 

x S

 

 

 

 

Тогда

и радиус

r шара S таковы, что

 

x (0) - F(x (0) )

 

 

 

£ r(1- q),

то справедливо заключение теоремы

 

 

 

IV.1 с М = S .

Запишем метод последовательных приближений (IV.5) в развернутом виде:

ì

(k +1)

= ϕ1

(k )

(k )

 

(k )

),

 

ïx1

(x1

, x2

,K, xn

 

ïx

(k +1)

= ϕ

 

(x(k ), x(k )

,K, x(k ) ),

(IV.6)

í

2

 

2

1

2

 

n

 

ï

 

 

 

 

L

,K, x(k ) ).

 

ïx

(k +1)

= ϕ

n

(x(k ), x(k )

 

î

n

 

1

2

 

n

 

 

Сравнение (IV.6) с вычислительной формулой метода про- стой итерации решения систем линейных уравнений (III.13) обнаруживает их сходство. Учитывая, что в линейном случае, как правило, более эффективен метод Зейделя, а данном слу- чае также может оказаться более эффективным его многомер- ный аналог, называемый методом покоординатных итераций:

ì

(k +1)

= ϕ1

(k )

(k )

 

(k )

(k )

),

 

ïx1

(x1

, x2

,K, xn−1 , xn

 

ïx

(k +1)

= ϕ

 

(x(k +1), x(k ),K, x(k )

, x(k ) ),

(IV.7)

í

2

 

2

1

2

n−1

n

ï

 

 

 

 

L

 

 

 

, x(k ) ).

 

ïx

(k +1)

= ϕ

n

(x(k +1), x(k+1),K, x(k +1)

 

î

n

 

1

2

n−1

n

 

Заметим, что, как и для линейных систем, отдельные урав- нения в (IV.7) неравноправны, т, е. перемена местами уравне- ний системы (IV.3) может изменить в некоторых пределах чис- ло итераций и вообще ситуацию со сходимостью последова- тельности итераций. Для того чтобы применить метод простых итераций (IV.6) или его "зейделеву" модификацию (IV.7) к ис- ходной системе (IV.1), необходимо сначала тем или иным спо- собом привести эту систему к виду (IV.3). Это можно сделать, например, умножив (IV.2) на неособенную nхn матрицу А и

прибавив к обеим частям уравнения

- A × F(x)вектор неизвест-

ных. Полученная система

 

x = x - A × F(x)

(IV.8)

эквивалентна исходной и имеет вид, аналогичный уравнению в методе итераций в одномерном случае. Проблема состоит лишь

вправильном подборе матричного параметра.

4.2.Метод Ньютона решения систем нелинейных

уравнений

Для решения системы (IV.3) будем пользоваться методом

последовательных приближений.

 

 

Предположим,

известно

k-е

приближение

x (k ) = (x(k ), x(k ),K, x(k ) ) одного из

изолированных корней

1

2

n

 

 

x* = (x* , x* ,K, x* ) векторного уравнения (IV.2).

 

1

2

n

 

 

Тогда точный корень уравнения (IV.2) можно представить в виде:

x* = x (k ) + Dx (k ), (IV.9)

где Dx (k ) = (Dx1(k ), Dx2(k ),K, Dxnk ) — поправка (погрешность кор- ня).

Подставляя выражение (IV.9) в (IV.2), имеем

F(x (k ) + Dx(k ) )= 0.

(IV.10)

Предполагая, что функция F(x) непрерывно дифференцируе-

ма в некоторой выпуклой области, содержащей x и x (k ) , раз- ложим левую часть уравнения (IV.10) по степеням малого век-

тора Dx (k ) , ограничиваясь линейными членами:

 

 

 

F(x

(k )

+ Dx

(k )

)= F(x

(k )

 

 

 

 

¢

k

)Dx

(k )

(IV.11)

 

 

 

 

 

 

 

 

 

)+ F (x

 

 

или в развернутом виде :

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

(k )

 

(k )

 

 

(k )

(k )

 

 

 

 

 

(k )

 

 

(k )

)+L

ï f1

(x1

+ Dx1

 

,K, xn

 

+ Dxn

 

 

)= f1 (x1

,K, xn

ï

 

 

L+ Dx(k )

f1

+ Dx(k )

 

f1

= 0

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

1 x1

 

n

 

 

xn

 

 

 

 

 

 

ï

 

 

 

LLL LLLLL LLLLL LL (IV.12)

í

 

 

 

ï f

n

(x(k ) + Dx(k ),K, x

(k ) + Dx(k ) )= f

n

(x(k ),K, x(k ) )+L

ï

1

 

1

 

 

 

 

n

 

n

 

 

 

 

 

 

1

 

 

n

 

ï

 

 

L+ Dx(k )

fn

 

+ Dx(k )

fn

= 0.

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

x1

 

n

 

 

xn

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из формул (IV.11) и (IV.12) видно, что под производной F ′(x)следует понимать матрицу Якоби системы функций

f1 , f2 ,K, fn относительно переменных x1 , x2 ,Kxn , т. е.

 

 

é ¶f1

f1

 

L

f1

ù

 

 

ê

 

 

 

 

 

 

ú

 

 

x

 

x

2

x

 

 

 

ê

 

1

 

 

 

 

 

n ú

 

 

ê

f2

f2

 

L

f2

ú

F ¢(x) = W (x) =

ê

 

 

 

 

 

ú

x

x

2

x

 

 

 

ê

 

1

 

 

 

 

 

n ú

 

 

êL L L L

 

ú

 

 

ê

fn

 

fn

 

 

 

 

ú

 

 

ê

 

L

fn ú

 

 

ê

x

 

x

2

 

x

 

ú

 

 

ë

 

1

 

 

 

 

 

n û

или в краткой записи

 

 

 

 

 

 

 

 

 

 

 

 

¢

é

fi

ù

(i, j = 1,2,, n),

 

 

 

ú

 

 

 

F (x) = W (x) = ê

x j

 

ê

ú

 

 

 

 

 

 

 

 

ë

 

 

û

 

 

 

 

 

 

 

поэтому формула (IV.12) может быть записана в следующем виде:

F(x (k ) )+W (x (k ) )Dx(k ) = 0.

 

(IV.13)

é¶f

ù

 

Если det W (x) = detê

 

ú

¹ 0 , то

 

ë¶x û

 

Dx (k ) = -W −1 (x(k ) )F(x (k ) ).

 

(IV.14)

Отсюда видно, что метод Ньютона для решения системы (IV.1) состоит в построении итерационной последовательности:

x (k +1) = x (k ) -W −1 (x (k ) )F(x (k ) ), (IV.15)

где k =0, 1,2,

Если все поправки становятся достаточно малыми, счет прекращается. Иначе новые значения хi, используются как при- ближенные значения корней, и процесс повторяется до тех пор, пока не будет найдено решение или не станет ясно, что полу- чить его не удастся.

Пример IV.1. Найти методом Ньютона приближенное положи-

тельное решение системы уравнений

ì f1 (x, y, z) = x2 + y2 + z2 -1, ïí f2 (x, y, z) = 2x2 + y2 - 4z, ïî f3 (x, y, z) = 3x2 - 4y + z2 ,

исходя из начального приближения x0 =

Полагая

 

 

é0.5ù

é f1 (x,

x

(0)

ê

ú

ê

(x,

 

= ê0.5ú,

f (x) = ê f2

 

 

ê

ú

ê

(x,

 

 

ë0.5û

ë f3

Имеем

y0 = z0 = 0.5.

y, z)ù

y, z)úú,

y, z)ú

û

 

é

x

2

+ y

2

+ z

2

 

ù

 

 

 

 

 

 

 

-1

 

 

f (x) =

ê2x2

+ y2 - 4z

ú.

 

 

 

ê

 

 

 

 

 

 

 

 

ú

 

 

 

ê

 

 

2

- 4y + z

2

ú

 

 

Отсюда

ë3x

 

 

û

 

 

 

 

 

 

 

 

 

 

 

 

 

 

é0.25 + 0.25 +

0.25 -1ù

 

é- 0.25ù

f (x(0) )= ê0.50 + 0.25 -

2.00

 

ú

=

ê-1.25

ú.

ê

 

 

 

 

 

 

 

 

ú

 

ê

ú

ê

 

 

 

 

+

0.25

 

ú

 

ê

ú

ë0.75 - 2.00

 

û

 

ë-1.00

û

Составим матрицу Якоби:

é¶f1

êê x W (x) = ê¶f2

êê x êf3 êë x

Имеем

f1

y f2

y

f3 y

f1

ù

 

 

 

 

ú

 

z

 

ú

é2x

 

f2

ú

ê

 

 

 

ú

= ê4x

 

z

 

ú

ê

f3

ú

ë6x

 

z

ú

 

 

û

 

2y

2z ù

2y

 

ú

- 4ú.

- 4

2z

ú

û

W (x

 

)=

é1

1

1

 

ù

0

ê

 

-

 

ú

 

ê2 1

4ú,

 

 

 

 

ê

 

 

 

ú

 

 

 

 

ë3

- 4 1û

Причем

 

 

 

 

 

 

 

 

D = W (x

 

 

é1

1

1 ù

 

0

 

ê

 

1

 

ú

= -40.

 

)= ê2

- 4ú

 

 

 

ê

 

 

1

ú

 

 

 

 

ë3 - 4

û

 

Следовательно, матрица W (x 0 ) — неособенная. Вычисляем обратную ей матрицу:

 

 

 

 

 

é3

 

 

1

 

 

 

1

 

 

ù

 

 

 

 

 

ê

 

 

 

 

 

 

 

 

 

 

 

ú

 

 

é-15 - 5 - 5ù

8

 

 

8

 

 

 

8

 

 

W −1 (x 0 )= -

 

ê

 

 

 

 

 

 

 

ú

1

ê-14

- 2 6

ú

= ê

7

 

1

-

 

3

ú.

40

ú

20

 

20

20

 

ê

7 -1

ê

 

 

 

ú

 

 

ê-11

ú

ê

11

 

7

 

 

1

 

 

ú

 

 

ë

 

û

ê

 

 

 

 

 

ú

 

 

 

 

 

ê

40

 

40

40

 

ú

 

 

 

 

 

ë

 

 

û

По формуле (IV.15) получаем первое приближение:

 

 

 

 

 

 

 

 

 

é3

1

 

 

1

 

 

ù

 

 

 

 

 

 

 

 

 

 

 

é0.5ù

ê

8

8

 

 

8

 

 

ú

é- 0.25

ù

 

 

 

 

 

 

 

 

ê

 

 

 

 

ú

 

x (1) = x (0 ) - W −1 (x (0 ) )F (x (0 ) )= ê0.5

ú

- ê

7

 

1

 

-

 

3

 

ú

× ê

-1.25

ú

=

ú

20

20

 

20

ú

 

 

 

 

 

 

 

ê

ê

 

 

 

ú

ê

 

 

 

 

 

 

 

 

 

ê

ú

ê

 

 

 

 

 

 

 

 

 

 

ú

ê

-1.00

ú

 

 

 

 

 

 

 

 

ë0.5

û

11

 

 

7

 

 

1

 

ë

û

 

 

 

 

 

 

 

 

 

 

ê

-

 

 

 

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

ê

40

40

 

40

 

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

ë

 

 

û

 

 

 

 

é

0.5ù

 

é0.375

ù

é0.875

ù

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ê

0.5

ú

+

ê

ú

ê

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= ê

ú

ê0

ú

= ê0.500

ú.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ê

0.5

ú

 

ê

ú

ê

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ë

û

 

ë- 0.125

û

ë0.375

û

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аналогично находятся дальнейшие приближения. Результаты вычислений приведены в табл. 4.1.

Таблица 4.1.

Последовательные приближения корней

I

X

у

z

0

0.5

0.5

0.5

1

0.875

0.5

0.375

2

0.78981

0.49662

0.36993

3

0.78521

0.49662

0.36992

Останавливаясь на приближении .x(3), будем иметь: x= 0.7852;

у = 0.4966; г = 0.3699.

4.3. Решение нелинейных систем методами спуска

Общий недостаток всех рассмотренных ранее методов ре- шения систем нелинейных уравнений состоит в локальном ха- рактере сходимости, затрудняющем их применение в случаях (достаточно типичных), когда существуют проблемы с выбо- ром начального приближения, обеспечивающего сходимость итерационной вычислительной процедуры. В этих случаях можно использовать численные методы оптимизации — дан- ный раздел вычислительной математики выделяется в само-

стоятельную дисциплину. Для использования наглядной гео-

метрической интерпретации приводимых ниже рассуждений и их результатов ограничимся, как и в предыдущем пункте, рас- смотрением системы, состоящей из двух уравнений с двумя не-

известными

ì f (x, y) = 0

(IV.16)

îíg(x, y) = 0

 

Из функций f(x,y), g(x,y) системы (IV.16) образуем новую функцию.

F(x, y) = f (x, y)2 + g(x, y)2 . (IV.17)

Так как эта функция не отрицательная, то найдется точка (вообще говоря, не единственная) (х*, у*) такая, что

F(x, y) ³ F(x*, y *) ³ 0 "(x, y)Î R2 .

Рис. IV.1. Пространственная интерпретация метода наиско- рейшего спуска для функции (IV.17)

Рис. IV.2. Траектория наискорейшего спуска для функции (IV.17) в плоскости ХОУ

Следовательно, если тем или иным способом удается полу- чить точку (x*,y*), минимизирующую функцию Ф(х,у), и если

при этом окажется, что min F(x, y) = F(x*, y *) = 0 , то точка

(x, y ) R2

(х*,у*) — истинное решение системы (IV.16), поскольку

F(x*, y *) = 0 Û

ì f (x*, y *) = 0,

îíg(x*, y *) = 0,

Последовательность точек (xk,yk) — приближений к точке (х*, у*) минимума функции Ф(x,у) — обычно получают по ре-

куррентной формуле

 

 

 

 

 

 

 

æ x

k+1

ö

æ x

ö

æ p

ö

 

.

ç

÷

ç

k ÷

ç

k ÷

(IV.18)

ç

 

÷

= ç

÷

+ αk ç

÷,

 

è yk+1

ø

è yk ø

èqk ø

 

где k =0,1,2,..., (pk,qk)r - вектор, определяющий направление ми- нимизации, a αk— скалярная величина, характеризующая ве- личину шага минимизации (шаговый множитель). Учитывая геометрический смысл задачи минимизации функций двух пе- ременных Ф(х, у) — "спуск на дно" поверхности z = Φ(x:,у) (рис. IV.1), итерационный метод (IV.18) можно назвать мето- дом спуска, если вектор (pk,qk)T при каждом k является направ- лением спуска (т. е. существует такое а >0, что Ф(хk + apk,yk +αqk)<Φ(xk,yk)), и если множитель ak подбирается так, чтобы

выполнялось условие релаксации Ф(xk+1,yk+1)<Ф(xk,yk) озна- чающее переход на каждой итерации в точку с меньшим значе-

нием минимизируемой функции.

Таким образом, при построении численного метода вида (IV.18) минимизации функции Ф(х,у) следует ответить на два главных вопроса: как выбирать направление спуска (pk,qk)T и как регулировать длину шага в выбранном направлении с по- мощью скалярного параметра — шагового множителя ak. При- ведем простые соображения по этому поводу.

При выборе направления спуска естественным является выбор такого направления, в котором минимизируемая функция убы-

вает наиболее быстро. Как известно из математического ана- лиза функций нескольких переменных, направление наиболь- шего возрастания функции в данной точке показывает ее гра- диент в этой точке. Поэтому примем за направление спуска

вектор

æ p

ö

 

 

 

æF¢

(x

 

, y

 

)ö

 

ç

k ÷

= -ÑF(xk , yk

ç

x

 

k

 

k

÷

(IV.19)

ç

÷

)= -ç

 

(xk , yk

÷

èqk ø

 

 

 

èF¢y

)ø

 

— антиградиент функции Ф(х,у). Таким образом, из семейств (IV.18) выделяем градиентный метод.

Оптимальный шаг в направлении антиградиента — это та- кой шаг, при котором значение Ф(xk+1,yk+1 ) наименьшее среди всех других значений Ф(x,у) в этом фиксированном направле- нии, т. е. когда точка (xk +1, yk+1 ) является точкой условного

минимума. Следовательно, можно рассчитывать на наиболее быструю сходимость метода (IV.19), если полагать в нем

ak

= arg min F(xk - aF′x (xk , yk ), yk - aF′y (xk , yk )).

(IV.20)

 

a>0

 

Такой выбор шагового множителя, называемый исчерпы- вающим спуском, вместе с формулой (IV.19) определяет метод наискорейшего спуска.

Геометрическая интерпретация этого метода хорошо вид- на на рис. IV.1, IV.2. Характерны девяностоградусные изломы траектории наискорейшего спуска, что объясняется исчерпы- ваемостью спуска и свойством градиента (а значит, и антигра- диента) быть перпендикулярным к линии уровня в соответст- вующей точке.

Наиболее типичной является ситуация, когда найти точно (аналитическими методами) оптимальное значение ak не уда- ется. Следовательно, приходится делать ставку на применение каких-либо численных методов одномерной минимизации и находить ak в (IV.18) лишь приближенно.

Несмотря на то, что задача нахождения минимума функции одной переменой ϕk (a) = Φ(xk − aΦ′x (xk , yk ), yk − aΦ′y (xk , yk )). намного проще, чем решаемая задача, применение тех или

иных численных методов нахождения значений ak = argmin ϕk (a) с той или иной точностью требует вычисле-

ния нескольких значений минимизируемой функции.

Так как это нужно делать на каждом итерационном шаге, то

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

Существуют эффективные схемы приближенного вычисления квазиоптимальных ak, в которых учитывается специфика мини- мизируемых функций (типа сумм квадратов функций).

Зачастую успешной является такая стратегия градиентного метода, при которой шаговый множитель ak в (IV.18) берется либо сразу достаточно малым постоянным, либо предусматри- вается его уменьшение, например, делением пополам для удов- летворения условию релаксации на очередном шаге. Хотя каж- дый отдельный шаг градиентного метода при этом, вообще го- воря, далек от оптимального, такой процесс по числу вычисле- ний функции может оказаться более эффективным, чем метод наискорейшего спуска. Главное достоинство градиентных ме- тодов решения нелинейных систем — глобальная сходимость. Нетрудно доказать, что процесс градиентного спуска приведет к какой-либо точке минимума функции из любой начальной точки. При определенных условиях найденная точка минимума будет искомым решением исходной нелинейной системы.

Главный недостаток — медленная сходимость. Доказано, что сходимость этих методов только линейная, причем, если для многих методов, таких как метод Ньютона, характерно ус- корение сходимости при приближении к решению, то здесь имеет место скорее обратное. Поэтому есть необходимость по- строения гибридных алгоритмов, которые начинали бы поиск искомой точки — решения данной нелинейной системы — гло- бально сходящимся градиентным методом, а затем производи-

ли уточнение каким-то быстросходящимся методом, например методом Ньютона (разумеется, если данные функции облада- ют нужными свойствами).

Примечание.

Порядком сходимости последовательности (xk) к х* назы-

вают такое число р, что

 

x * −xk +1

 

≤ C

 

x * −xk

 

p

, где С>0,

 

 

 

 

при всех k>k0.

Разработан ряд методов решения экстремальных задач, ко-

торые соединяют в себе низкую требовательность к выбору начальной точки и высокую скорость сходимости. К таким ме- тодам, называемым квазиньютоновскими, можно отнести, на- пример, метод переменной метрики (Дэвидона-Флетчера- Пауэлла), симметричный и положительно определенный мето- ды секущих (на основе формулы пересчета Бройдена).

При наличии негладких функций в решаемой задаче следу- ет отказаться от использования производных или их аппрок- симаций и прибегнуть к так называемым методам прямого по- иска (циклического покоординатного спуска, Хука и Дживса, Роленброка и т. п.). Описание упомянутых и многих других

методов такого типа можно найти в учебной и в специальной литературе, посвященной решению экстремальных задач.

Для разных семейств численных методов минимизации мо- гут быть рекомендованы свои критерии останова итерацион- ного процесса. Например, учитывая, что в точке минимума дифференцируемой функции должно выполняться необходи- мое условие экстремума, на конец счета градиентным методом можно выходить, когда достаточно малой становится норма градиента. Если принять во внимание, что минимизация при- меняется к решению нелинейной системы, то целесообразнее отслеживать близость к нулю минимизируемой неотрицатель- ной функции, т. е. судить о точности получаемого приближе- ния по квадрату его евклидовой метрике.

Для решения n-мерной системы (IV.1) следует свести зада- чу к решению экстремальной задачи:

F(x) = å fi 2 (x) ® min .

i=1n

Рассмотрим далее примеры реализации некоторых алгорит- мов поиска экстремумов функций, зависящих от нескольких переменных, в пакете MATLAB.

Пример IV.1. Алгоритм поиска экстремума функции с шагом, не зависящим от свойств минимизируемой функции.

Простейший вариант метода наискорейшего спуска рассмотрим на примере поиска минимума квадратической функции

f (x, y) = x2 + μy2 двух переменных с оврагом, пологость ко-

торого определяется параметром μ. Решение данной задачи в пакете MATLAB находится выполнением следующей по- следовательности команд:

1.Создайте файл F_L4.m (листинг IV.1), содержащий описание функции, возвращающей значения функции f(x,y) в узлах коор- динатной сетки.

Листинг 4.1. Файл F_L4.m function z=F_L4 (x,y,mu) N=length(x);

z=zeros(N); for i=l:N for j=l:N

z(i,j)=x(i).^2+mu*y(j).^2; end;

end;

2.Постройте графики исследуемой функции при различных значениях параметра μ.

» N=23;

» Xmin=-5; Xmax=5; » Ymin=-5;Ymax=5; » i=l:N;j=l:N;

» x(i)=Xmin+i*(Xmax-Xmin)/N; » y(j)=Ymin+j*(Ymах-Ymin)/N;

»Ml=F_L4(x,y,0.5); M2=F_L4(x,y,l) ;M3=F_L4(x,y, 1.5) ;

»[X Y]=meshgrid(x,y);

»surfc(X,Y,Ml); colormap gray

»surfc(X,Y,M2); colorap gray

»surfc(X,Y,M3); colormap gray

Из рис. IV.3-IV.5 видно, что при μ = l функция f(x,y,μ) пред- ставляет собой параболоид вращения, при μ>1 параболоид становится эллиптическим, "вытягиваясь" вдоль оси оХ (при μ < 1 — вдоль оси оY).

Рис. IV.3. Поверхность и карта линий уровня функции f (x, y) = x2 + 0.5 × y2