Наиболее известным алгоритмом разложения матрицы на произведение ортогональной и треугольной матриц является алгоритм Грамма-Шмидта.
Вариант ортогонализации по столбцам. Суть алгоритма основана на утверждении, что всякую неособенную матрицу можно представить в виде произведения матрицы с ортогональными столбцами на верхнетреугольную матрицу с единичной диагональю либо в виде произведения ортонормальной по столбцам матрицы на обычную верхнетреугольную матрицу :
. (6.55)
Представим исходную матрицу как совокупность векторов-столбцов
,
где . .
Т.к. матрица неособенная, то векторы линейно независимы. Будем искать матрицу в виде
,
где – искомые ортогональные столбцы.
Вначале положим . Следующий вектор должен быть построен из ортогонально . Для этого вектор разложим на составляющие:
при условии . Умножая это выражение скалярно на с учетом ортогональности, получаем
Аналогично вектор раскладываем на три составляющие:
при условиях и .
Последовательно умножая это выражение скалярно на , затем на , получим
|
|
В общем виде, разложение исходных векторов на ортогональные векторы запишем
(6.56)
где .
В соответствии с матричными операциями разложение (6.56) исходной матрицы соответствует произведению ортогональной матрицы на верхнетреугольную матрицу с единичной диагональю.
Продолжая дальше процесс ортогонализации, приходим к следующей форме записи алгоритма
, (6.57)
, 6.58)
где ,
(6.59)
где . . .
В результате данного алгоритма окажутся сформированными ортогональная по столбцам матрицам и верхнетреугольная матрица с единичной диагональю.
Если необходимо получить вместо ортогональной ортонормированную матрицу (сумма квадратов элементов столбца равна ), то следует нормировать каждый текущий вектор:
, (6.60)
где . Заметим также, что скалярное произведение вектора самого на себя равно квадрату длины вектора:
. (6.61)
В случае нормировки разложение исходных векторов на ортогонормальные векторы запишется
, (6.62)
где .
В соответствии с матричными операциями разложение (6.62) исходной матрицы соответствует произведению ортонормальной матрицы на верхнетреугольную матрицу .
Процесс ортогонализации и нормировки, соответствующий разложению матрицы на ортонормальную и верхнетреугольную с учетом (6.57) – (6.59) и (6.60), можно записать соотношениями
, (6.63)
, (6.64)
где ,
, (6.65)
(6.66)
где . . . Этот процесс называется ортогонализацией Грамма-Шмидта.
Проиллюстрируем разложение матрицы на ортогональную и верхнетреугольную с единичной диагональю на простейшем примере матрицы порядка :
.
Зададимся конкретными значениями элементов матрицы
|
|
.
Согласно алгоритму, полагаем вначале
.
Тогда
После чего находим
Для определения вычисляем
Откуда
Проверяем результат разложения:
|
|
и взаимную ортогональность векторов
Правильность разложения и ортогональность векторов выполняется, однако векторы не нормированы.
Используя данный пример, рассмотрим процесс разложения матрицы на произведение ортонормальной и верхнетреугольной матриц.
Нормируем первый вектор:
Вычислим
Теперь можем найти
Вычисляем норму
и нормируем вектор
Для определения вычислим
Далее находим
Вычислим норму
и нормируем вектор
Вычислим
Проверим результат разложения
|
|
и взаимную ортогональность векторов
Обратим внимание, что значения матриц и существенно изменились в результате нормировки системы ортогональных векторов.
Вариант ортогонализации по строкам. Суть алгоритма основана на альтернативном утверждении, что всякую неособенную матрицу можно представить в виде произведения матрицы с ортогональными строками и нижнетреугольной матрицы с единичной диагональю либо в виде произведения ортонормальной по строкам матрицы и обычной нижнетреугольной матрицы :
. (6.67)
Представим исходную матрицу как совокупность векторов-строк
,
где . .
Т.к. матрица неособенная, то векторы линейно независимы. Будем искать матрицу в виде
,
где – искомые ортогональные строки.
Вначале положим . Следующий вектор должен быть построен из ортогонально . Для этого вектор разложим на составляющие:
,
где . Умножая это выражение скалярно на с учетом ортогональности, получаем
Аналогично вектор раскладываем на три составляющие:
,
при условиях и .
Последовательно умножая это выражение скалярно на , а затем на , получим
В общем виде разложение исходных векторов на ортогональные векторы запишется как
, (6.68)
где .
Матричным операциям разложения (6.68) исходной матрицы соответствует произведение нижнетреугольной матрицы с единичной диагональю на ортогональную матрицу .
Продолжая дальше процесс ортогонализации, приходим к следующей форме записи алгоритма:
, (6.69)
, (6.70)
где ,
, (6.71)
где . . .
В результате данного алгоритма окажутся сформированными ортогональная по строкам матрица и нижнетреугольная матрица с единичной диагональю.
В случае нормировки разложение исходных векторов на ортогонормальные вектора запишется как
, (6.72)
где .
В соответствии с матричными операциями разложение (6.72) исходной матрицы соответствует произведению нижнетреугольной матрицы на ортонормальную матрицу .
Процесс ортогонализации нормировки, соответствующий разложению матрицы на ортонормальную и верхнетреугольную с учетом (6.69)–(6.71) и (6.60), можно записать соотношениями
, (6.73)
, 6.74)
где ,
, (6.75)
, (6.76)
где . . . Этот процесс также соответствует ортогонализации Грамма-Шмидта.
При факторизации матрицы с целью решения линейной системы удобно рассмотреть матрицу, расширенную вектором свободных членов, в качестве ()-го столбца. В результате процесса ортогонализации на месте вектора свободных членов
или
(6.77)
окажется трансформированный вектор .