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)

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