2875
.pdfпакета 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