8510
.pdf
|
|
|
|
40 |
|
|
|
Обратный ход. |
Из |
последнего |
уравнения системы |
находим |
|||
x4 0,5. |
Подставляя |
значение |
x4 |
в |
третье уравнение, |
находим |
|
x3 (4,9 5,4x4 ) /( 4,4) |
0,5. |
Продолжая далее обратную подстановку, |
|||||
получаем |
x2 (1,5 3x3 4x4 ) /( 2) |
1, |
x1 |
(25 6x2 2x3) /10 2 . Итак, |
|||
x1 2, x2 |
1, x3 0,5, x4 0,5. |
|
|
|
|
4.1.2.Метод прогонки
Метод прогонки является одним из эффективных методов решения СЛАУ с трехдиагональными матрицами, возникающих при конечно-
разностной аппроксимации задач для обыкновенных дифференциальных уравнений (ОДУ) и уравнений в частных производных второго порядка, и
является частным случаем метода Гаусса.
Рассмотрим следующую СЛАУ:
a1 0 |
|
|
|
|
|
|
|
|
|
|
||
b1x1 c1x2 d1, |
|
|
|
|
|
|||||||
a |
2 |
x b x |
2 |
c |
2 |
x d |
2 |
, |
|
|||
|
1 |
2 |
|
|
3 |
|
|
|
||||
|
|
|
a3 x2 b3 x3 |
c3 x4 d3 , |
(4.14) |
|||||||
|
|
|
........................................... |
|
||||||||
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
an 1xn 2 bn 1xn 1 cn 1xn dn 1, |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
an xn 1 bn dn , |
cn 0, |
||
|
|
|
|
|
|
|
|
|
решение которой будем искать в виде:
xi Ai xi 1 Bi , i 1, n, (4.15)
где Ai , Bi , i 1, n , – прогоночные коэффициенты. Для их определения вы-
разим из первого уравнения СЛАУ (2.14) x1 через x2 . Получим:
x c1 |
x |
|
|
d1 |
|
A x |
|
B |
, |
(4.16) |
||
2 |
|
2 |
||||||||||
1 |
b1 |
|
|
1 |
1 |
|
|
|||||
|
|
|
|
b1 |
|
|
|
|
||||
откуда |
|
|
|
|
|
|
|
|
|
|
|
|
A c1 |
, |
|
B |
d1 |
. |
|
|
|
|
|||
|
|
|
|
|
|
|||||||
1 |
b1 |
|
|
1 |
|
|
b1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41
Из второго уравнения СЛАУ (4.14) с помощью (4.16) выразим x2
через x3
x |
|
|
|
|
c2 |
|
x |
d2 a2 B1 |
A x B , |
||||||
2 |
|
|
|
|
|
||||||||||
|
|
b2 |
a2 A1 |
3 |
|
|
2 |
3 |
2 |
||||||
|
|
|
|
|
|
b2 a2 A1 |
|
|
|||||||
откуда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
c2 |
|
, |
B |
d2 a2 B1 |
. |
|
|
||||||
|
|
|
|
|
|
|
|||||||||
|
2 |
|
|
b2 a2 A1 |
|
|
2 |
b2 a2 A1 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
Продолжая этот процесс, получим из i-го уравнения СЛАУ (2.14):
|
|
|
|
x |
|
ci |
|
|
|
x |
|
|
|
di ai Bi 1 |
. |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
i |
bi ai Ai 1 |
|
i 1 |
|
|
|
bi ai Ai 1 |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Следовательно, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
ci |
|
|
, B |
di ai Bi 1 |
. |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
i |
bi ai Ai 1 |
|
|
|
i |
|
|
|
bi ai Ai 1 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Из последнего уравнения СЛАУ имеем: |
|
|
|
|
|
||||||||||||||||||||
x |
|
|
|
cn |
|
|
x |
n 1 |
|
dn an Bn 1 |
0 x |
n 1 |
B , |
||||||||||||
n |
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
bn an An 1 |
|
|
|
bn an An 1 |
|
|
n |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
т.е. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A 0 (т.к. с |
|
|
0), |
|
B |
|
|
dn an Bn 1 |
|
x |
|
. |
|||||||||||
|
|
т |
|
n |
|
|
n |
||||||||||||||||||
|
|
|
n |
|
|
|
|
|
|
|
|
bn an An 1 |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Таким образом, прямой ход метода прогонки по определению про- |
|
|
|
|
|
|
|
|
|
||||||||||||
гоночных коэффициентов Ai , Bi , |
i |
1, n |
завершен. Прогоночные коэффи- |
|||||||||||||||||
циенты вычисляются по следующим формулам: |
|
|
|
|
|
|||||||||||||||
|
|
ci |
|
|
|
|
|
di ai Bi 1 |
|
|
|
|
|
|
||||||
A |
|
|
, |
B |
, |
i |
2, n 1; |
(4.17) |
||||||||||||
|
|
|
|
|
||||||||||||||||
i |
bi |
ai Ai 1 |
|
|
i |
|
|
bi ai Ai 1 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
A c1 , B |
|
d1 |
, так как a |
0, i 1; |
(4.18) |
|||||||||||||||
|
||||||||||||||||||||
1 |
|
b1 |
|
1 |
|
b1 |
|
|
1 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
A 0 (т.к. с |
|
0), |
|
B |
|
|
|
dn an Bn 1 |
, |
i n. |
(4.19) |
|||||||||
т |
|
n |
|
|||||||||||||||||
n |
|
|
|
|
|
|
|
|
|
|
bn an An 1 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42
Обратный ход метода прогонки осуществляется в соответствии с выражением (4.15):
xn An xn 1 Bn 0 xn 1 Bn Bn , |
|
||||||||||
x |
n 1 |
A |
1 |
x |
n |
B |
n 1 |
, |
|
||
|
|
n |
|
|
|
|
|||||
|
|
|
An 2 xn 1 Bn 2 , |
|
|||||||
xn 2 |
(4.20) |
||||||||||
................................................... |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
A x |
2 |
B . |
|
|
|
||||
1 |
|
1 |
|
|
|
1 |
|
|
|
Формулы (4.17)–(4.20) – формулы правой прогонки.
Аналогично, начиная с последнего уравнения СЛАУ (4.14) выво-
дятся формулы левой прогонки.
Общее число операций в методе прогонки равно 8n 1, т.е. пропор-
ционально числу уравнений. Такие методы решения СЛАУ называют эко-
номичными.
Для устойчивости метода прогонки (4.17)–(4.20) достаточно выпол-
нения следующих условий:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bi |
|
ai |
|
ci |
, i |
1, n |
, |
ai 0, |
i |
2, n |
, |
ci 0, |
i |
1, n 1, |
(4.21) |
причем строгое неравенство имеет место хотя бы при одном i. Устойчи-
вость понимается в смысле накопления погрешности вектора неизвестных оператором прогонки при малых погрешностях входных данных (правых частей и элементов матрицы СЛАУ).
Обоснование метода прогонки
Метод прогонки содержит операцию деления и, следовательно,
возможно накопление ошибок при увеличении числа уравнений в СЛАУ
(4.14). Поэтому необходимо гарантировать корректность, т.е. выполнение условия:
|
|
|
|
bi ai Ai 1 0, |
i |
1, n |
(4.22) |
43
и устойчивость, т.е. ненакопление ошибок при увеличении числа уравне-
ний СЛАУ (4.14).Пусть прогоночные коэффициенты Ai , Bi , |
i |
1, n |
вы- |
|||
числены точно, а при вычислении xn допущена ошибка n : |
xˆn xn n . |
|||||
Тогда из (4.20) получим следующие равенства: |
|
|
|
|||
xˆi |
Ai xˆi 1 |
Bi , |
i n 1,...,1, |
|
|
|
xi |
Ai xi 1 |
Bi , |
i n 1,...,1. |
|
|
|
Вычитая из первого равенства второе, получим:
i Ai i 1, |
i n 1,...,1, |
т.е. если выполняются условия: |
|
|
Ai 1, |
i 1, n, |
(4.23) |
то алгоритм метода прогонки не накапливает ошибок и является устойчи-
вым.
Для корректности и устойчивости метода прогонки, т.е. для реали-
зации неравенств (4.22), (4.23), существует следующая лемма.
Лемма (достаточное условие корректности и устойчивости метода прогонки):
Пусть коэффициенты СЛАУ (4.14) удовлетворяют условиям:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
ai |
0, |
|
|
|
bi |
0, |
|
|
ci |
0, |
i |
1, n |
, |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
bi |
|
ai |
|
ci |
, |
|
i |
2, n 1, |
(4.24) |
||||||||||||||||||||
|
|
|
b1 |
|
|
|
c1 |
|
, |
|
bn |
|
|
|
an |
|
, |
(4.25) |
||||||||||||
|
|
|
|
|
|
|
|
|
|
причем хотя бы в одном из неравенств (4.24) или(4.25) выполняется стро-
гое неравенство, т.е. матрица СЛАУ (4.14) имеет диагональное преоблада-
ние. Тогда имеют место неравенства (4.22) и (4.23), гарантирующие кор-
ректность и устойчивость метода прогонки.
44
4.2.Итерационные методы решения систем линейных алгебраических уравнений.
4.2.1.Метод простой итерации (метод Якоби)
Для того чтобы применить метод простой итерации к решению сис-
темы линейных алгебраических уравнений
Ax b |
(4.26) |
с квадратной невырожденной матрицей A , |
необходимо предварительно |
преобразовать эту систему к виду |
|
x Bx c . |
(4.27) |
Здесь B – квадратная матрица с элементами bij (i, j 1,2,...,m) , с – вектор-столбец с элементами ci (i 1,2,...,m) .
В развернутой форме записи система (4.15) имеет следующий вид:
x1 b11 x1 b12 x2 b13 x3 ... |
b1m xm c1 , |
|
|
x2 b21 x1 b22 x2 b23 x3 ... |
b2m xm c2 |
, |
(4.28) |
.......................................................... |
|
||
|
|
||
xm bm1 x1 bm2 x2 bm3 x3 |
... bmm xm cm . |
|
Вообще говоря, операция приведения системы к виду, удобному для итерации [т.е. к виду (4.27)], не является простой и требует специаль-
ных знаний, а также существенного использования специфики системы. В
некоторых случаях в таком преобразовании нет необходимости, так как сама исходная система уже имеет вид (4.27).
Самый простой способ приведения системы к виду, удобному для итерации, состоит в следующем. Из первого уравнения системы (4.26) вы-
разим неизвестное x1 :
x1 a111 (b1 a12 x2 a13 x3 ... a1m xm ),
из второго уравнения – неизвестное x2 :
x2 a221 (b2 a21x1 a23 x3 ... a2m xm ),
45
и т.д. В результате получим систему:
x1 |
b12 x2 b13 x3 ... |
b1,m 1 xm 1 b1m xm |
||
x2 b21 x1 |
b23 x3 ... |
b2,m 1xm 1 b2m xm |
||
x3 b31 x1 b32 x2 |
... |
b3,m 1 xm 1 b3m xm |
||
.......................................................... |
||||
xm bm1 x1 bm2 x2 bm3 x3 ... |
bm,m 1xm 1 |
c1,
c2 ,
c3 , (4.29)
cm ,
в которой на главной диагонали матрицы B находятся нулевые элементы.
Остальные элементы выражаются по формулам:
bij aij / aii , ci bi / aii (i, j 1,2,...,m, j i) . |
(4.30) |
Конечно, для возможности выполнения указанного преобразования
необходимо, чтобы диагональные элементы матрицы A были ненулевыми.
Часто систему (4.26) преобразуют к виду: x x (Ax b) , где –
специально выбираемый числовой параметр.
Выберем начальное приближение x(0) (x1(0) , x2(0) ,...,xm(0) ) . Под-
ставляя его в правую часть системы (4.27) и вычисляя полученное выраже-
ние, находим первое приближение:
|
|
|
|
|
|
x(1) Bx(0) |
c . |
|
|
|
|
|
|
|
|
|
|
|
||||||||
Продолжая |
этот |
процесс |
|
|
далее, |
|
|
получим |
последовательность |
|||||||||||||||||
x(0) , x(1) ,...,x(n) ,... приближений, вычисляемых по формуле: |
|
|
|
|
|
|
||||||||||||||||||||
|
x(k 1) |
Bx(k) |
c, k 0,1,2,... . |
|
|
|
|
|
|
|
|
|
|
(4.31) |
||||||||||||
В развернутой форме записи формула (4.27) выглядит так: |
|
|
|
|
||||||||||||||||||||||
x (k 1) |
b |
|
x(k ) b |
|
|
x(k ) b |
|
|
x(k ) ... b |
|
|
x(k ) c , |
|
|
|
|||||||||||
1 |
11 |
1 |
12 |
|
|
2 |
13 |
|
3 |
1m |
|
m |
|
1 |
|
|
|
|
||||||||
x (k 1) |
b |
|
x(k ) b |
|
|
|
x (k ) b |
|
|
|
x(k ) ... b |
|
|
|
x (k ) |
c |
|
, |
(4.32) |
|||||||
2 |
|
21 1 |
|
22 |
|
2 |
23 |
|
3 |
|
2m |
m |
|
2 |
|
|
||||||||||
......................................................................... |
|
|
|
|
|
|||||||||||||||||||||
x (k 1) |
b |
|
x(k ) b |
m2 |
x (k ) b |
m3 |
x(k ) ... b |
m m |
x(k ) c |
m |
. |
|||||||||||||||
m |
|
m1 1 |
|
|
|
2 |
|
3 |
|
|
m |
|
|
|
|
46
В случае, когда для итераций используется система (4.29) с коэф-
фициентами, вычисленными по формулам (4.30), метод простой итерации принято называть методом Якоби.
Сходимость метода простой итерации.
Теорема. Пусть выполнено условие
B |
|
|
|
1. |
(4.33) |
|
|
||||
|
|
|
|
|
|
Тогда:
решение x системы (4.27) существует и единственно;
при произвольном начальном приближении x (0) метод про-
стой итерации сходится и справедлива оценка погрешности
x(n) x |
|
|
|
|
|
B |
|
|
|
n |
|
x(0) x |
|
. |
(4.34) |
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Апостериорная оценка погрешности
Если выполнено условие (4.33), то справедлива апостериорная
оценка погрешности:
x(n) x |
|
|
|
|
B |
|
|
|
|
|
|
|
|
x(n) x(n 1) |
|
|
|
(4.35) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
||||||||||||
|
|
1 |
|
B |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если требуется найти решение с точностью , то в силу (4.35) сле-
дует вести итерации до выполнения неравенства:
|
B |
|
|
|
|
|
|
|
x(n) x(n 1) |
|
. |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||
1 |
|
B |
|
|
|
|
||||||
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Таким образом, в качестве критерия окончания итерационного про-
цесса может быть использовано неравенство:
x(n) x(n 1) |
|
|
1 |
, |
1 |
|
1 |
|
|
|
B |
|
|
|
|
. |
(4.36) |
||
|
|
|
|
|
|
||||||||||||||
|
|
|
|||||||||||||||||
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
B |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пример. Методом простой итерации (Якоби) найти решение сле-
дующей системы. В качестве критерия останова будем использовать усло-
вие удовлетворения найденного решения исходной системе:
|
|
47 |
|
6,25x1 |
x2 |
0,5x3 |
7,5, |
x1 |
5x2 |
2,12x3 8,68, |
|
0,5x1 |
2,12x2 |
3,6x3 |
- 0,24. |
Решение.
Для того чтобы применить метод простой итерации к решению сис-
темы линейных алгебраических уравнений с квадратной матрицей необхо-
димо сначала преобразовать эту систему к виду, удобному для итераций.
Самый легкий способ состоит в следующем.
Из первого уравнения системы выразим неизвестное x1 :
x1 6,251 (7,5 x2 0,5x3 7,5) ,
из второго уравнения – неизвестное x2 :
x2 15 (x1 2,12x3 8,68) ,
и из третьего – неизвестное x3 :
x3 31,6 ( 0,5x1 2,12x2 0,24) .
Вычисляя коэффициенты, приведем систему к виду:
x1 0,16x2 0,08x3 1,2, x2 0,2x1 0,424x3 1,736,
x3 0,1389x1 0,5889x2 0,24.
В последнем уравнении коэффициенты даны с точностью до по-
грешности округления. Выберем начальное приближение:
x1(0) 0, x2(0) 0, x3(0) 0.
Подставляя его в правую часть системы и вычисляя полученное вы-
ражение, находим первое приближение:
48
x1(1) 1,2,
x2(1) 1,736, x3(1) 0,24.
Подставляя найденные неизвестные в исходную систему, убедимся,
что они не являются корнями данных уравнений. Действительно, 6,25 1,2 1,736 0,5 0,24 9,116 7,5,1,2 5 1,736 2,12 0,24 10,3888 8.68,
0,5 1,2 2,12 1,736 3,6 0,24 3,944 0,24.
Подставляя приближение x(1) в правую часть преобразованной сис-
темы, получаем x(2) :
x1(2) 0,9276, x2(2) 1,4677, x3(2) 0,0667.
Подставляя найденные неизвестные в исходную систему, убедимся,
что они не являются корнями:
6,25 0,9276 1,4677 0,5 0,0667 7,4411 7,5,0,9276 5 1,4677 2,12 0,0667 8,4075 8.68,
0,5 0,9276 2,12 1,4677 3,6 0,0667 2,8878 0,24.
Таким образом, продолжая этот процесс далее, получим последова-
тельность x(0) , x(1) ,...,x(n) приближений, вычисляемых по формулам:
x(k 1) |
0,16x(k ) |
0,08x(k ) 1,2, |
|
1 |
2 |
|
3 |
x(k 1) |
0,2x(k ) 0,424x(k ) 1,2, |
||
2 |
1 |
|
3 |
x(k 1) |
0,1389x(k ) 0,5889x(k ) 0,0667. |
||
3 |
|
1 |
2 |
Итак, если мы приняли за начальное приближение вектор
x1(0) 0, x2(0) 0, x3(0) 0
49
и будем вести итерации по формулам, представленным выше, до выполне-
ния равенств в исходной системе, то в данном примере эти равенства будут выполнены на пятнадцатой итерации и значения корней будут следующие:
x1 0,8, x2 2, x3 1.
Найденное решение совпадает с точным.
Пример.
Используя метод простой итерации, найти решение системы:
10x1 x2 |
x3 12, |
|
|
10x |
2 x3 13, |
2x1 |
||
|
2x2 |
10x3 14 |
2x1 |
||
|
|
|
с точностью 10 2 .
Решение.
Приведем систему к эквивалентному виду:
x |
|
1,2 0,1x |
0,1x |
3 |
, |
|
1 |
2 |
|
|
|
||
x2 |
1,3 0,2x1 0,1x3 |
, |
||||
x |
3 |
1,4 0,2x |
0,2x |
|
|
|
|
1 |
|
2 |
|
или
x c Bx ,
|
0 |
0,1 |
0,1 |
|
|
|
|
|
|
0,2 |
|
|
c (1,2 1,3 1,4)T ; |
|
|
0,4 1 |
|
где B |
0 |
0,1 ; |
B |
1 |
, следователь- |
|||
|
0,2 |
0,2 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
0 |
|
|
|
|
|
но, достаточное условие сходимости метода простых итераций выполнено.
Итерационный процесс выглядит следующим образом:
x(0) |
c; x(1) |
c Bc (0,93 |
0,92 0,9)T ; (1) 0,333 ; |
||
x(2) |
c Bx(1) |
|
(1,018 |
1,024 |
1,03)T ; (2) 0,0867 ; |
x(3) |
c Bx(2) |
(0,9946 |
0,9934 0,9916)T ; (3) 0,0256 ; |