LU- и QR-разложения
Так называемые
LU- и QR-разложения реализуются следующими матричными функциями:
Функция
1и
выражает любую квадратную матрицу X как произведение двух треугольных матриц,
одна из которых (возможно, с перестановками) — нижняя треугольная матрица, а
другая — верхняя треугольная матрица[
В MATLAB 6 аргументом (входным аргументом)
функции lu может быть и полная прямоугольная матрица. — Примеч. ред.
]. Иногда
эту операцию называют
LR-разложением.
Для выполнения этой операции служит
следующая функция:
-
[L,U]
= lu(X) — возвращает верхнюю треугольную матрицу U и психологическую нижнюю
матрицу L (т. е. произведение нижней треугольной матрицы и матрицы перестановок),
так что X=L*U;
-
[L,U,P.]
= lu(X) — возвращает верхнюю треугольную матрицу U, нижнюю треугольную матрицу
L и сопряженную (эрмитову) матрицу матрицы перестановок Р, так что L*U =Р*Х;
-
lu(Х) —
вызванная с одним выходным параметром функция возвращает результат из подпрограмм
DGETRF (для действительных матриц) или ZGETRF (для комплексных) известного
пакета программ линейной алгебры LAPACK.
-
lu(X,
thresh) — где thresh в диапазоне [0...1] управляет центрированием в разреженных
матрицах (см. урок 12). Отдельная форма предыдущего случая. Центрирование
происходит, если элемент столбца на диагонали меньше, чем произведение thresh
и любого поддиагонального элемента. Thresh=l — значение по умолчанию. Thresh=0
задает центрирование по диагонали. Если матрица полная (не разреженная),
выводится сообщение об ошибке.
Функция
qr
выполняет
QR-разложепие
матрицы. Эта операция полезна для квадратных
и треугольных матриц. Она выполняет QR-разложение, вычисляя произведение унитарной
[
Квадратная матрица с комплексными элементами, обладающая тем свойством,
что обратная матрица ее комплексно сопряженной матрицы равна транспонированной,
т. е. (А*)''-А'. — Примеч. ред.
] матрицы и верхней треугольной матрицы.
Функция используется в следующих формах:
[
Квадратная матрица с комплексными элементами, обладающая
тем свойством, что обратная матрица ее комплексно сопряженной матрицы равна
транспонированной, т. е. (А*)''-А'. — Примеч. ред.
]
-
[Q.R]
= qr(X) — вычисляет верхнюю треугольную матрицу R того же размера,
как
и у X, и унитарную матрицу Q, так что X=Q*R;
-
[Q.R.E]
= qr(X) — вычисляет матрицу перестановок Е, верхнюю треугольную матрицу
R с убывающими по модулю диагональными элементами и унитарную матрицу Q,
так что X*E=Q*R. Матрица перестановок Е выбрана так, что abs(diag(R)) уменьшается;
-
[Q.R]
= qr(X.O) и [Q.R.E] = qr(X,0) — вычисляют
экономное
разложение, в
котором Е — вектор перестановок, так что Q*R=X(: ,Е). Матрица Е выбрана
так, что abs(diag(R)) уменьшается;
-
А = qr(X)
— возвращает результат из LAPACK. Пример:
»
C=rand(5.4)
С=
0.8381
0.5028 0.1934 0.6979
0.0196
0.7095 0.6822 0.3784
0.6813
0.4289 0.3028 0.8600
0.3795
0.3046 0.5417 0.8537
0.8318
0.1897 0.1509 0.5936
» [Q.R]=qr(C)
Q=
-0.5922-0.11140.5197
0.0743 -0.6011
-0.0139-0.9278
-0.0011 -0.34480.1420
-0.4814-0.11730.0699
0.5940 0.6299
-0.2681-0.1525-0.82680.2632
-0.3898
-0.58770.2997
-0.2036-0.67340.2643
R =
-1.4152
-0.7072 -0.5037 -1.4103
0
-0.7541 -0.7274 -0.4819
0
0 -0.3577 -0.4043
0
0 0 0.2573
0
0 0 0
-
[Q,R]
= qrdelete(Q,R, j) — изменяет Q и RTaKHM образом, чтобы пересчитать QR-разложение
матрицы А для случая, когда в ней удален
j-й
столбец (А(:, j )=[
]). Входные значения Q и R представляют QR-разложение матрицы А как результат
действия [Q. R]=qr(A)..Аргумент j определяет столбец, который должен быть
удален из матрицы А.
Примеры:
»
C=rand(3.3)
С =
0.0164
0.0576 0.7176
0.1901
0.3676 0.6927
0.5869
0.6315 0.0841
»
[Q.R]=qr(C)
Q=
-0.0265-0.2416-0.9700
-0.3080-0.92120.2378
-0.95100.3051
-0.0500
R =
-0.6171-0.7153-0.3123
0
-0.1599-0.7858
0
0 -0.5356
» [Q1.R1]=qrdelete(Q.R.2)
Q1 =
-0.02650.7459
0.6655
-0.30800.6272
-0.7153
-0.9510-0.22390.2131
R1 =
-0.6171-0.3123
0
0.9510
0
0
-
[Q.R]
= qrinsert(Q,R,j,x) — изменяет Q и R таким образом, чтобы пересчитать разложение
матрицы А для случая, когда в матрице А перед
j-м
столбцом вставлен
столбец х. Входные значения Q и R представляют QR-разложение матрицы А как
результат действия [Q,R]=qr(A). Аргумент х — вектор-столбец, который нужно
вставить в матрицу А. Аргумент j определяет столбец, перед которым будет
вставлен вектор х.
Примеры:
»
C=rand(3.3)
С =
0.1210
0.8928 0.8656
0.4508
0.2731 0.2324
0.7159
0.2548 0.8049
» [Q,R]-qr(c)
Q
=
-0.14160.9835
0.1126
-0.52750.0213
-0.8493
-0.8377-0.17970.5157
R =
-0.8546-0.4839-0.9194
0
0.8381 0.7116
0
0 0.3152
» x=[0.5.-0.3.0.2];[Q2.R2]=qrinsert(Q.R.2,x')
Q2 =
-0.14160.7995
-0.5838
-0.5275-0.5600-0.6389
-0.83770.2174
0.5010
R2 =
-0.8546-0.0801-0.4839-0.9194
0
0.6112 0.6163 0.7369
0
0 -0.5681-0.2505
Содержание раздела