Материал: лекция 2 ММОСУ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Решение треугольной системы осуществляется путем обратной подстановки k=n, n-1, …, 1.

 

 

 

n

k 1

 

k 1

 

 

 

 

xk

k-1

 

 

 

.

 

 

 

bk

akj

xj

akk

 

 

 

 

 

 

j k 1

 

 

 

 

 

 

 

При

реализации

алгоритма

в виде программы элементы

a k

и

b k

 

 

 

 

 

 

 

 

ij

 

i

обычно хранят на месте исходных элементов aij , bi , поэтому их прежние значения будут изменены. Приведем программу, реализующую алгоритм решения СЛАУ методом исключения.

LU-факторизация матриц

Впроцессе исключения по Гауссу исходная матрица СЛАУ А приведена

кверхней треугольной матрице

u11

u12

u1n

 

 

 

u22

 

 

 

0

u2n

 

U

 

 

 

,

 

 

 

 

 

 

 

 

0

0

 

 

 

unn

 

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

1

0

 

0

 

 

 

 

 

 

 

l21

1

 

0

 

L

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

ln2

 

1

 

ln1

 

Можно показать, что

A LU ,

то есть в процессе решения СЛАУ с использованием метода исключения получено разложение (факторизация) исходной матрицы на нижнетреугольную с единичной главной диагональю и верхнетреугольную.

Если проведена LU-факторизация матрицы СЛАУ Ax b, то решение системы может быть получено следующим образом. Исходную систему перепишем в виде

LUx b.

Введем обозначение Ux y, тогда исходная система сведется к двум СЛАУ

Ly b, Ux y,

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

Решение первой системы -

1

 

0

0 y1

 

 

b1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l21

 

1

0

y2

 

 

b2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

1

 

 

 

 

l

n1

n2

y

n

 

 

b

 

 

 

 

 

 

 

 

 

n

 

легко вычисляется прямой подстановкой

y1 b1,

y2 b2 l21y1,

yn bn ln1y1 ln,n 1yn 1,

или, в общем виде:

k 1

yk bk lki yi i 1

После того как получен вектор у, можно решить вторую треугольную систему

u11

u12

u1n x1

 

 

y1

 

 

 

 

 

 

 

 

 

 

 

 

0

u22 u2n x2

 

 

y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

unn xn

 

 

yn

 

путем обратной подстановки

xn u1nn yn ,

xn 1

 

 

1

 

yn 1 un 1,nxn ,

 

 

 

 

 

un 1,n 1

 

 

 

 

 

 

 

 

1

 

 

 

n

 

 

 

 

 

 

 

 

x1 u

 

y1

u1jxj .

 

11

 

j 2

 

или, в общем виде:

xk u1kk yk j nk u1kjxj , k n,n 1, ,1.

Таким образом, применение LU-факторизации сводит решение исходной СЛАУ к последовательному решению двух СЛАУ c треугольными матрицами. Если требуется решить несколько СЛАУ о одной и той же матрицей А и различными правыми частями

Ax b ; x

,b Rn,

i 1, ,n,

i i i

i

 

то предварительная LU-факторизация матрицы системы А позволяет существенно сократить трудоемкость решения n систем, сводя задачу к решению 2n СЛАУ с треугольными матрицами

Lyi bi ,

Uxi yi .

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

Определитель матрицы А является побочным продуктом LU-факторизации матрицы А, действительно:

det A det LU det L det U .

Второе равенство получено на основании того, что определитель произведения матриц равен произведению определителей сомножителей.

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

 

 

1

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l21

1

 

0

 

1,

 

 

 

 

 

det

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln2

 

1

 

 

 

 

 

 

 

 

 

ln1

 

 

 

 

 

 

 

 

 

u11

u12

u1n

 

 

 

 

 

 

 

 

 

u22

 

 

 

 

 

 

 

 

 

 

det

 

0

u2n

u

u

 

u

 

,

 

 

 

 

 

 

 

22

nn

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

unn

 

 

 

 

 

 

следовательно

det A in 1uii .

В MATLAB реализована функция вычисления определителя матрицы

D = det(A).

Перейдем к рассмотрению вопроса о вычислений обратной матрицы. По определению обратная матрица X удовлетворяет матричному алгебраическому уравнению

AX I

Представим матрицы X и I в виде наборов их столбцов

X x | x

2

| | x

n

;

x

Rn;

1

 

 

 

 

 

i

 

I e |e

2

| |e

n

;

 

e Rn;

1

 

 

 

 

 

i

 

где ei – вектор, который имеет все нулевые элементы за исключением i-ого, равного 1. Тогда матричное уравнение для обратной матрицы можно переписать в виде

A x1 | x2 | | xn e1 |e2 | |en ,

то есть представляет собой n СЛАУ вида

Axi ei, i 1, ,n.

Таким образом, для вычисления обратной матрицы необходимо решить n СЛАУ и составить из полученных решений матрицу. Учитывая, что все n СЛАУ имеют одинаковую матрицу А, целесообразно произвести ее LUфакторизацию и свести задачу вычисления обратной матрицы к решению 2n СЛАУ с треугольными матрицами

Lyi ei,

 

Uxi yi,

i 1, ,n.

Обусловленность СЛАУ. Анализ ошибок решения СЛАУ

Определение: СЛАУ плохо обусловлена, если малые изменения элементов матрицы А или вектора b приводят к большим изменениям в решении.

Рассмотрим пример плохо обусловленной СЛАУ:

0,8x1 0,4x2 1, 0,79x1 0,41x2 .

Решения этой системы x0 для 0 и x для малого значения будут сильно отличаться. Это связано с тем, что на плоскости x1x2 уравнения системы задают “почти” параллельные прямые 1 и 2 (рис. 2.1). Следовательно, уравнения являются “почти” линейнозависимыми, и при их малом изменении относительно друг друга точка пересечения прямых будет значительно меняться.