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

Козенко, Галанина

.pdf
Скачиваний:
173
Добавлен:
02.04.2015
Размер:
2.53 Mб
Скачать

В этом случае решение системы уравнений получается в виде

C = А−1 × B,

(2.7)

где А−1 – матрица, определяемая следующим образом.

Пусть А – квадратная матрица размером m×m c ненулевым определителем det A ≠ 0. Тогда существует обратная матрица R = А-1,

определяемая условием

A × R = E,

где Е – единичная матрица, размерности m×m все элементы главной диагонали которой равны 1, а все элементы вне этой диагонали равны 0.

é

1

0

...

0

ù

ê

0

1

...

0

ú

ê

ú

ê

 

 

 

 

ú

E=ê

 

 

 

 

ú .

... ... ... ...

ê

 

 

 

 

ú

ê

0

0

...

1

ú

ê

 

 

 

 

ú

ë

 

 

 

 

û

Матрица R – квадратная матрица размером m×m.

 

 

 

 

 

 

é

r

r

...

r

ù

 

 

 

 

 

 

 

 

 

 

 

 

 

ê

 

11

12

 

1m

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

êr

r

...

r

ú

 

 

 

 

 

 

 

 

 

 

 

 

R=ê

 

21

22

 

2m

ú .

 

 

 

 

 

 

 

 

 

 

 

 

ê

 

 

 

... ...

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

ê ... ...

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

êr

r

...

r

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

ë

 

m1

m2

 

 

û

 

 

 

 

 

 

 

 

 

 

 

 

 

ê

 

 

mmú

 

 

 

 

 

 

 

Тогда можно записать в матричном виде

 

 

 

 

 

 

 

 

é

a

a

...

a

ù

 

é

r

r

...

r

 

ù

é

1

0

...

0

ù

ê

11

12

 

1m ú

 

ê

11

12

 

1m

ú

ê

 

 

 

 

ú

ê

a

a

...

a

ú

 

êr

r

...

r

 

ú

ê

0

1

...

0

ú

ê

21

22

 

2m ú

´

ê

21

22

 

2m

ú

ê

 

 

 

 

ú

ê

... ... ... ...

ú

ê

... ... ... ...

 

ú

=ê

 

 

 

 

ú .

ê

ú

 

ê

 

ú

... ... ... ...

 

 

 

 

 

 

 

 

 

 

ê

 

 

 

 

ú

êa

a

...

a

ú

 

êr

r

...

r

 

ú

ê

0

0

...

1

ú

ë

m1

m2

 

 

û

 

ë

 

 

 

 

 

û

ë

 

 

 

 

û

ê

 

mmú

 

ê m1 m2

 

mmú

ê

 

 

 

 

ú

Умножим матрицу А на первый столбец матрицы R. Получим первый столбец матрицы Е, то есть система уравнений будет представлена в виде

a11 r11 + a12 r21 + … + a1m rm1 = 1

 

a21 r11 + a22 r21 + … + a2m rm1 = 0,

(2.8)

21

.....................................................................

am1 r11 + am2 r21 + … + amm rm1 = 0

где неизвестными являются значения r11 , r21,…, rm1.

Решением этой системы будет набор значений r11 , r21,…, rm1, то есть первый столбец матрицы R.

Аналогично, умножая матрицу A на второй столбец матрицы R, получим:

a11 r12 + a12 r22 + … + a1m rm2 = 0 a21 r12 + a22 r22 + … + a2m rm2 = 1

.....................................................

am1 r12 + am2 r22 + … + amm rm2 = 0.

Решением этой системы будет набор значений r12, r22,…, rm2, то есть второй столбец матрицы R.

И так далее до m-го столбца матрицы R:

a11 r1m + a12 r2m + … + a1m rmm = 0 a21 r1m + a22 r2m + … + a2m rmm = 0

.....................................................

am1 r1m + am2 r2m + … + amm rmm = 1.

Решением этой системы будет набор значений r1m, r2m,…, rmm, то есть m– й столбец матрицы R.

В результате получим m систем уравнений.

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

Вычислив матрицу R (матрицу A-1), находим матрицу коэффициентов С в соответствии с (2.7).

2.4. Схема алгоритма решения системы линейных уравнений

методом обратной матрицы

Используем для решения совокупности m систем уравнений вида (2.8) метод Гаусса. Этот метод дает возможность решать все m систем одновременно. Действительно, все эти системы уравнений отличаются только правой частью, а все преобразования, которые производятся в процессе прямого хода метода Гаусса, полностью определяются элементами матрицы коэффициентов (матрицы А).

22

Определение единичной матрицы E

Прямой ход метода Гаусса для расчета коэффициентов обратной матрицы R

(рис.2.8)

Обратный ход метода Гаусса для расчета коэффициентов обратной матрицы R

(рис.2.9)

Вычисление коэффициентов вектора C (рис. 2.10)

Начало

i = 0...m–1

j = 0...m–1

Нет

i = j

Да

Eij = 1

 

Eij = 0

 

 

 

 

 

 

 

 

 

 

j

i

Прямой ход метода Гаусса

Обратный ход метода Гаусса

Вычисления C = R×B

Конец

Рис. 2.7. Обобщенная схема алгоритма метода обратной матрицы

23

Начало

i = 0...m–2

l = i+1...m–1

Q = Ali/Aii

Ali = 0

j = i+1...m–1

Alj = AljQ×Aij

j

k = 0...m–1

Elk = Elk–Q×Eik

k

l

i

Конец

Расчет коэффициентов при неизвестных в уравнении с номером l

Расчет правых частей уравнений (матриц E)

Рис.2.8. Схема алгоритма прямого хода метода Гаусса для вычисления коэффициентов обратной матрицы

24

Начало цикла обратного хода метода Гаусса для вычисления столбцов обратной матрицы R

Начало

l = 0...m–1

Rm–1, l = Em–1,l/Am–1,m–1

Определение последней строки неизвестных матрицы R

Начало цикла последовательного определения неизвестных в l-й строке матрицы R

Определение элементов i-го столбца матрицы R

Конец цикла по l

l

i = m–2...0

l = 0...m–1

Sum = Eil

j = i+1...m–1

Sum = SumAij×Rjl

j

Ril = Sum/Aii

l

i

Конец

Рис.2.9. Схема алгоритма обратного хода метода Гаусса для вычисления коэффициентов обратной матрицы

25

Начало

i = 0...m–1

Ci = 0

k = 0...m–1

Ci = Ci+Rik×Bk

k

i

Конец

Начало цикла вычисления неизвестных Ci

Вычисление значений Ci в соответствии с (2.7)

Конец цикла по i

Рис. 2.10. Схема алгоритма вычисления вектора С методом обратной матрицы

Следовательно, в схемах алгоритмов, приведенных выше, изменению подлежат только блоки, связанные с преобразованием вектора В. В нашем случае одновременно будет преобразовываться k векто-

ров Еm, 1 ≤ k m.

Схемы алгоритмов решения системы линейных уравнений методом обратной матрицы приведены на рис.2.7 – 2.10.

26

3. Решение систем линейных уравнений итерационными методами

Итерационные методы позволяют получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов C(0), C(1), …, C(k). Процесс получения элементов такой последовательности носит итерационный (повторяющийся) характер [4].

Эффективность применения таких методов зависит от удачного выбора начального вектора C(0) и быстроты сходимости процесса.

3.1. Указания по использованию

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

Полагая, что в системе уравнений (1.7) все диагональные элемен-

ты отличны от нуля, то есть aii ≠ 0 (i = 1, 2, …, m), выразим C1 через первое уравнение системы, C2 через второе уравнение и т.д. В ре-

зультате получим новую систему, эквивалентную системе (1.7):

 

C =

 

b1

-

 

a12

 

C -

a13

 

C - -...

 

a1m

 

C

 

 

a

 

 

a

 

 

 

 

1

 

 

 

 

a

 

 

 

2

 

3

 

 

 

a

m

 

 

 

 

 

11

11

 

 

 

11

 

 

11

 

 

 

 

 

 

C =

 

b2

 

-

a21

 

C

-

a23

 

C

...- -

a2m

C

 

 

 

 

 

 

 

 

a

 

 

 

 

2

 

a

 

 

 

a

 

 

 

1

 

3

 

 

 

a

m

 

 

 

 

 

22

22

 

 

 

22

 

 

22

 

 

 

 

 

 

.........................................................

 

C

=

bm

 

-

am1

C

 

 

-

am2

C -...-

am,m-1

C

.

a

 

a

 

 

 

 

m

 

 

 

1

 

a

2

 

 

 

a

 

m-1

 

 

 

mm

 

 

 

 

mm

 

 

 

 

mm

 

 

 

 

 

mm

 

 

 

Обозначим bi / aii = βi; – aij / aii = αij, где i, j = 1, 2,..., m. В этом случае система (3.1) принимает вид

C1 = β1 + α12 C2 + α13 C3 + ... + α1m Cm

C2 = β2 + α21 C1 + α23 C3 + ... + α2m Cm

Cm = βm + αm1 C1 + αm2 C2 + ... + αm m−1 Cm−1 .

Введем обозначения

 

 

 

 

 

 

 

 

 

é

α11

α12

...

 

 

ù

é

β1

ù

ê

α1m ú

ê

ú

ê

α

21

α

22

...

α

 

ú

ê

β

ú

α = ê

 

 

 

 

m

ú

β = ê

2

ú .

ê

 

 

 

 

...

...

ú

ê

 

ú

ê ... ...

ú

ê

... ú

ê

αm1

αm2

...

 

 

ú

ê

 

ú

ê

αmmú

êβmú

ë

 

 

 

 

 

 

 

û

ë

 

û

(3.1)

(3.2)

27

Отметим, что в данном случае αii = 0 (i = 1, 2,..., m). Тогда система может быть записана в матричной форме

или

é

C

ù

é

β

ù

 

ê

 

1

ú

ê

 

1

ú

 

êC

2

ú

ê

β

ú

+

ê

 

ú

= ê

 

2

ú

ê

 

 

ú

ê

 

 

ú

 

ê ...

ú

ê

...ú

 

êC

 

ú

êβ

 

ú

 

ê

m

ú

ê

 

mú

 

ë

 

 

û

ë

 

 

û

 

 

 

 

 

C = b + a × C

 

 

 

 

 

 

 

 

é

α

 

α

 

...

α

 

ù

 

é

C

ù

 

ê

 

11

 

12

 

 

1m ú

 

ê

1

ú

 

ê

α

21

α

22

...

α

 

ú

´

ê

C

ú

 

ê

 

 

 

 

 

 

 

m ú

ê

2

ú .

 

ê

 

 

 

...

...

...

ú

 

ê

 

ú

 

ê ...

ú

 

ê ...

ú

 

ê

α

 

 

α

 

 

...

α

 

 

ú

 

êC

ú

(3.3)

ë

 

m1

 

m2

 

 

 

 

û

 

ë

 

û

ê

 

 

 

 

mmú

 

ê

mú

 

Условия сходимости итерационного процесса решения системы линейных уравнений

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

m

m

å| αij | <1, i=1, ..., m) èëè

å| αij | <1, j=1, ..., m). (3.4)

j=1

i=1

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

 

 

 

m

 

 

 

 

 

 

||α||

= max

å

α

ij

<1,

1

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

или

 

 

 

m

 

 

 

 

 

 

||α||

= max

å

α

ij

<1,

2

 

 

 

 

 

или

 

 

j=1

 

 

 

 

 

m m

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

||α|| =

åå

α

ij

 

< 1.

3

 

 

 

 

 

 

i=1j=1

 

 

 

 

 

 

(3.5)

 

 

 

 

 

 

 

 

 

 

28

Условия (3.5) как достаточные, предъявляют завышенные требования к матрице α, поэтому в некоторых случаях сходимость обеспечивается, если даже || α ||³1.

Условия сходимости также выполняются, если в матрице A диагональные элементы преобладают, то есть

m

 

| αii | ³å | αij | .

(3.6)

j¹i

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

Замечание. Для итерационного метода Зейделя достаточно, чтобы хотя бы для одного i неравенство было строгим.

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

Схема алгоритма проверки условия сходимости итерационного процесса приведена на рис. 3.1.

В схеме алгоритма использованы следующие обозначения:

Ad – переменная, в которую записываются значения диагональных коэффициентов матрицы A.

Sd – переменная, в которой накапливается сумма остальных элементов i-й строки матрицы A.

Flag – переменная, которой первоначально присваивается значение ноль. В случае если для какой-либо строки выполняется неравенство (3.6) значение этой переменной увеличивается на единицу.

Если по окончании цикла по i значение переменной Flag = m, переменной Key присваивается значение ноль. Это означает, что итерационный процесс сходится и можно использовать соответствующий метод решения системы линейных уравнений. В противном случае (Flag m) переменной Key присваивается значение 1. В этом случае итерационный процесс расходится, работа программы останавливается и необходимо, либо использовать прямые методы решения системы уравнений, либо преобразовать имеющуюся систему к виду, обеспечивающему сходимость итерационного процесса. С методами преобразования можно ознакомиться в [5].

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

Пусть С – вектор точных значений неизвестных (корней) системы линейных уравнений (3.3), а С(k) – вектор k–x приближений к этим

29

Начало

Flag = 0

i = 0…m–1

Ad = |Aii|

Sd = 0

j = 0…m–1

Нет

j i

Да

Sd = Sd+|Aij|

j

Нет

Ad > Sd

Да

Flag = Flag+1

i

Нет

Flag = m

Да

Key = 0

 

Key = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

Присвоение переменной Flag первоначального значения

Запись значений диагональных элементов матрицы A в переменную Ad

Начало цикла определения суммы элементов i–й строки матрицы A без диагонального элемента

Конец цикла по j

Сравнение суммы элементов строки матрицы A (без диагонального элемента) со значением диагонального элемента.

Определение количества превышений.

Вычисление условия сходимости итерационного процесса

Рис.3.1. Схема алгоритма проверки условия сходимости интерационного процесса

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

|| С С(k)|| ≤ e

(3.7)

,

 

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

|| C-C(k) ||£|| α || x(k+1)

|| β || ,

(3.8)

1-|| α ||

 

 

30