linalg:: factorQR

QR-разложение матрицы

Блокноты 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, таким образом что QR = 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.

Примеры

Пример 1

Мы вычисляем 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]

Пример 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

Матрица области категории Cat::Matrix

Возвращаемые значения

Перечислите [Q, R] этих двух матриц Q и R (того же доменного типа как A), или значение FAIL.

Алгоритмы

QR-разложение может использоваться, чтобы сгенерировать решение для наименьшего квадрата сверхрешительной системы линейных уравнений. Если, то может быть решен через обратную подстановку.