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

Литература / Козин Р.Г. Алгоритмы численных методов линейной алгебры и их программная реализация

.pdf
Скачиваний:
4
Добавлен:
07.09.2025
Размер:
4.33 Mб
Скачать

ГЛАВА 2. МЕТОДЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ

Все существующие методы решения систем линейных уравнений x ?: Ax b делятся на две группы: итерационные и прямые. В

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

2.1. Итерационные методы решения систем линейных уравнений

2.1.1. Общая схема итерационного процесса и ее исследование

От системы Ax b перейдем к равносильной системе

C x x Ax b ,

где C – произвольная невырожденная матрица ( C 0 ), а 0 –

числовой параметр. Для равносильной системы можно предложить следующую итерационную схему

 

 

C

x(k 1)

x(k )

Ax

(k )

b

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k 1)

Bx(k ) b .

 

 

 

 

 

 

 

 

(2.1)

Здесь

k 0,1, 2, ... –

номер итерации;

x(0)

начальное приближе-

ние, которое задает пользователь, и

 

 

 

 

 

B E C 1 A ,

b C 1b .

(2.2)

В

дальнейшем,

задавая

различным

образом

параметры

C 0, 0 , из схемы (2.1) получим схемы, соответствующие раз-

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

31

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

1. Первую проблему решает следующая теорема.

Теорема. Для сходимости процесса (1) необходимо и достаточно, чтобы все собственные значения матрицы B были меньше еди-

ницы: i (B) 1.

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

Следствие. Для сходимости итерационного процесса (2.1) достаточно выполнения неравенства: B 1 .

Доказательство. Пусть Bx x . Тогда

 

 

 

B

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

Bx

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда следует неравенство: 1 B , которое согласно преды-

дущей теореме гарантирует сходимость итерационного процесса. 2. Получим оценку скорости сходимости итерационного про-

цесса при условии:

 

 

 

B

 

 

 

1 .

 

 

 

 

Если

 

 

 

B

 

 

 

1 ,

 

то справедливо матричное разложение

 

 

 

 

 

(E B) 1 E B B2 B3 ... . Отсюда можно записать точное решение для задачи x Bx b в следующем виде:

x (E B) 1b (E B B2 B3

...)b .

(2.3)

С другой стороны, с учетом схемы (2.1) имеем

 

x(k ) Bx(k 1) b B(Bx(k 2) b) b B2 x(k 2)

(E B)b ...

(2.4)

Bk x(0) (E B B2 B3 ...Bk

1 )b.

 

Сучетом соотношений (2.3), (2.4) можно записать

xx( k ) Bk [(E B B2 B3 ...)b x(0) ] .

Отсюда легко выводится оценка скорости сходимости итерационного процесса в зависимости от номера итерации

x x(k ) Bk (1 BB2 B3 ...) b x(0)

32

или, поскольку B 1 ,

 

x x(k )

 

 

 

B

k

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

x(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

B

 

 

 

 

 

.

(2.5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для частного случая x(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b оно преобразуется к виду

 

 

 

x x(k )

 

 

 

B

 

k 1

 

 

b

 

 

 

 

 

.

 

 

(2.6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В дополнение к верхнему неравенству выведим еще одну полезную оценку точности решения после k итераций:

x x( k ) Bx Bx(k 1) Bx Bx( k 1) Bx(k ) Bx(k )

B(x x(k ) ) B(x(k ) x(k 1) )

x x(k ) B x x(k ) B x(k ) x(k 1)

 

 

x x(k )

 

 

 

B

 

 

 

 

 

 

 

 

 

x(k ) x(k 1)

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Критерий окончания итераций.

Метрическое пространство векторов Rn является полным. Поэтому в качестве критерия сходимости последовательности векторов можно использовать критерий Коши: последовательность век-

торов {x(k ) } сходится к своему пределу x Rn тогда и только тогда, когда для любого 0 существует такое K, что для всех k K имеет место x(k 1) x(k ) .

Наряду с абсолютным критерием целесообразно использовать его относительный аналог:

x( k 1)

x(k )

 

x( k 1)

.

(2.7)

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

33

4. Итерационный процесс x(k 1) Bx(k ) b можно считать расходящимся, если неравенство

x( k 1) x(k 2) x(k ) x(k 1)

выполняется подряд для трех-пяти последовательных значений k. Справедливость этого утверждения для одномерного случая ( n 1 ) демонстрирует рис. 2.1.

Рис. 2.1. Пример расходящегося итерационного процесса x(k 1) Bx(k ) b для случая n 1

2.1.2. Частные итерационные схемы

Рассмотрим итерационные схемы, которые вытекают из общей схемы (2.1).

1. Метод Якоби получается при следующем выборе параметров: 1, C D . Здесь D – диагональная составляющая исходной

матрицы A AL D AH , где AL , AH – соответственно ее нижняя и верхняя составляющие.

34

Отсюда следует

B E D 1 (A

D A

) D 1(A

 

A ) .

(2.8)

 

 

 

 

 

 

 

L

 

 

 

 

 

 

 

 

H

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L

 

H

 

С учетом очевидного вида обратной диагональной матрицы

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

0

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ann

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

легко выводится покоординатная запись схемы метода Якоби

 

 

(k 1)

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(k )

 

 

 

 

 

 

 

 

xi

 

 

 

bi Aij xj

 

 

 

,

 

i

1, n .

(2.9)

Aii

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Достаточное условие сходимости

 

 

 

B

 

 

 

 

 

1 для метода имеет сле-

 

 

 

 

 

дующий вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

куб max

 

Bij

 

 

max

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aii

 

 

 

 

 

 

 

 

 

i

j

 

 

 

 

 

 

i

j

i

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

Aij

 

 

 

Aii

 

.

 

 

 

 

 

 

(2.10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последнее означает, что для сходимости метода Якоби необходимо преобладание диагональных элементов матрицы над остальными компонентами для каждой строки матрицы.

2. Метод простой итерации имеет место при 0, C E . При

этом имеем

 

 

 

 

B E A ,

 

 

 

(2.11)

 

 

 

 

 

 

 

 

покомпонентная запись схемы

 

 

 

 

 

 

 

xi(k 1)

bi ( ij Aij )x(jk ) ,

i 1,n ,

(2.12)

 

 

 

 

 

j

 

 

 

 

 

 

 

и достаточное условие сходимости метода

 

 

 

 

 

B

 

 

 

куб max

 

ij Aij

 

1 .

(2.13)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

35

Если матрица A – симметричная и положительно определенная

(ее собственные числа 1

2 ... n

0 ), то для нее можно ука-

зать оптимальный параметр

 

 

 

 

 

 

 

 

 

 

 

 

 

0

опт

 

 

2

 

,

 

(2.14)

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

при котором метод простой итерации всегда сходится, причем с

максимальной скоростью, так как в этом случае сферическая норма

матрицы B принимает минимально возможное значение

 

 

 

 

( B

сф

)

опт

1

n

1.

 

(2.15)

 

 

 

 

 

 

1

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Покажем справедливость этих утверждений.

 

 

 

 

F(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|1-tλ1|

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|1-tλn|

 

 

 

 

 

1/λ1 tопт

 

 

1/λn

t

 

Рис. 2.2. Местоположение функций fi ( ) 1 i (A)

 

Если матрица A – симметричная, то B E A – также симмет-

ричная и поэтому

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B сф max 1 i (A) .

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

Поскольку A – еще и положительно определенная матрица, то ее

собственные

числа

i (A) 0 ,

и

 

поэтому

все

функции

fi ( ) 1 i (A)

будут

располагаться

внутри зоны,

очерченной

двумя ломаными линиями 1 1 (A) и

1 n (A)

(рис. 2.2). Сфе-

 

 

 

 

 

 

 

 

36

 

 

 

 

 

рической норме

 

 

 

B( )

 

 

 

сф

max

 

1 i (A)

 

как функции параметра

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

на этом рисунке будут соответствовать верхние участки ломаных линий. Видно, что норма принимает минимальное значение при

опт , которое задается координатой точки пересечения ломаных линий

1 опт n опт 1 1

При этом (Bсф )опт 1 опт n . Отсюда легко выводятся выражения

(2.14) и (2.15).

Замечание. Если матрица плохо убусловлена, то 1 n . Тогда согласно выражению (2.15) (Bсф)опт 1 , и метод простой итерации для системы будет сходиться очень медленно.

3. В методе верхней релаксации принимается 0, C D AL .

В этом случае из уравнения

 

(D A )

x(k 1) x(k )

 

Ax(k ) b

 

 

 

 

 

 

L

 

 

 

 

следует

 

 

 

 

 

B E (D A ) 1 A ,

 

 

(2.16)

 

 

 

 

L

 

Dx(k 1)

b (A x(k 1)

A x(k ) ) (1 )Dx(k ) .

(2.17)

 

L

H

 

 

 

Из матричного уравнения (2.17) легко выводится формула для пересчета координат решения для очередной итерации

 

 

 

 

i 1

n

 

 

 

xi(k 1)

(1 )x(k )

bi

Aij x(jk 1)

Aij x(jk )

,

i 1,n . (2.18)

 

 

 

 

 

 

 

 

 

 

 

 

 

Aii

 

j 1

j i 1

 

 

 

Воспользоваться выражением (2.16) для проверки достаточного условия сходимости метода проблематично, поскольку для этого требуется знание обратной матрицы.

Однако доказано, что если матрица A – симметричная и положительно определенная, то всегда существуют такие значения 0 2 , при которых метод верхней релаксации сходится.

Частный вариант метода верхней релаксации при 1 известен как метод Зейделя.

37

В том случае выражения (2.16) и (2.18) преобразуются к виду

 

 

 

 

 

B (D A ) 1

A ,

 

 

 

 

(2.19)

 

 

 

 

 

 

 

L

H

 

 

 

 

 

(k 1)

 

1

 

i 1

(k 1)

n

(k )

 

 

 

xi

 

 

bi

Aij xj

Aij xj

 

,

i 1,n .

(2.20)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aii

 

j 1

 

j i 1

 

 

 

 

 

2.1.3. Алгоритмическая реализация методов

Рассмотрим особенности реализации алгоритмов.

1.В качестве нулевого вектора берется вектор правой части матричного уравнения x(0) b .

2.Перед запуском итерационного процесса производится деление каждого уравнения на соответствующей диагональный элемент матрицы. При этом если встречается нулевой диагональный эле-

мент, то переменной code присваивается единичное значение, и осуществляется выход из алгоритма.

3. В алгоритме автоматически отлавливается «несходимость» итерационного процесса для заданной системы с помощью крите-

рия – увеличение нормы norm

x(k 1) x(k )

в течение пяти по-

 

 

куб

 

 

следовательных итераций. Если последнее имеет место, то переменной code присваивается значение двойки, и осуществляется

выход из алгоритма.

4. Для окончания процесса используются два критерия: число итераций ограничено сверху заданным максимальным числом K и norm , где K, задаются пользователем. Окончание процесса

согласно одному из этих критериев соответствует code 0 . При этом в переменных K, возвращаются значения использованного

числа итераций и достигнутой точности в оценке нормы разности соседних приближений, а в векторе x – полученное решение.

5. Используются: буферный вектор x0i , i 1, n ; переменные norm _ old и fl для хранения соответственно нормы, вычисленной

на предыдущей итерации, и числа итераций, при которых последовательно возрастает значение этой нормы.

6. exit sub обозначает выход из подпрограммы.

38

 

(k 1)

 

1

 

 

( k )

 

 

Алгоритм метода Якоби:

xi

 

 

bi Aij xj

 

,

i 1, n .

 

 

 

 

Aii

j i

 

 

 

 

Входные параметры процедуры: A, b, n, x, K, .

code 0,

 

 

fl

0,

norm _ old 0

 

for i 1, n

 

нормировка уравнений, задание x0

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0i bi

 

 

 

 

 

 

 

 

if

 

A

 

 

10 30 ( 0) then { code 1,

exit sub}

 

 

 

 

ii

 

 

 

 

 

 

 

 

 

 

 

 

 

bi

bi / Aii

 

 

 

 

 

 

 

for j 1, n

 

{ if

i j then Aij Aij

/ Aii }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

for k 1, K

 

 

цикл по итерациям

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

norm 0

 

 

 

 

 

 

 

 

for i 1, n

цикл по уравнениям

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi bi

 

 

 

 

 

 

 

 

 

 

for

j 1, n { if

i j then xi xi

Aij x0 j }

 

nt

 

xi

x0i

 

 

 

 

 

 

 

 

 

 

 

 

if nt norm then norm nt

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if norm then

{ K k, norm, exit sub}

if

norm norm _ old then

fl fl 1 else fl 0

if

 

fl 5 then

{ code 2,

exit sub}

norm _ old norm

 

 

for i 1, n

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0i

xi

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

39

Алгоротм простой итерации:

xi(k 1) bi ( ij Aij )x(jk ) , i 1, n .

 

 

 

 

 

 

 

 

 

 

j

 

Входные параметры процедуры: A, b, n, x, , K, .

code 0,

fl

0,

norm _ old 0

 

for i 1, n

 

нормировка уравнений, задание x0

{

 

 

 

 

 

 

 

 

 

 

 

x0i bi

 

 

 

 

 

 

 

 

bi

bi

 

 

 

 

 

 

 

 

for j 1, n

{ if

i j then Aij 1 Aij else Aij

Aij }

}

 

 

 

 

 

 

 

 

 

 

 

for k 1, K

 

 

цикл по итерациям

 

{

 

 

 

 

 

 

 

 

 

 

 

norm 0

 

 

 

 

 

 

 

 

for i 1, n

 

цикл по уравнениям

 

{

 

 

 

 

 

 

 

 

 

 

 

 

xi bi

 

 

 

 

 

 

 

 

 

for j 1, n { xi xi Aij x0 j }

 

nt

 

xi x0i

 

 

 

 

 

 

 

 

 

 

if nt norm then norm nt

 

}

 

 

 

 

 

 

 

 

 

 

 

if

norm then { K k, norm, exit sub}

 

if

norm norm _ old then

fl fl 1 else fl 0

 

if

fl 5 then

{ code 2,

exit sub}

 

norm _ old norm

 

 

for i 1, n { x0i

xi }

 

 

}

 

 

 

 

 

 

 

 

 

 

 

40