Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ - курсовик.doc
Скачиваний:
9
Добавлен:
09.12.2018
Размер:
515.07 Кб
Скачать

Вычисление обратной матрицы методом Гаусса

Один из методов решения системы линейных алгебраических уравнений (2.13), записываемой в матричной форме A X=B, связан с использованием обратной матрицы А1 [4, с.81–89]. В этом случае решение системы уравнений получается в виде

X = А1 B,

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

Пусть А – квадратная матрица размером n n c ненулевым определителем det A 0. Тогда существует обратная матрица R = А-1, определяемая условием A R=E, где Е – единичная матрица, все элементы главной диагонали которой равны 1, а все элементы вне этой диагонали – 0, Е=[E1, …, En], где Еj – вектор-столбец. Матрица R – квадратная матрица размером n n

где Rj – вектор-столбец.

- 15 -

Цикл исключения переменной с номером i

Обращение к алгоритму рис. 5

Обращение к алгоритму рис. 6

Цикл исключения переменной X[i] из уравнения с номером k

Обращение к алгоритму рис. 7

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

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

Рис. 4. Схема алгоритма прямого хода метода Гаусса

- 16 -

Присвоение переменным big и num исходных значений

Цикл перебора и сравнения коэффициентов системы в столбце с номером i

Если значение модуля коэффициента больше текущего максимума,

то

изменить текущий максимум big и номер num соответствующей строки

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

Проверка условия вырожденности матрицы системы

Нет

Да

Нет

да

Да

Рис. 5. Схема алгоритма определения ведущего элемента

- 17 -

В случае «Нет» уравнение i ведущее и перестановка не нужна

Цикл перестановки j-х элементов уравнений с номерами i и num

Запись j-го элемента из уравнения i во временную переменную temp

Запись j-го элемента из уравнения num на место элемента из уравнения i

Запись элемента из временной переменой на место элемента уравнения num

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

Перестановка правых частей уравнений с номерами i и num

Нет

Да

Рис. 6. Схема алгоритма перестановки уравнений

- 18 -

Определение множителя Q, на который умножается ведущее уравнение

Коэффициент при неизвестном X[i] в уравнении с номером k должен быть равен нулю

Цикл вычисления коэффициентов при неизвестных X[j] в уравнении с номером k

Новое значение элемента A[k, j]

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

Расчет правой части уравнения

Рис. 7. Схема алгоритма расчета коэффициентов уравнения

- 19 -

Определение последнего неизвестного X[n]

Цикл последовательного определения неизвестных X[i], начиная с X[n1] и кончая X[1]

Начальное значение суммы

Цикл определения суммы

Новое значение суммы

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

Определение неизвестного X[i]

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

Рис. 8. Схема алгоритма обратного хода метода Гаусса

- 20 -

Рассмотрим ее первый столбец R1=(r11, r21, …,rn1)T, где Т означает транспонирование. Нетрудно проверить, что произведение А·R1 равно первому столбцу Е1 = (1, 0,, 0)Т единичной матрицы Е, т.е. вектор R1 можно рассматривать как решение системы уравнений А R1=E1. Аналогично m-й столбец матрицы R, Rm, 1 m n, представляет собой решение уравнения A Rm=Em, где Еm=(0,…, 1,…,0)Tm-й столбец единичной матрицы Е (m-й элемент его равен 1, остальные равны нулю).

Таким образом, обратная матрица R (точнее, ее столбцы) представляют собой набор из решений n систем линейных уравнений

A Rm = Em, 1 m n.

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

Так, например, схема алгоритма рис. 7 превращается в схему рис. 9, где Е – двумерная матрица размером nn. Начальное ее значение совпадает с единичной матрицей: Е[i, j]=0, если i j и E [i, j] = 1 для i=j, 1 i n. А далее ее элементы пересчитываются по формулам, аналогичным формулам пересчета вектора (2.21). Схема алгоритма обратного хода (см. рис. 8) также претерпит изменение (рис. 10), так как решением системы является теперь не один вектор, а n векторов, т.е. матрица R.

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

Эти методы позволяют получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов Х(0), Х(1),…, Х(k). Процесс получения элементов такой последовательности носит итерационный (повторяющийся) характер [3, c.97100].

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

Рассмотрим два итерационных метода:

  1. метод последовательных приближений;

  2. метод Зейделя.

- 21 -

Определение множителя Q, на

который умножается ведущее уравнение для исключения неизвестного X[i]

Обнуление элементов ниже главной диагонали

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

Новое значение коэффициента A[i,j]

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

Цикл расчета правых частей (матриц Е)

Новые значения коэффициентов E[k,m]

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

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

- 22 -

Цикл определения последней строки неизвестных R[n, m]

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

Цикл определения элемента R[i, m]

Начальное значение переменной суммы sum

Цикл определения суммы

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

Вычисление элемента R[i, m]

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

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

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

- 23 -

Указания по использованию метода последовательных приближений

Полагая, что в системе уравнений (2.13) все диагональные элементы отличны от нуля, т.е. aii 0 (i=1, 2,…, n), выразим x1 через первое уравнение системы, x2 через второе уравнение и т.д. В результате получим новую систему, эквивалентную системе (2.13):

(2.23)

Обозначим bi / aii = i ; aij / aii = ij , где i, j=1, 2, ..., n.

Тогда система (2.23) принимает вид

x1 = 1 + 12 x2 + 13 x3 +...+ 1n xn

x2 = 2 + 21 x1 + 23 x3 +...+ 2n xn (2.24)

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

xn = n + n1 x1 + n2 x2 +...+ n n1 xn1 .

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

11 12 . . . 1n 1

21 22 . . . 2n 2

= ……………… , = … .

n1 n2 . . . nn n

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

X = + X

или

x1 1 11 12 . . . 1n x1

x2 2 21 22 . . . 2n x2 (2.25)

= + . . . . . . . . . . . . … .

xn n n1 n2 . . . nn xn

- 24 -

Решим систему (2.25) методом последовательных приближений. Для этого за нулевое приближение X(0) примем столбец свободных членов.

x1(0) 1

x2(0) 2 или X(0)= . (2.26)

. .. = .. .

xn(0) n

Подставляя значения нулевого приближения в правую часть системы (2.25) , можно получить первое приближение

x1(1) 1 11 12 . . . 1n x1(0)

x2(1) 1 21 22 . . . 2n x2(0)

= + . . . . . . . . . . . .

xn(1) n n1 n2 . . . nn xn(0)

или X(1)= + X(0) .

Подставляя значения первого приближения в правую часть системы (2.25), можно получить второе приближение

X(2) = + X(1), и т.д.,

и любое (k+1)-е приближение вычисляется по формуле

X(k+1) = + X(k). (2.27)

Если последовательность приближений X(0), X(1), ..., X(k) имеет предел

X = lim X(k) , то этот предел и является решением системы (2.13), поскольку

k

по свойству предела lim X (k+1) = + lim X(k),

k

т.е. X = + X .

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

решения системы линейных уравнений

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

- 25 -

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

n n

|ij | 1 (i=1, 2, ..., n) или |ij | 1 (j=1, ..., n) (2.28)

j=1 i=1

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

n

|| ||1 = max |ij | 1 , (2.29)

j i=1

n

или || ||2 = max |ij | 1 ,

i j=1

n n

или || ||3 = | i j |2 1 .

i=1 j=1

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

уравнений методом последовательных приближений

Пусть X – вектор точных значений неизвестных (корней) системы линейных уравнений (2.25) , а X(k) – вектор k-x приближений к этим точным (истинным) значениям. Тогда для оценки погрешности метода последовательных приближений, где точность вычислений:

|| X – X(k)|| , (2.30)

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

|| X – X(k) || ( || || k+1 / (1 – || || ) ) || || , (2.31)

где || || – одна из трех норм (2.29) матрицы коэффициентов исходной системы уравнений;

|| || – та же норма вектора свободных членов этой системы;

k – число итераций, необходимых для достижения заданной точности.

На практике при заданном значении часто в качестве критерия окончания итерационного процесса вычисления значений (x1, x2 , ..., xn) вектора X(k) используется неравенство

- 26 -

n

|xi (k+1) – xi (k) | < . (2.32)

i=1

Решение системы линейных алгебраических уравнений методом Зейделя

Этот метод решения системы линейных уравнений является модификацией метода последовательных приближений. А именно, при вычислении (к+1)-го приближения неизвестного xi используется уже найденные ранее (к+1)-е приближения неизвестных x1, x2 , ..., xi-1.

Пусть дана система (2.24). Прежде всего необходимо задать значения начальных (нулевых) приближений корней x1(0), x2(0) , ..., xn(0). Если отсутствует какая-нибудь информация об этих значениях, то их можно принять равными свободным членам (2.26) системы или даже положить равными нулю. Выбранные таким образом нулевые приближения корней подставим в первое уравнение системы (2.24) и получим первое приближение корня x1

x1(1) = β1 + α12 x2(0) + α1 3 x3(0) + … + α1 n xn(0) .