ЛАБОРАТОРНАЯ РАБОТА №7 Итерационные методы решения систем линейных алгебраических уравнений
1. Общие сведения
Метод простой итерации для системы линейных алгебраиче-
ских уравнений (СЛАУ). Метод Гаусса успешно применяется при численном решении СЛАУ. Однако при значительных размерах системы требуется выполнение большого числа арифметических операций, что приводит к накоплению ошибок округления и погрешность результата может чрезмерно возрастать. В связи с этим целесообразно применение итерационных методов решения СЛАУ, которые могут оказаться менее трудоемкими и обладают свойством самостоятельно корректировать возникающие погрешности решения независимо от их источников.
Система ЛАУ из m уравнений с m неизвестными имеет вид (7.1)
a11 x1 |
a12 x2 |
... a1m xm |
f1 |
|
|
|||||||
a21 x1 |
a22 x2 |
... a2m xm |
f2 |
, |
(7.1) |
|||||||
|
|
|
|
|
|
... |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
m1 |
x |
a |
m 2 |
x |
... a |
mm |
x |
f |
m |
|
|
|
1 |
|
2 |
|
m |
|
|
|
||||
где xi – неизвестные, aij — известные коэффициенты, fi — правые части уравнений, i, j = 1,2, …, m. В матричной форме ее можно записать (7.2):
Ax = f, |
(7.2) |
где A — матрица коэффициентов, x — столбец неизвестных и f — столбец свободных членов, т. е.
77
a11 a12 |
... a1m |
x1 |
|
|
f1 |
|
|||||
a21 |
a22 |
... a2m |
x2 |
|
|
f2 |
|
||||
A |
|
|
... |
|
, x |
|
, f |
... |
. |
||
|
|
a |
|
... |
|
|
|||||
a |
m1 |
m 2 |
... a |
|
x |
|
|
f |
|
|
|
|
|
|
mm |
m |
|
|
m |
||||
Для применения метода простой итерации следует каким-либо образом привести систему (7.1) к виду (7.3).
x = Cx + b, |
(7.3) |
где C – некоторая матрица, а b — вектор-столбец. Тогда, исходя из произвольного вектора x(0) (7.4)
x1(0)
x(0) x2(0) , (7.4)
...xm(0)
можно построить итерационный процесс на основе рекуррентной формулы (7.5).
x(k 1) Cx(k ) b, (k = 0, 1, 2, …). |
(7.5) |
В развернутой форме рекуррентное соотношение (7.5) можно переписать в виде системы соотношений (7.6). Каждое из которых, позволяет вычислить очередное приближенное значение корней уравнения по ранее найденным их значениям. Процедура итераций начинается с нулевого приближения (7.4), которое подставляется в правые части рекуррентных формул. Затем вычисляется первое приближение x(1) и т. д.
x1(k 1) c11 x1(k ) x2(k 1) c21 x1(k )
xm(k 1) cm1 x1(k )
c12 x2(k )
c22 x2(k )
...
cm2 x2(k )
... c1m xm(k )
... c2m xm(k )
... cmm xm(k )
b1
b2 , (k = 0, 1, 2, …). (7.6)
bm
78
Данная итерационная схема называется методом простой итерации.
Сходимость метода. Важным свойством итерационных методов является свойство сходимости. Доказано, что если элементы матрицы C удовлетворяют одному из условий
n
max сij 1 (7.7)
1 i m j 1
или
n
max сij 1, (7.8)
1 j m i 1
то процесс итерации сходится к точному решению системы х* при любом начальном векторе х(0), т. е.
x* limx(k ) ,
k
Для завершения итерационного процесса можно использовать следующую приближенную оценку погрешности:
|
xi* xi(k ) |
|
|
|
|
max |
|
x(jk ) x(jk 1) |
|
, (i = 1, 2, …, m), |
(7.9) |
|||||||
|
|
|
|
|
||||||||||||||
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
1 j 1, 2,...,m |
|
|
|
|
|
|
|
|||||
если выполнено условие (7.7), или |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
xi* xi(k ) |
|
|
|
|
|
|
x(jk ) |
x(jk 1) |
, (i = 1, 2, …, m), |
(7.10) |
||||||
|
|
|
|
|
|
|
1 j 1 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
если выполнено условие (7.8).
Процесс итераций заканчивают, когда указанные оценки свидетельствуют о достижении заданной точности. Часто вместо (7.9) и (7.10) используются упрощенный критерий завершения процесса итераций, а именно
max |
|
x(k 1) x(k ) |
|
, |
(7.11) |
|
|
|
|||||
1 i m |
|
i |
i |
|
|
|
|
|
|
|
|
|
|
где — задает требуемое значение абсолютной погрешности результата.
Начальный вектор x(0) может быть выбран, вообще говоря, произвольно. Иногда в качестве x(0) берется столбец свободных членов b.
79
Приведение системы (7.2) к виду (7.3) можно осуществить различными способами. Важно, чтобы выполнялось одно из условий (7.7) или (7.8). Рассмотрим два способа преобразования.
Первый способ. Если диагональные элементы матрицы A отличны от 0, то, перенося все остальные члены, кроме диагональных, в правые части уравнений, систему (7.1) можно записать в виде
x |
1 |
|
f |
a |
x |
... a |
x |
|
|
|||
|
|
|
|
|
||||||||
1 |
a11 |
1 |
12 |
2 |
1m |
m |
|
|
||||
|
|
|
|
|
|
|
|
|
||||
x2 |
1 |
|
f2 |
a21 x1 |
a23x3 ... a2m xm |
, |
(7.12) |
|||||
|
a22 |
|||||||||||
. . . |
|
. . . . . . . . . . . |
|
|
||||||||
xm |
1 |
|
fm am1x1 ... am 2 x2 am 1,m 1xm 1 |
|
|
|||||||
|
|
|
|
|
|
|
||||||
|
|
|
amm |
|
|
|
|
|
|
|||
в этом случае элементы матрицы C определяются следующим образом:
сij |
aij |
(i ≠ j), cii = 0, (i = 1, 2, …, m), (j = 1, 2, …, m).(7.13) |
|
aii |
|||
|
|
Условия (7.7) и (7.8) соответственно приобретают вид [1]
m aij
j 1 aii j i
и
m ai 1 aij i j ii
1, (i = 1, 2, …, m)
1, (j = 1, 2, …, m).
(7.14)
(7.15)
Неравенства (7.14) и (7.15) будут выполнены, если диагональные элементы матрицы A удовлетворяют условию (7.16)
|
aii |
|
|
|
aij |
|
, (i = 1, 2, …, m), |
(7.16) |
|
|
|
|
|||||
|
|
|
j i |
|
|
|
|
|
т. е. если модули диагональных коэффициентов для каждого уравнения системы больше суммы модулей всех остальных коэффициентов (не считая свободных членов). Часто матрицы, обладающие
80
таким свойством, называют матрицами с диагональным преобладанием.
Пример 1. Пусть задана система уравнений (7.17).
20,9x1 1,2x2 |
2,1x3 21,7 |
|
|||||
|
1,1x1 21,3x2 |
1,5x3 |
27,46 . |
(7.17) |
|||
|
|||||||
|
0,9x |
1,5x |
2 |
19,8x |
3 |
28,76 |
|
|
1 |
|
|
|
|
||
Преобразуем ее к виду (7.3) первым способом. Система имеет диагональное преобладание. Оставляя диагональные элементы в левых частях уравнений, приводим систему к виду (7.18).
20,9x1 21,7 1,2x2 2,1x3 |
|
||
21,3x2 |
27,46 1,1x1 |
1,5x3 . |
(7.18) |
19,8x3 |
28,76 0,9x1 |
1,5x2 |
|
Разделив уравнения на коэффициент при неизвестном, получаем
(7.19).
x |
1 |
21,7 1,2x |
|
2,1x |
|
|
||||
|
|
2 |
|
|||||||
1 |
|
20,9 |
|
3 |
|
|
|
|||
|
|
|
|
|
|
|
|
|||
x2 |
|
|
1 |
27,46 1,1x1 |
1,5x3 |
. |
(7.19) |
|||
21,3 |
||||||||||
|
|
|
|
|
|
|
|
|||
x |
|
1 |
28,76 0,9x |
1,5x |
|
|
||||
19,8 |
|
|||||||||
3 |
|
|
1 |
2 |
|
|
|
|||
Как видно из (7.20) условие сходимости выполняется.
c1 j |
|
1 |
(1,2 2,1) 0,16 |
|
|||
3 |
|
|
|
|
|
|
|
j 1 |
|
|
|
20,9 |
|
|
|
|
|
|
|
||||
3 |
|
|
|
|
1 |
|
|
|
|
c2 j |
|
(1,1 1,5) 0,17 , |
(7.20) |
||
|
21,3 |
||||||
j 1 |
|
|
|
|
|
||
3 |
|
|
|
1 |
|
|
|
|
|
c3 j |
|
(0,9 1,5) 0,12 |
|
||
|
19,8 |
|
|||||
j 1 |
|
|
|
|
|
||
т. е. коэффициенты системы удовлетворяют условию сходимости. Второй способ. Диагональные элементы исходной системы представляются в виде суммы двух слагаемых. Большее слагаемое
81
(по модулю) оставляем в левой части уравнения, а меньшее, вместе с остальными членами, переносим в правую часть. Затем каждое уравнение делится на коэффициент, стоящий перед неизвестным в правой части. Например, система уравнений (7.17) может быть преобразована к виду (7.21).
20x1 21,7 0,9x1 1,2x2 |
2,1x3 |
|
||
20x2 |
27,46 1,1x1 |
1,3x2 |
1,5x3 , |
(7.21) |
20x3 |
28,76 0,9x1 |
1,5x2 0,2x3 |
|
|
после деления на коэффициенты в левой части получим (7.22)
x1 1,085 0,045x1 |
0,060x2 |
0,105x3 |
|
|
x2 |
1,373 0,055x1 |
0,065x2 |
0,075x3 . |
(7.22) |
x3 |
1,438 0,045x1 |
0,075x2 |
0,010x3 |
|
Как видно из (7.23), условие сходимости выполняется.
3 |
|
c1 j |
|
|
|
(0,045 0,060 0,105) 0,21 |
|
|
|
|
|||||
j 1 |
|
|
|
|
|
|
|
3 |
|
c2 j |
|
|
|
(0,055 0,065 0,075) 0,195. |
(7.23) |
|
|
|
|||||
j 1 |
|
|
|
|
|
|
|
3 |
|
c3 j |
|
|
|
(0,045 0,075 0,010) 0,13 |
|
|
|
|
|
|
|||
j 1 |
|
|
|
|
|
|
|
Метод Зейделя. Метод Зейделя является модификацией метода простой итерации. Он заключается в том, что при вычислении (k + 1)-гo приближения неизвестного xi при i >1 используются уже вычисленные ранее (k+1)-е приближения неизвестных x1, x2, …, xi – 1. Таким образом, вычисления по методу Зейделя для системы (7.3) ведутся по схеме (7.24) [2].
x1(k 1) c11 x1(k ) c12 x2(k ) ... c1m xm(k ) b1 |
|
|||||||
x(k 1) c |
x(k 1) |
c |
x(k ) |
... c |
x(k ) |
b |
|
|
2 |
21 |
1 |
22 |
2 |
2m |
m |
2 |
|
. . . . . . . . . . . . . . |
|
|||||||
x(k 1) c |
x(k 1) |
c |
x(k 1) ... c |
x(k 1) c x(k ) |
||||
m |
m1 1 |
m |
2 2 |
|
m,m 1 |
m 1 |
mm m |
|
.(7.24)
bm
82
Условия сходимости для метода простой итерации остаются верными и для метода Зейделя. Обычно метод Зейделя сходится быстрее, чем метод простой итерации.
Как в методе простых итераций, так и в методе Зейделя целесообразно записывать результаты вычислений в виде таблицы, форма которой для системы с m неизвестными представлена в табл. 7.1. Столбец k содержит номер итерации.
Таблица 7.1
Итерационное решение системы линейных алгебраических уравнений
k |
x1 |
x2 |
… |
xm |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
x(0) |
x(0) |
… |
x(0) |
|
|
|
|
|
|
|
— |
||||||
|
1 |
2 |
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
x(1) |
x(1) |
… |
x(1) |
|
max |
|
|
|
xi(1) xi(0) |
|
|
|
|
|
|
||
|
|
|
|
|||||||||||||||
|
1 |
2 |
|
m |
|
1 i m |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
x(2) |
x(2) |
… |
x(2) |
|
max |
|
xi(2) xi(1) |
|
|
|
|
||||||
|
|
|||||||||||||||||
|
1 |
2 |
|
m |
|
1 i m |
|
|
|
|
|
|
||||||
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… |
… |
… |
… |
… |
|
|
|
|
|
|
|
… |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
x(n) |
x(n) |
… |
x(n) |
|
max |
|
xi(n) xi(n 1) |
|
|
||||||||
|
|
|||||||||||||||||
|
1 |
2 |
|
m |
|
1 i m |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Задания
1. Для указанной в варианте задания системы линейных алгебраических уравнений вычислить значения неизвестных, используя метод простой итерации и метод Зейделя.
2. Выполнить преобразование системы к виду (7.3) двумя способами. В методе простой итерации использовать первый способ. В методе Зейделя — второй способ.
3. Проверить выполнение условий сходимости.
4. Итерации прекращать при выполнении условия max xi(k 1) xi(k )
≤ 0,001.
5.Оформить полученное решение в виде табл. 7.1
6.Проверить правильность решения, подставив значения неизвестных в исходную систему.
83
3. Пример выполнения задания
Задана система линейных алгебраических уравнений (7.25).
Пример 1. Решить систему уравнений (7.25) методом простой итерации.
9,1x1 |
– 2,8x2 |
+ 1,3x3 |
– 2,8x4 |
+ 1,2x5 |
= 21 |
|
–0,9x1 |
+ 5,1x2 |
– 0,5x3 |
+ 1,3x4 |
+ 1,4x5 |
= –10,7 |
(7.25) |
0,6x1 |
– 2,2x2 |
+ 10,3x3 |
+ 2,6x4 |
+ 2,9x5 |
= 8,2 |
|
1,2x1 |
+ 2,9x2 |
– 0,3x3 |
+ 6,7x4 |
+ 0,3x5 |
= 3,3 |
|
–1,3x1 |
+ 1,2x2 |
+ 1,5x3 |
+ 2,1x4 |
+ 7,1x5 |
= –2,9 |
|
1. Преобразуем систему к виду, удобному для итераций. В левой части остаются диагональные элементы, а остальные члены переносятся в правую часть. После деления на коэффициенты a ii (i = 1, 2, …, 5) получим (7.26):
x1 = 0,3077x2 – 0,1429x3 + 0,3077x4– 0,1319x5 + 2,3077 x2 = 0,1765x1 + 0,0980x3 – 0,2549x4– 0,2745x5 – 2,0980
x3 = –0,0583x1 + 0,2136x2 – 0,2524x4 – 0,2816x5 + 0,7961. (7.26) x4 = –0,1791x1 – 0,4328x2+ 0,0448x3 – 0,0448x5 + 0,4925
x5 = 0,1831x1 – 0,1690x2– 0,2113x3 – 0,2958x4 – 0,4085
2. Проверяем выполнение условий сходимости (7.27): |
|
0,3077 + 0,1429 + 0,3077 + 0,1319 = 0,8902 |
|
0,1765 + 0,0980 + 0,2549 + 0,2745 = 0,8039 |
|
0,0583 + 0,2136 + 0,2524 + 0,2816 = 0,8059. |
(7.27) |
0,1791 + 0,4328 + 0,0448 + 0,0448 = 0,7015 |
|
0,1831 + 0,1690 + 0,2113 + 0,2958 = 0,8592 |
|
Суммы модулей элементов строк меньше единицы и условия сходимости выполняются.
3. Выполняем процесс итераций. В качестве начального приближения принимаем свободные члены преобразованной системы. Результаты вычислений записываем в табл. 7.2.
84
Таблица 7.2
Решение системы СЛАУ методом простой итерации
k |
x1 |
x2 |
x3 |
x4 |
x5 |
|
0 |
2,3077 |
–2,0980 |
0,7961 |
0,4925 |
–0,4085 |
|
1 |
1,7538 |
–1,6262 |
0,2042 |
1,0413 |
0,0548 |
0,5919 |
2 |
2,0913 |
–2,0490 |
0,0683 |
0,8890 |
–0,1636 |
0,4228 |
3 |
1,9626 |
–1,9040 |
0,0583 |
1,0152 |
0,0434 |
0,2070 |
4 |
2,0202 |
–2,0167 |
0,0066 |
0,9658 |
–0,0399 |
0,1127 |
5 |
1,9887 |
–1,9761 |
0,0151 |
1,0057 |
0,0152 |
0,0551 |
6 |
2,0049 |
–2,0061 |
0,0000 |
0,9917 |
–0,0110 |
0,0300 |
7 |
1,9970 |
–1,9940 |
0,0036 |
1,0023 |
0,0044 |
0,0154 |
8 |
2,0015 |
–2,0020 |
–0,0004 |
0,9979 |
–0,0030 |
0,0080 |
9 |
1,9992 |
–1,9984 |
0,0009 |
1,0007 |
0,0013 |
0,0043 |
10 |
2,0004 |
–2,0006 |
–0,0002 |
0,9994 |
–0,0008 |
0,0022 |
11 |
1,9998 |
–1,9996 |
0,0002 |
1,0002 |
0,0004 |
0,0012 |
12 |
2,0001 |
–2,0002 |
–0,0001 |
0,9999 |
–0,0002 |
0,0006 |
Пример 2. Решить систему уравнений (7.25) методом Зейделя. 1. Преобразуем систему к виду, удобному для итераций. Диагональные элементы матрицы системы представим в виде (10 – w ii)xi, где wii — дополнение до 10 соответствующего коэффициента уравнения. Например, 9,1xi запишем как (10 – 0,9)xi. В левой части уравнения оставляем 10xi, а остальные элементы переносим в правую
часть уравнения.
После деления каждого уравнения на 10 перепишем систему
(7.25) в виде (7.28).
x1 = 0,09x1 |
+ 0,28x2 |
– 0,13x3 + 0,28x4 |
– 0,12x5 |
+ 2,1 |
|
|
x2 |
= 0,09x1 |
+ 0,49x2 |
+ 0,05x3 – 0,13x4 |
– 0,14x5 |
– 1,07 |
|
x3 |
= –0,06x1 + 0,22x2 – 0,03x3 – 0,26x4 – 0,29x5 + 0,82. |
(7.28) |
||||
x4 |
= – 0,12x1 – 0,29x2 + 0,03x3 + 0,33x4 – 0,03x5 + 0,33 |
|
||||
x5 |
= 0,13x1 – 0,12x2 – 0,15x3 – 0,21x4 + 0,29x5 – 0,29 |
|
||||
2. Проверяем выполнение условий сходимости (7.29).
85
0,09 + 0,28+ 0,13 + 0,28 + 0,12 = 0,9 |
|
0,09 + 0,49 + 0,05 + 0,13 + 0,14 = 0,9 |
|
0,06 + 0,22 + 0,03 + 0,26 +0,29 = 0,86. |
(7.29) |
0,12 + 0,29 + 0,03 + 0,33 + 0,03 = 0,8 |
|
0,13 + 0,12 + 0,15 + 0,21 + 0,29 = 0,9 |
|
3. Выполняем процесс итераций. В качестве начального приближения принимаем свободные члены преобразованной системы. Результаты вычислений записываем в табл. 7.3.
Таблица 7.3
Решение СЛАУ методом Зейделя
k |
x1 |
x2 |
x3 |
x4 |
x5 |
|
0 |
2,1 |
–1,07 |
0,82 |
0,33 |
–0,29 |
|
1 |
2,01 |
–1,3747 |
0,3707 |
0,6162 |
–0,1328 |
0,4493 |
2 |
2,0363 |
–1,6033 |
0,2123 |
0,7643 |
–0,0638 |
0,2286 |
3 |
2,0284 |
–1,7529 |
0,1261 |
0,8528 |
–0,0325 |
0,1496 |
4 |
2,0181 |
–1,8473 |
0,0764 |
0,9083 |
–0,0176 |
0,0944 |
5 |
2,0109 |
–1,9060 |
0,0467 |
0,9431 |
–0,0100 |
0,0587 |
6 |
2,0065 |
–1,9422 |
0,0286 |
0,9648 |
–0,0059 |
0,0362 |
7 |
2,0039 |
–1,9645 |
0,0176 |
0,9783 |
–0,0036 |
0,0223 |
8 |
2,0024 |
–1,9782 |
0,0108 |
0,9867 |
–0,0022 |
0,0137 |
9 |
2,0014 |
–1,9866 |
0,0066 |
0,9918 |
–0,0013 |
0,0084 |
10 |
2,0009 |
–1,9918 |
0,0041 |
0,9950 |
–0,0008 |
0,0052 |
11 |
2,0005 |
–1,9950 |
0,0025 |
0,9969 |
–0,0005 |
0,0032 |
12 |
2,0003 |
–1,9969 |
0,0015 |
0,9981 |
–0,0003 |
0,0019 |
13 |
2,0002 |
–1,9981 |
0,0009 |
0,9988 |
–0,0002 |
0,0012 |
14 |
2,0001 |
–1,9988 |
0,0006 |
0,9993 |
–0,0001 |
0,0007 |
4. Варианты заданий
Вариант 1
11,6x1 +2,7x2 |
–2,8x3 |
–1,6x4 |
+2,5x5 = |
–29,8 |
||
0,8x1 |
+6,5x2 |
–0,7x3 |
–1,1x4 |
+2,9x5 |
= |
–14,2 |
1,3x1 |
–1,0x2 |
+8,0x3 |
+2,8x4 |
–0,9x5 = |
4,6 |
|
–2,9x1 |
+1,2x2 |
+2,4x3 |
+8,2x4 |
+0,7x5 |
= |
–2,4 |
–2,4x1 |
+0,7x2 |
+0,4x3 |
–2,1x4 |
+6,6x5 |
= |
5,9 |
86
