Вычислительные методы линейной алгебры. Горбаченко В.И - 12 стр.

UptoLike

12
матрицы, P матрица перестановок строк. Матрица перестановок учитывает
возможные перестановки строк матрицы
A в ходе треугольного разложения
(1.1). Матрица перестановок получается из единичной матрицы перестанов-
кой соответствующих строк. Перестановка строк эквивалентна умножению
системы (1.2) слева на матрицу перестановок
P
=
PAx Pb .
В результате разложения получаем
=
PA LU , (1.5)
а вместо систем (1.3) и (1.4) надо решать системы
=
L
y
Pb , (1.6)
=
Ux
y
.
Внимание! В системе MATLAB используются иные алгоритмы реализа-
ции LU-разложения, QR-разложения и разложения Холецкого, чем простей-
шие алгоритмы, приведенные в данном пособии. Поэтому результаты, полу-
ченные применением функций MATLAB и программированием ранее опи-
санных методов, в общем случае не совпадают.
Рассмотрим пример.
>> A=[1 4 1 3; 0 -1 3 -1; 3 1 0 2; 1 -2 5 1]
A =
1 4 1 3
0 -1 3 -1
3 1 0 2
1 -2 5 1
>> b=[1;2;3;4]
b =
1
2
3
4
>> [L,U,P]=lu(A)
L =
1.0000 0 0 0
0.3333 1.0000 0 0
0.3333 -0.6364 1.0000 0
0 -0.2727 0.5806 1.0000
U =
3.0000 1.0000 0 2.0000
0 3.6667 1.0000 2.3333
0 0 5.6364 1.8182
0 0 0 -1.4194
матрицы, P – матрица перестановок строк. Матрица перестановок учитывает
возможные перестановки строк матрицы A в ходе треугольного разложения
(1.1). Матрица перестановок получается из единичной матрицы перестанов-
кой соответствующих строк. Перестановка строк эквивалентна умножению
системы (1.2) слева на матрицу перестановок P
                                 PAx = Pb .
В результате разложения получаем
                                 PA = LU ,                        (1.5)
а вместо систем (1.3) и (1.4) надо решать системы
                                   Ly = Pb ,                      (1.6)
                                   Ux = y .
    Внимание! В системе MATLAB используются иные алгоритмы реализа-
ции LU-разложения, QR-разложения и разложения Холецкого, чем простей-
шие алгоритмы, приведенные в данном пособии. Поэтому результаты, полу-
ченные применением функций MATLAB и программированием ранее опи-
санных методов, в общем случае не совпадают.
    Рассмотрим пример.
>> A=[1 4 1 3; 0 -1 3 -1; 3 1 0 2; 1 -2 5 1]
A =
     1     4     1     3
     0    -1     3    -1
     3     1     0     2
     1    -2     5     1
>> b=[1;2;3;4]
b =
     1
     2
     3
     4
>> [L,U,P]=lu(A)
L =
    1.0000         0         0         0
    0.3333    1.0000         0         0
    0.3333   -0.6364    1.0000         0
         0   -0.2727    0.5806    1.0000
U =
    3.0000    1.0000         0    2.0000
         0    3.6667    1.0000    2.3333
         0         0    5.6364    1.8182
         0         0         0   -1.4194
                                                                     12