пакета MATLAB и функции ZeidelO, листинг которой приведен в предыдущем разделе, свидетельствует о неоспоримом преимуществе первых. Данное обстоятельство обусловлено тем, что в пакете MATLAB (который изначально разрабатывался для проведения матричных вычислений) используются специальные быстрые алгоритмы для выполнения арифметических операций с матрицами. Поэтому при решении прикладных задач, в ходе которых возникает необходимость решения систем линейных уравнений, целесообразнее использовать встроенные возможности пакета MATLAB.
59
IV. МЕТОДЫ РЕШЕНИЯ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
На примере метода Ньютона и метода спуска продемонстрируем основные подходы к решению задачи нахождения корней системы нелинейных уравнений, опишем соответствующие алгоритмы и их программные реализации, а также обсудим использование соответствующих функций пакета MATLAB.
4.1. Векторная запись нелинейных систем. Метод простых итераций
Пусть требуется решить систему уравнений
f1(x1, x2 , xn ) 0, |
|
|||
f2 (x1, x2 , xn ) 0, |
(IV.1) |
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
f |
(x |
, x |
, x ) 0, |
|
n |
1 |
2 |
n |
|
где f1.f2...,fn - заданные, вообще говоря, нелинейные вещественнозначные функции n вещественных переменных x1,x2.....xn. Введем обозначения:
x1`
xx2 ,x3
|
f |
1 |
(x) |
|
|
|
|
|
f2 (x) |
||
F x |
|
|
|
|
|
|
|
|
fn (x) |
||
|
|||
|
|
f |
1 |
|
|
|
|
|
|
f2 |
|
|
|
|
|
|
|
|
|
|
|
fn |
|
|
|
||
(x1 , x2 , xn ) |
|
|||||
(x1 , x2 , xn ) |
, |
|||||
(x |
|
|
, x |
|
|
|
, x |
2 |
n |
) |
|||
1 |
|
|
|
|
||
0 0 0 .
0
Тогда систему (IV.1) можно заменить одним уравнением
F x |
|
(IV.2) |
0 |
60
относительно векторной функции F векторного аргумента x. Следовательно, исходную задачу можно рассматривать как
задачу о нулях нелинейного отображения F : Rn Rn . В этой
постановке данная задача является прямым обобщением задачи о нахождении решения нелинейного уравнения для случая пространств большей размерности. Это означает, что можно строить методы ее решения как на основе обсужденных в предыдущей главе подходов, так и осуществлять формальный перенос выведенных для скалярного случая расчетных формул. Однако не все результаты и не все методы оказывается возможным перенести формально (например, метод половинного деления). В любом случае следует позаботиться о правомерности тех или иных операций над векторными переменными и векторными функциями, а также о сходимости получаемых таким способом итерационных процессах. Отметим, что переход от n= 1 к n ≥2 вносит в задачу нахождения нулей нелинейного отображения свою специфику, учет которой привел к появлению новых методов и различных модификаций уже имеющихся методов. В частности, большая вариативность методов решения нелинейных систем связана с разнообразием способов, которыми можно решать линейные алгебраические задачи, возникающие при пошаговой линеаризации данной нелинейной вектор-функцииF(x) .
Начнем изучение методов решения нелинейных систем с метода простых итераций.
Пусть система (IV.1) преобразована к следующей эквивалентной нелинейной системе:
x1 1 (x1 , x2 , , xn ), |
|
||||||||
x2 |
2 (x1 , x2 |
, xn ), |
(IV.3) |
||||||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
x |
n |
(x |
, x |
2 |
, |
x |
n |
) |
|
|
1 |
|
|
|
|
|
|||
или в компактной записи:
61
1 x 1 (x1 , x2 , , xn )
x (x) 2 x 2 x1 , x2 , , xn . (IV.4)n x n (x1 , x2 , , xn )
Для задачи о неподвижной точке нелинейного отображенияRn Rn запишем формальное рекуррентное равенство:
x (k 1) |
(x (k ) ), |
(IV.5) |
где k определяет метод простых итераций, для задачи (IV.3) и k= 0,1,2,...,n .
Если начать процесс построения последовательности x k с некоторого вектора x 0 x10 , x20 , , xn0 T и продолжить вы-
числительный процесс по формуле IV.5), то при определенных условиях данная последовательность со скоростью геометриче-
ской прогрессии будет приближаться к векторуx* — неподвижной точке отображения Ф(х).
Справедлива следующая теорема, которую мы приводим без |
|||||||||||||||||||||||||||||||||||||||||||||
доказательства. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
Теорема IV.1. Пусть функция Ф(х) и замкнутое множество |
|||||||||||||||||||||||||||||||||||||||||||||
D Rn таковы, что: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
1. x , |
|
|
x . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
2. q 1: |
|
|
x |
|
|
|
~ |
|
q |
|
x |
~ |
|
|
|
|
, |
|
|
|
|
~ |
. |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
x |
|
|
x |
|
|
|
|
x, x |
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
Тогда Ф(х) имеет в М единственную неподвижную точку |
|||||||||||||||||||||||||||||||||||||||||||
|
x* ; |
последовательность x k , |
|
определяемая (IV.5), |
сходится |
||||||||||||||||||||||||||||||||||||||||
при |
любом |
|
|
|
x 0 |
|
|
к |
|
|
|
|
x* ; |
справедливы |
оценки: |
||||||||||||||||||||||||||||||
|
x |
* |
x |
k |
|
|
|
|
|
|
|
|
q |
|
|
x |
k |
x |
k 1 |
|
|
|
|
|
|
|
|
qk |
|
|
x |
1 |
x |
0 |
|
|
|
, |
k N. |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
1 |
q |
|
|
|
|
|
|
1 |
q |
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Отметим низкую практическую ценность данной теоремы из-за не конструктивности ее условий. В случаях, когда вы-
брано хорошее начальное приближение x 0 решению x* , больший практический интерес представляет следующая тео- рТеорема. IV.2. Пусть x дифференцируема в замкну-
том |
шаре S x |
0 |
, r D , причем |
q 0;1 : |
sup |
|
|
|
q . |
||||||
|
|
||||||||||||||
|
|
|
|||||||||||||
|
|
x |
|
||||||||||||
Тогда |
если центр x 0 |
|
|
x S |
|
|
|
|
|||||||
и радиус |
r шара S |
таковы, |
что |
||||||||||||
|
x 0 x 0 |
|
|
|
r 1 q , |
то справедливо заключение теоремы |
|||||||||
|
|
|
|||||||||||||
IV.1 с М = S .
Запишем метод последовательных приближений (IV.5) в развернутом виде:
x1k 1 1 x1k , x2k , , xnk , |
|
|||||
|
|
|
x1k , x2k , , xnk , |
|
||
x2k 1 |
2 |
(IV.6) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x k 1 |
n |
x k , x k , , x k . |
|
|||
|
n |
1 |
2 |
n |
|
|
Сравнение (IV.6) с вычислительной формулой метода простой итерации решения систем линейных уравнений (III.13) обнаруживает их сходство. Учитывая, что в линейном случае, как правило, более эффективен метод Зейделя, а данном случае также может оказаться более эффективным его многомерный аналог, называемый методом покоординатных итераций:
x1k 1 1 x1k , x2k , , xnk 1 , xnk , |
|
|
||||
|
|
x1k 1 , x2k , , xnk 1 , xnk , |
|
|||
x2k 1 |
2 |
(IV.7) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x k 1 |
n |
x k 1 , x k 1 , , x k 1 , x k . |
|
|||
n |
1 |
2 |
n 1 |
n |
|
|
|
|
|
|
63 |
|
|
Заметим, что, как и для линейных систем, отдельные уравнения в (IV.7) неравноправны, т, е. перемена местами уравнений системы (IV.3) может изменить в некоторых пределах число итераций и вообще ситуацию со сходимостью последовательности итераций. Для того чтобы применить метод простых итераций (IV.6) или его "зейделеву" модификацию (IV.7) к исходной системе (IV.1), необходимо сначала тем или иным способом привести эту систему к виду (IV.3). Это можно сделать,
например, умножив (IV.2) на неособенную nхn матрицу А и |
|
прибавив к обеим частям уравнения |
- F x вектор неизвест- |
ных. Полученная система |
|
x x F x |
(IV.8) |
эквивалентна исходной и имеет вид, аналогичный уравнению в методе итераций в одномерном случае. Проблема состоит лишь
вправильном подборе матричного параметра.
4.2.Метод Ньютона решения систем нелинейных уравнений
Для решения системы (IV.3) будем пользоваться методом последовательных приближений.
Предположим, известно k-е приближение x k x1k , x2k , , xnk одного из изолированных корней x* x1* , x2* , , xn* векторного уравнения (IV.2).
Тогда точный корень уравнения (IV.2) можно представить в виде:
x* x k x k , |
(IV.9) |
где x k x1k , x2k , , xnk — поправка (погрешность кор-
ня). 64
Подставляя выражение (IV.9) в (IV.2), имеем |
|
F x k x k 0. |
(IV.10) |
Предполагая, что функция F x непрерывно дифференцируе-
ма в некоторой выпуклой области, содержащей x и x k , разложим левую часть уравнения (IV.10) по степеням малого век-
тора x k , ограничиваясь линейными членами:
|
F x |
k |
x |
k |
|
F x |
k |
|
|
|
k |
x |
k |
(IV.11) |
|||||||
|
|
|
|
|
|
F x |
|
|
|
||||||||||||
или в развернутом виде : |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
f1 |
x1k |
x1k , , xnk |
xnk |
f1 x1k , , xnk |
|||||||||||||||||
|
|
|
|
|
k f1 |
|
|
k f1 |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
x1 |
|
|
xn |
|
|
|
0 |
|
|
|
|
|
|||||||
|
x1 |
|
xn |
|
|
|
|
|
|||||||||||||
|
|
|
(IV.12) |
||||||||||||||||||
|
|
|
|||||||||||||||||||
|
k |
|
k |
|
|
k |
k |
|
|
|
k |
|
|
k |
|
||||||
fn x1 |
x1 |
|
, , xn |
|
|
xn |
|
|
fn x1 |
|
, , xn |
||||||||||
|
|
|
|
|
k fn |
|
|
k fn |
|
|
|
|
|
|
|
||||||
|
|
x1 |
|
|
|
xn |
|
|
|
|
|
0. |
|
|
|
|
|
||||
|
x1 |
|
|
xn |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Из формул (IV.11) и (IV.12) видно, что под производной F x следует понимать матрицу Якоби системы функций
f1 , f2 , , fn относительно переменных x1 , x2 , xn , т. е.
65
f1x1
f2 F x W x x1fn
x1
или в краткой записи
|
f1 |
|
|
f1 |
|
|
||
|
|
|
|
|
|
|
||
|
x |
2 |
x |
|||||
|
f |
|
|
|
n |
|||
|
2 |
|
|
f |
|
|
||
|
|
|
|
2 |
|
|
||
|
|
|
|
|
||||
|
x2 |
|
|
xn |
||||
|
|
|
||||||
|
fn |
|
|
fn |
|
|
||
|
|
|
|
|
||||
|
x2 |
|
|
|
|
|||
|
|
|
|
|
||||
|
|
|
xn |
|||||
|
|
fi |
|
i, j 1,2,, n , |
|
|
|
||
|
|
|||
F x W x |
|
|||
|
|
x j |
|
|
|
|
|
|
|
поэтому формула (IV.12) может быть записана в следующем виде:
F x k W x k x k 0. |
|
(IV.13) |
|
f |
|
0 , то |
|
Если det W x det |
|
|
|
|
x |
|
|
x 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, используются как приближенные значения корней, и процесс повторяется до тех пор, пока не будет найдено решение или не станет ясно, что полу-
чить его не удастся. |
66 |
|
Пример IV.1. Найти методом Ньютона приближенное положительное решение системы уравнений
f1 x, y, z x2 y 2 z 2 1, |
|||
|
|
x, y, z 2x2 |
y 2 4z, |
f2 |
|||
f |
3 |
x, y, z 3x2 |
4y z 2 , |
|
|
|
|
исходя из начального приближения x0 y0 z0 0.5.
Полагая
0.5 x 0 0.5 ,
0.5
Имеем
|
f1 |
x, y, z |
|
||
f x |
|
f |
|
|
, |
|
2 |
x, y, z |
|||
|
|
|
|
||
|
|
f |
|
|
|
|
|
3 |
x, y, z |
|
|
|
|
|
|
||
|
|
x |
2 |
y |
2 |
z |
2 |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|||||
f x |
2x2 |
y 2 |
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 |
|
|||||||
Составим матрицу Якоби:
67