Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички.C++ / Конспект Лекций - Части 1,2.pdf
Скачиваний:
275
Добавлен:
24.02.2016
Размер:
1.97 Mб
Скачать

13.5. Итерационные методы решения СЛАУ

К приближенным относятся методы, которые даже в предположении, что вычисления ведутся без округлений, позволяют получить решение системы лишь с заданной точностью. Это итерационные методы, т.е. методы последовательных приближений. К ним относятся методы простой итерации, Зейделя.

Напомним, что достоинством итерационных методов является их применимость к плохо обусловленным системам и системам высоких порядков, их «самоисправляемость» и простота реализации на ЭВМ. Итерационные методы для начала вычисления требуют задания какого-либо начального приближения к искомому решению.

Следует заметить, что условия и скорость сходимости итерационного процесса существенно зависят от свойств матрицы А системы и от выбора начальных приближений.

Для применения метода итераций исходную систему (13.1) или (13.2) необходимо привести к виду

x = G x +

 

f

 

 

(13.25)

и затем итерационный процесс строится по рекуррентным формулам

x(k+1) = G x(k ) +

 

, k = 0, 1, 2, ... .

(13.26)

f

Для сходимости (13.26) необходимо и достаточно, чтобы

|λi(G)| < 1, где

λi(G) − все собственные значения матрицы G.

Чаще всего останавливаются на проверке условий (|| ... || – норма матрицы):

 

n

n

 

||G|| < 1,

||G|| = max | gij |, или

||G|| = max | gij |,

(13.27)

 

1in j=1

1jn i=1

 

или, если исходная матрица А имеет диагональное представление, т.е.

 

 

n

A ={aij }1n .

 

|aii | >

 

| aij |,

(13.28)

 

i, j=1;ij

 

 

Если (13.27) или (13.28) выполняются, метод итерации сходится при любом

начальном приближении x(0) . Чаще всего вектор x(0)

берут или нулевым, или

единичным, или сам вектор

f

из (13.25).

 

 

Имеется много подходов к преобразованию исходной системы (13.2) с матрицей А для обеспечения вида (13.25) или условий сходимости (13.27) и (13.28).

Например, (13.25) можно получить следующим образом.

Пусть

А = В+С,

det В 0;

тогда

(B+С) x =

 

 

 

 

B

 

 

= −C

 

+

 

B−1B

 

= − B−1 C

 

+ B−1

 

,

b

x

x

b

x

x

b

откуда

 

 

= − B−1 C

 

+ B−1

 

.

 

 

 

 

 

x

x

b

Положив −B−1 C = G,

B−1

 

=

 

и получим (13.25).

b

f

Из условий сходимости (13.27) и (13.28) видно, что представление А = В+С не может быть произвольным.

188

Если матрица А удовлетворяет требованиям (13.28), то в качестве матрицы В можно выбрать нижнюю треугольную

B =

Или

a11

0 L 0

 

 

 

a

 

a

 

L 0

 

, aii 0.

 

 

21

 

22

 

 

 

 

 

L

 

 

 

 

an1

 

 

 

 

 

 

an2 Lann

 

A x = b ; A x b = 0 ; x + (A x b) = x ;

x = x (A x b) = x A x −αb = ( E A) x −αb = G x + f .

Подбирая параметр α можно добиться, чтобы ||G|| = ||E + αA|| < 1.

Если имеет место преобладание (13.28), тогда преобразование к (13.25) можно осуществить просто, решая каждое i-ое уравнение системы (13.1) относительно xi по следующим рекуррентным формулам:

k

1

 

 

n

k1

 

n

k1

 

 

xi = −

 

 

 

aij x j

 

= gij x j

+ fi

;

aii

 

j=1; ji

 

 

j=1

 

 

 

gij = − aij / aii

;

 

gij = 0;

 

fi = bj / aii ;

(13.29)

G ={g

}n .

 

 

 

 

 

 

 

 

ij 1

 

 

 

 

 

 

 

 

Если же в матрице А нет диагонального преобладания, его нужно добиться посредством каких-либо ее линейных преобразований, не нарушающих их равносильности.

Для иллюстрации рассмотрим систему

2x

1,8 x

2

+0,4x

3

=1;

(I )

 

1

 

 

 

 

3x1

+2x2

1,1x3 = 0;

(II )

x

x

2

+7,3x

= 0;

(III )

 

1

 

 

3

 

 

Как видно в уравнениях (I) и (II) нет диагонального преобладания, а в (III) есть, поэтому его оставляем неизменным.

Добьемся диагонального преобладания в уравнении (I). Умножим (I) на α, (II) на β, сложим оба уравнения и в полученном уравнении выберем α и β так, чтобы имело место диагональное преобладание:

(2α + 3β) х1 + (−1,8α + 2β) х2 +(0,4α − 1,1β)х3 = α .

Взяв α = β = 5, получим 25х1 + х2 − 3,5х3 = 5.

Для преобразования второго уравнения (II) с преобладанием, (I) умножим на γ, (II) умножим на δ, и из (II) вычтем (I). Получим

(3δ − 2γ) х1 + (2δ + 1,8γ) х2 +(−1,1δ − 0,4γ)х3 = −γ .

Положим δ = 2, γ = 3, получим 0х1 + 9,4х2 − 3,4х3 = −3.

189

В результате получим систему:

25x + x

2

3,5x

 

= 5;

 

 

 

 

 

 

 

 

1

 

 

3

 

 

 

 

 

 

 

 

 

9,4x2 3,4x3 =−3;

 

 

 

 

 

 

 

x

x

2

+7,3x

3

= 0.

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

В полученной системе разделим каждое уравнение на диагональный эле-

мент:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x + 0,04x

2

0,14x =

0,2;

 

x =−0,04x

2

+ 0,14x

3

+0,2;

1

 

 

 

3

 

 

 

1

 

 

 

 

x2 0,36x3 =− 0,32;

или

x2 = 0,36x3 0,32;

 

 

 

 

 

 

 

+x3 =

0.

 

 

= −0,14x1

+0,14x2 .

0,14x1 0,14x2

 

x3

Взяв в качестве начального приближения, например,

вектор

x(0) = (0,2;

−0,32; 0)Т. Будем решать эту систему по технологии (13.26):

 

 

 

 

 

 

 

 

 

x(k+1)

= − 0,04x(k ) +0,14x(k ) +0,2;

 

 

 

 

 

 

 

 

 

1

 

 

2

3

 

 

 

 

 

 

 

 

 

 

x(k+1)

= 0,36x

(k ) 0,32;

 

 

 

 

 

 

 

 

 

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

x(k+1)

= − 0,14x(k ) +0,14x(k ) .

 

 

 

 

 

 

 

 

 

3

 

 

1

2

 

 

 

 

 

Процесс вычисления прекращается, когда два соседних приближения вектора решения совпадают по точности, т.е.

x (k+1) x (k ) < ε.

13.6. Метод простой итерации

Технология решения системы вида (13.25) названа методом простой ите-

рации.

Оценка абсолютной погрешности для метода простой итерации

 

 

 

 

 

 

 

 

 

x* x (k+1)

 

 

G

 

 

 

k+1

 

 

 

x (0)

 

 

 

+

 

G

 

 

 

k+1

 

 

 

 

 

f

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

G

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример. Для иллюстрации алгоритма рассмотрим решение системы (две

итерации):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4x

x

2

x

3

 

= 2;

 

4 1 1

 

 

 

 

 

 

 

 

r

 

 

 

 

2

 

 

 

1

 

 

 

 

 

 

 

 

 

 

A = 1

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

= 4 .

 

 

x1 +5x2 2x3

 

= 4;

 

 

5

;

 

 

 

 

 

b

 

 

(13.30)

 

x

+

x

 

+

4x = 6;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1 1 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

1

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Преобразуем систему к виду (13.25) согласно (13.29):

 

 

 

 

 

 

 

 

 

 

 

 

x

 

=(2

+ x

2

+ x

3

) / 4;

 

 

 

x1(k+1) = (2 + x2(k )

+ x3(k ) ) / 4;

 

1

 

 

 

 

 

 

 

 

 

 

 

 

x2(k+1)

= (4x1(k ) + 2x3(k ) ) / 5;

 

x2 =(4x1 +2x3 ) / 5;

 

(13.31)

x

3

 

=(6 x

x

2

) / 4;

 

 

 

x

(k+1)

= (6 x

(k )

x

(k )

) / 4.

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

3

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

190

Соседние файлы в папке методички.C++