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

2875

.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
2.5 Mб
Скачать

пакета 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 ø

 

 

 

èy

)ø

 

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

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

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

ak

= arg min F(xk - aFx (xk , yk ), yk - aFy (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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]