Решение треугольной системы осуществляется путем обратной подстановки 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). Следовательно, уравнения являются “почти” линейнозависимыми, и при их малом изменении относительно друг друга точка пересечения прямых будет значительно меняться.