Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

7 / Числ_мет_лабораторный_практикум_ч1_77_91

.pdf
Скачиваний:
0
Добавлен:
31.05.2026
Размер:
695.71 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА №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

1 i m

Условия сходимости для метода простой итерации остаются верными и для метода Зейделя. Обычно метод Зейделя сходится быстрее, чем метод простой итерации.

Как в методе простых итераций, так и в методе Зейделя целесообразно записывать результаты вычислений в виде таблицы, форма которой для системы с 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

Соседние файлы в папке 7