Решение систем нелинейных уравнений

advertisement
www.uchites.ru
2.2. Решение систем нелинейных уравнений
Систему нелинейных уравнений с n неизвестными можно записать в виде
⎧ f 1 ( x1 , x 2 ,..., x n ) = 0
⎪ f ( x , x ,..., x ) = 0
⎪ 2 1 2
n
⎨
⎪ ............................
⎪⎩ f n ( x1 , x 2 ,..., x n ) = 0
(2.10)
или, более коротко, в векторной форме
f ( x) = 0 ,
(2.11)
где x - вектор неизвестных величин, f - вектор-функция
⎛ x1 ⎞
⎜ ⎟
⎜x ⎟
x = ⎜ 2 ⎟,
...
⎜ ⎟
⎜x ⎟
⎝ n⎠
⎛
⎜
⎜
f =⎜
⎜
⎜
⎝
f 1 ( x) ⎞
⎟
f 2 ( x) ⎟
,
... ⎟
⎟
f n (x) ⎟⎠
⎛0⎞
⎜ ⎟
⎜0⎟
0 = ⎜ ⎟.
...
⎜ ⎟
⎜0⎟
⎝ ⎠
В редких случаях для решения такой системы удается применить метод
последовательного исключения неизвестных и свести решение исходной задачи к
решению одного нелинейного уравнения с одним неизвестным. Значения других
неизвестных величин находятся соответствующей подстановкой в конкретные
выражения. Однако в подавляющем большинстве случаев для решения систем
нелинейных уравнений используются итерационные методы.
В дальнейшем предполагается, что ищется изолированное решение
нелинейной системы.
Как и в случае одного нелинейного уравнения, локализация решения может
осуществляться на основе специфической информации по конкретной решаемой
задаче (например, по физическим соображениям), и - с помощью методов
математического анализа. При решении системы двух уравнений, достаточно
часто удобным является графический способ, когда месторасположение корней
определяется
как
точки
пересечения
кривых f1 ( x1 , x2 ) = 0 ,
f 2 ( x1 , x 2 ) = 0
на
плоскости ( x1 , x 2 ) .
1
www.uchites.ru
Метод Ньютона.
Если
определено
начальное
приближение
x ( 0 ) = ( x1( 0 ) , x 2( 0 ) ,..., x n( 0 ) ) T , итерационный процесс нахождения решения системы
(2.10) методом Ньютона можно представить в виде
⎧ x1( k +1) = x1( k ) + ∆x1( k )
⎪ ( k +1)
= x 2( k ) + ∆x 2( k )
⎪ x2
⎨
⎪ .....................
⎪⎩ x n( k +1) = x n( k ) + ∆x n( k )
k = 0,1, 2, ...
(2.12)
где значения приращений ∆x1( k ) , ∆x 2( k ) ,…, ∆x n(k ) определяются из решения системы
линейных алгебраических уравнений, все коэффициенты которой выражаются
через известное предыдущее приближение x ( k ) = ( x1( k ) , x 2( k ) ,..., x n( k ) )
⎧
∂f1 (x ( k ) ) ( k )
(k )
(
)
+
x
∆x1
f
⎪ 1
∂
x
1
⎪
∂f (x ( k ) ) ( k )
⎪⎪
∆x1
f 2 (x ( k ) ) + 2
⎨
∂x1
⎪
⎪
(k )
⎪ f n (x ( k ) ) + ∂f n (x ) ∆x1( k )
∂x1
⎩⎪
∂f1 (x ( k ) ) ( k )
∂f (x ( k ) ) ( k )
∆x 2 + ... + 1
∆x n = 0
∂x 2
∂x n
∂f (x ( k ) ) ( k )
∂f (x ( k ) ) ( k )
+ 2
∆x 2 + ... + 2
∆x n = 0
∂x 2
∂x n
.....................
∂f (x ( k ) ) ( k )
∂f (x ( k ) ) ( k )
+ n
∆x 2 + ... + n
∆x n = 0
∂x 2
∂x n
+
(2.13)
В векторно-матричной форме расчетные формулы имеют вид
x ( k +1) = x ( k ) + ∆x ( k )
где вектор приращений ∆x ( k )
k = 0,1, 2, ...
(2.14)
⎛ ∆x1( k ) ⎞
⎜ (k ) ⎟
⎜ ∆x ⎟
= ⎜ 2 ⎟ находится из решения уравнения
⎜ ... ⎟
⎜ ∆x ( k ) ⎟
⎝ n ⎠
f (x ( k ) ) + J (x ( k ) )∆x ( k ) = 0
(2.15)
2
www.uchites.ru
⎡ ∂f1 (x) ∂f 1 (x) ∂f1 (x) ⎤
...
⎢ ∂x
∂x 2
∂x n ⎥
1
⎢
⎥
⎢ ∂f 2 (x) ∂f 2 (x) ... ∂f 2 (x) ⎥
Здесь J (x) = ⎢ ∂x1
∂x 2
∂x n ⎥ - матрица Якоби первых производных
⎢
⎥
.....................
⎢ ∂f (x) ∂f (x) ∂f (x) ⎥
n
⎢ n
... n ⎥
∂
∂
∂x n ⎦⎥
x
x
1
2
⎣⎢
вектор-функции f ( x) .
Выражая из (2.15) вектор приращений ∆x (k ) и подставляя его в (2.14),
итерационный процесс нахождения решения можно записать в виде
x ( k +1) = x ( k ) − J −1 (x ( k ) )f (x ( k ) )
k = 0,1, 2, ...
(2.16)
где J −1 (x) - матрица, обратная матрице Якоби. Формула (2.16) есть обобщение
формулы (2.2) на случай систем нелинейных уравнений.
При реализации алгоритма метода Ньютона в большинстве случаев
предпочтительным является не вычисление обратной матрицы J −1 (x ( k ) ) , а
нахождение из системы (2.13) значений приращений ∆x1( k ) , ∆x 2( k ) ,…, ∆x n(k ) и
вычисление нового приближения по (2.12). Для решения таких линейных систем
можно привлекать самые разные методы, как прямые, так и итерационные (см.
раздел 1.1), с учетом размерности n решаемой задачи и специфики матриц Якоби
J ( x) (например, симметрии, разреженности и т.п.).
Использование
метода
Ньютона
предполагает
дифференцируемость
функций f1 (x) , f 2 (x) ,…, f n (x) и невырожденность матрицы Якоби ( det J (x ( k ) ) ≠ 0 ).
В случае, если начальное приближение выбрано в достаточно малой окрестности
искомого корня, итерации сходятся к точному решению, причем сходимость
квадратичная.
В практических вычислениях в качестве условия окончания итераций
обычно используется критерий [3,5]
x ( k +1) − x ( k ) ≤ ε ,
(2.17)
где ε - заданная точность.
Пример 2.2. Методом Ньютона найти положительное решение системы
нелинейных уравнений
3
www.uchites.ru
⎧ f1 ( x1 , x 2 ) = 0.1x12 + x1 + 0.2 x 22 − 0.3 = 0
⎨
2
⎩ f 2 ( x1 , x 2 ) = 0.2 x1 + x 2 − 0.1x1 x 2 − 0.7 = 0
(2.18)
с точностью ε = 10 −4 .
Решение. Для выбора начального приближения применяем графический
способ. Построив на плоскости ( x1 , x 2 ) в интересующей нас области кривые
f1 ( x1 , x2 ) = 0 и f 2 ( x1 , x 2 ) = 0 (рис. 2.2), определяем, что положительное решение
системы уравнений находится в квадрате 0 < x1 < 0.5 , 0.5 < x2 < 1.0 .
Рис. 2.2
За начальное приближение примем x1( 0 ) = 0.25 , x 2( 0) = 0.75 .
Для системы двух уравнений расчетные формулы (2.12), (2.13) удобно
записать в виде разрешенном относительно x1( k +1) , x 2( k +1)
⎧ ( k +1)
det A 1( k )
(k )
=
−
x
x
⎪⎪ 1
1
det J ( k )
⎨
(k )
⎪ x 2( k +1) = x 2( k ) − det A 2
⎪⎩
det J ( k )
где
J (k )
⎡ ∂f 1 ( x1( k ) , x 2( k ) )
⎢
∂x1
=⎢
(k )
(k )
⎢ ∂f 2 ( x1 , x 2 )
⎢
∂x1
⎣
k = 0,1, 2, ...
(2.19)
∂f1 ( x1( k ) , x 2( k ) ) ⎤
⎥
∂x 2
⎥,
∂f 2 ( x1( k ) , x 2( k ) ) ⎥
⎥
∂x 2
⎦
4
www.uchites.ru
A 1( k )
⎡
(k )
(k )
⎢ f 1 ( x1 , x 2 )
=⎢
⎢
(k )
(k )
⎢ f 2 ( x1 , x 2 )
⎣
∂f1 ( x1( k ) , x 2( k ) ) ⎤
⎥
∂x 2
⎥,
∂f 2 ( x1( k ) , x 2( k ) ) ⎥
⎥
∂x 2
⎦
A (2k )
⎡ ∂f1 ( x1( k ) , x 2( k ) )
⎢
∂x1
=⎢
(k )
(k )
⎢ ∂f 2 ( x1 , x 2 )
⎢
∂x1
⎣
⎤
f1 ( x1( k ) , x 2( k ) ) ⎥
⎥.
⎥
f 2 ( x1( k ) , x 2( k ) )⎥
⎦
В рассматриваемом примере:
f1 ( x1( k ) , x 2( k ) ) = 0.1x1( k ) 2 + x1( k ) + 0.2 x 2( k ) 2 − 0.3
f 2 ( x1( k ) , x 2( k ) ) = 0.2 x1( k ) 2 + x 2( k ) − 0.1x1( k ) x 2( k ) − 0.7
∂f 1 ( x1( k ) , x 2( k ) )
= 0.2 x1( k ) + 1 ,
∂x1
∂f 1 ( x1( k ) , x 2( k ) )
= 0.4 x 2( k )
∂x 2
∂f 2 ( x1( k ) , x 2( k ) )
= 0.4 x1( k ) − 0.1x 2( k ) ,
∂x1
∂f 2 ( x1( k ) , x 2( k ) )
= 1 − 0.1x1( k ) .
∂x1
Подставляя в правые части соотношений (2.19) выбранные значения
x1( 0) , x 2( 0) , получим приближение x1(1) , x 2(1) , используемое, в свою очередь, для
нахождения x1( 2) , x 2( 2 ) . Итерации продолжаются до выполнения условия (2.17), где
x ( k +1) − x ( k ) = max xi( k +1) − xi( k ) .
i
Результаты вычислений содержатся в таблице 2.4.
Таблица 2.4
k
(k )
1
(k )
2
x
x
f1 ( x1( k ) , x 2( k ) )
f 2 ( x1( k ) , x 2( k ) )
0 0.25000
0.06875
0.75000
0.04375
1 0.19498
-0.00138
0.70654
0.00037
2 0.19646
0.00005
0.70615
0.00000
3 0.19641
0.70615
(∗)
x1 ≈ 0.1964, x 2(∗) ≈ 0.7062 .
∂f1 ( x1( k ) , x 2( k ) )
∂x1
∂f1 ( x1( k ) , x 2( k ) )
∂x 2
∂f 2 ( x1( k ) , x 2( k ) )
∂x1
1.01250
0.02500
1.00760
0.00734
1.00772
0.00797
∂f 2 ( x1( k ) , x 2( k ) )
∂x 2
0.30000
0.97500
0.28262
0.98050
0.28246
0.98035
det A1( k )
det A (2k )
det J ( k )
0.05391
0.04258
0.97969
0.00038 0.98588
0.00146
0.00005 0.00000 0.98567
Метод простой итерации. При использовании метода простой итерации
система уравнений (2.10) приводится к эквивалентной системе специального вида
5
www.uchites.ru
⎧ x1 = ϕ 1 ( x1 , x 2 ,..., x n )
⎪ x = ϕ ( x , x ,..., x )
⎪ 2
2
1
2
n
⎨
⎪ ............................
⎪⎩ x n = ϕ n ( x1 , x 2 ,..., x n )
(2.20)
⎛ ϕ 1 ( x) ⎞
⎜
⎟
⎜ ϕ 2 ( x) ⎟
ϕ( x ) = ⎜
... ⎟
⎜
⎟
⎜ ϕ ( x) ⎟
⎝ n ⎠
(2.21)
или, в векторной форме
x = ϕ( x) ,
где функции ϕ1 (x) , ϕ 2 (x) , …, ϕ n (x) - определены и непрерывны в некоторой
окрестности искомого изолированного решения
x (∗) = ( x1(∗) , x 2(∗) ,..., x n(∗) ) T .
Если выбрано некоторое начальное приближение x ( 0 ) = ( x1( 0 ) , x 2( 0 ) ,..., x n( 0 ) ) T ,
последующие приближения в методе простой итерации находятся по формулам
⎧ x1( k +1) = ϕ 1 ( x1( k ) , x 2( k ) ,..., x n( k ) )
⎪ ( k +1)
= ϕ 2 ( x1( k ) , x 2( k ) ,..., x n( k ) )
⎪ x2
⎨
............................
⎪
(
k
+
1
)
⎪⎩ x n
= ϕ n ( x1( k ) , x 2( k ) ,..., x n( k ) )
k = 0,1, 2, ...
(2.22)
или, в векторной форме
x ( k +1) = ϕ(x ( k ) ) , k = 0,1, 2, ...
Если последовательность векторов
x ( k ) = ( x1( k ) , x 2( k ) ,..., x n( k ) ) T
(2.23)
сходится, то она
сходится к решению x (∗) = ( x1(∗) , x 2(∗) ,..., x n(∗) ) T .
Достаточное условие сходимости итерационного процесса (2.22) формулируется
следующим образом [2]:
Теорема 2.4.
Пусть вектор-функция ϕ(x) непрерывна, вместе со своей
производной
⎡ ∂ϕ 1 (x) ∂ϕ1 (x) ∂ϕ1 (x) ⎤
...
⎢ ∂x
∂x 2
∂x n ⎥
1
⎢
⎥
⎢ ∂ϕ 2 (x) ∂ϕ 2 (x) ... ∂ϕ 2 (x) ⎥
ϕ′(x) = ⎢ ∂x1
∂x 2
∂x n ⎥ ,
⎢
⎥
.....................
⎢ ∂ϕ (x) ∂ϕ (x) ∂ϕ (x) ⎥
n
⎢ n
... n ⎥
∂x 2
∂x n ⎦⎥
⎣⎢ ∂x1
6
www.uchites.ru
в ограниченной выпуклой замкнутой области G и
max ϕ′(x) ≤ q < 1 ,
(2.24)
x∈G
где q - постоянная. Если x ( 0 ) ∈ G и все последовательные приближения
x ( k +1) = ϕ(x ( k ) ) , k = 0,1, 2, ...
также содержатся в G , то процесс итерации (2.22) сходится к единственному
решению уравнения
x = ϕ( x)
в области G и справедливы оценки погрешности (∀k ∈ N ) :
x
( ∗)
−x
( k +1)
q k +1 (1)
≤
x − x ( 0) ,
1− q
x (∗) − x ( k +1) ≤
q
x ( k +1) − x ( k )
1− q
(2.25)
Пример 2.2. (продолжение). Найти положительное решение системы (2.18)
методом простой итерации с точностью ε = 10 −4 .
Преобразуем исходную систему уравнений (2.18) к виду
⎧ x1 = 0.3 − 0.1x12 − 0.2 x 22 ≡ ϕ1 ( x1 , x 2 )
⎨
2
⎩ x 2 = 0.7 − 0.2 x1 + 0.1x1 x 2 ≡ ϕ 2 ( x1 , x 2 )
Проверим выполнение условия (2.24) в области
G:
x1 − 0.25 ≤ 0.25 ,
x2 − 0.75 ≤ 0.25 . Для этого найдем
n
⎧⎪
∂ϕ i ( x1 , x 2 ) ⎫⎪
max ϕ′(x) = max ⎨max ∑
⎬
x∈G
x∈G
∂x j
⎪⎩ (i ) j =1
⎪⎭
Так как
∂ϕ1 ( x1 , x 2 )
= −0.2 x1 ,
∂x1
∂ϕ1 ( x1 , x 2 )
= −0.4 x 2 ,
∂x 2
∂ϕ 2 ( x1 , x 2 )
= −0.4 x1 + 0.1x 2 ,
∂x1
∂ϕ 2 ( x1 , x 2 )
= 0.1x1 ,
∂x 2
(2.26)
то в области G имеем
∂ϕ1 ( x1 , x 2 ) ∂ϕ1 ( x1 , x 2 )
+
= − 0.2 x1 + − 0.4 x 2 ≤ 0.5
∂x1
∂x 2
7
www.uchites.ru
∂ϕ 2 ( x1 , x 2 ) ∂ϕ 2 ( x1 , x 2 )
+
= − 0.4 x1 + 0.1x 2 + 0.1x1 ≤ 0.2
∂x1
∂x 2
max ϕ′(x) ≤ 0.5 = q < 1 .
x∈G
Следовательно, если последовательные приближения ( x1( k ) , x 2( k ) ) не покинут
области G (что легко обнаружить в процессе вычислений), то итерационный
процесс будет сходящимся.
В
качестве
начального
приближения
примем
x1( 0 ) = 0.25 , x 2( 0) = 0.75 .
Последующие приближения определяем как
⎧ x1( k +1) = ϕ1 ( x1( k ) , x 2( k ) )
⎨ ( k +1)
(k )
(k )
⎩ x 2 = ϕ 2 ( x1 , x 2 )
где
k = 0,1, 2, ...
ϕ1 ( x1( k ) , x 2( k ) ) = 0.3 − 0.1x1( k ) 2 − 0.2 x 2( k ) 2 ,
ϕ 2 ( x1( k ) , x 2( k ) ) = 0.7 − 0.2 x1( k ) 2 + 0.1x1( k ) x 2( k )
В соответствии с (2.25), вычисления завершаются при выполнении условия
q
x ( k +1) − x ( k ) ≤ ε ,
1− q
x ( k +1) − x ( k ) = max xi( k +1) − xi( k ) .
где
i
Результаты вычислений содержатся в таблице 2.5
Таблица 2.5
k
0
1
2
3
4
x1(∗)
x1( k )
x 2( k )
0.25000
0.75000
0.18125
0.70702
0.19674
0.70617
0.19639
0.70615
0.19641
0.70615
≈ 0.1964, x 2(∗) ≈ 0.7062 .
ϕ1 ( x1( k ) , x 2( k ) )
ϕ 2 ( x1( k ) , x 2( k ) )
0.18125
0.70702
0.19674
0.70617
0.19639
0.70615
0.19641
0.70615
8
www.uchites.ru
Замечание. В случае, когда при анализе сходимости конкретной итерационной
схемы проверка условия (2.26) является затруднительной, можно определить
норму «мажорирующей матрицы» [5,6] M ( x) с элементами mij (x) = max
x∈G
∂ϕ i (x)
,
∂x j
так что max ϕ′(x) ≤ M(x) . Если Μ (x) ≤ q < 1 , то последовательные приближения
x∈G
сходятся к решению x (∗) .
Найдите больше информации на сайте Учитесь.ру (www.uchites.ru)!
9
Download