linalg::factorQRQR-разложение матрицы
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
linalg::factorQR(A)
linalg::factorQR(A) вычисляет QR-разложение m ×n матричный A, т.е. разложение A в m ×m унитарная матрица Q и m ×n верхняя треугольная матрица R, таким образом что Q R = A.
linalg::factorQR ортонормализация Грамма-Schmidt использования, чтобы вычислить разложение.
Для сингулярной или неквадратной матрицы A QR-разложение A не уникально.
Столбцы Q формируют ортонормированный базис относительно скалярного произведения двух векторов, заданных linalg::scalarProduct, и 2-норма двух векторов (см. метод "norm" из доменного конструктора Dom::Matrix).
Если звонок компонента A не задает метод "conjugate", затем факторный Q является ортогональным вместо унитарного.
Если столбцы A не может быть ортонормирован затем FAIL возвращен.
Если A матрица по доменному Dom::Float и расчеты основаны на стандартном скалярном произведении, затем использовании соответствующей функции от числовой библиотеки (numeric::factorQR) рекомендуется.
Даже если A задан по действительному или комплексным числам вызов numeric::factorQR с опцией Symbolic рекомендуется для лучшего КПД.
Звонок компонента матричного A должно быть поле, т.е. область категории Cat::Field.
Мы вычисляем QR-разложение действительной матрицы:
A := Dom::Matrix(Dom::Real)( [[2, -3, -1], [1, 1, -1], [0, 1, -1]] )

QR := linalg::factorQR(A)

Ортогональный матричный Q является первым элементом und верхняя треугольная матрица, R является вторым элементом списка QR. Продукт этих двух матриц равен входной матрице A:
QR[1] * QR[2]

QR-разложение 3×2 матрица:
B := Dom::Matrix(Dom::Real)( [[2, -3], [1, 2], [2, 3]] )

уступает 3×3 ортогональная матрица и 3×2 верхняя треугольная матрица:
QR := linalg::factorQR(B)

QR[1] * QR[2]

Для этого примера мы можем вызвать numeric::factorQR(B, Symbolic) вместо этого, который в целом быстрее, чем linalg::factorQR:
QR := numeric::factorQR(B, Symbolic)

|
Матрица A области категории |
Перечислите [Q, R] из этих двух матриц Q и R (того же доменного типа как A), или значение FAIL.
QR-разложение может использоваться, чтобы сгенерировать решение для наименьшего квадрата сверхрешительной системы линейных уравнений. Если
, то
может быть решен через обратную подстановку.