числовой::
QR-факторизация матрицы
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
numeric::factorQR(A
, options
)
numeric::factorQR(A)
возвращает факторизацию QR A = Q R матричного A.
Факторизацией QR действительного/комплексного m ×n матрица является A = Q R, где m ×m матричный Q является ортогональным/унитарным, и m ×n матричный R верхний треугольный (т.е. R ij = 0 для j <i).
По умолчанию числовая факторизация вычисляется. Матрица не должна содержать символьные объекты, которые не могут быть преобразованы в плавания. Числовые символьные выражения, такие как π, и т.д. приняты. Они будут преобразованы в плавания, если опция Symbolic
не будет использоваться.
Фактор R нормирован таким образом, что его диагональные элементы R ii с i = 1, …, min (m, n) являются действительными и неотрицательными.
Если никакие не возвращаются, тип задан с помощью опции ReturnType = d
, доменный тип факторов, Q и R зависят от типа входной матрицы A
:
Факторами плотной матрицы типа Dom::DenseMatrix()
являются плотные матрицы типа Dom::DenseMatrix()
по звонку выражений.
Для всех других матриц categoryCat::Matrix
факторы возвращены как матрицы типа Dom::Matrix()
по звонку выражений MuPAD®. Это включает входные матрицы A
типа Dom::Matrix(...)
, Dom::SquareMatrix(...)
, Dom::MatrixGroup(...)
, и т.д.
Без опции Symbolic
функция чувствительна к переменной окружения DIGITS
, который определяет числовую рабочую точность.
Мы рассматриваем квадратичную матрицу:
A := array(1..2, 1..2, [[1, 0] , [1, PI]]):
Во-первых, мы вычисляем числовую факторизацию:
[Q1, R1] := numeric::factorQR(A)
Затем, символьная факторизация вычисляется:
[Q2, R2] := numeric::factorQR(A, Symbolic)
Для последующей обработки факторы (доменного типа DOM_ARRAY
) преобразованы в элементы матричного доменного Dom::Matrix
()
:
Q1 := matrix(Q1): R1 := matrix(R1): Q2 := matrix(Q2): R2 := matrix(R2):
Теперь, перегруженные арифметические операторы +
, *
, ^
и т.д. может использоваться для дальнейших вычислений:
Q1*R1, Q2*R2
Мы наконец проверяем othogonality факторов Q1
и Q2
:
Q1 * linalg::transpose(Q1), Q2 * linalg::transpose(Q2)
delete A, Q1, R1, Q2, R2:
Мы рассматриваем неквадратную матрицу ранга 1:
A := array(1..3, 1..2, [[0, 0], [I, 1], [I, 1]]): numeric::factorQR(A, Symbolic)
В этом случае факторизация QR не уникальна. Обратите внимание на то, что числовая факторизация приводит к различным факторам:
numeric::factorQR(A)
delete A:
Мы демонстрируем различие между аппаратными плаваниями и плаваниями программного обеспечения. Для матриц неполного ранга факторизация QR не уникальна. В зависимости от опций различные результаты возвращены для следующей матрицы ранга 1:
A := matrix([[1, 1], [10^4, 10^4], [10^8, 10^8]]): [Q1, R1] := float(numeric::factorQR(A, Symbolic))
[Q2, R2] := numeric::factorQR(A, SoftwareFloats)
[Q3, R3] := numeric::factorQR(A, HardwareFloats)
Однако все факторизации удовлетворяют A = Q R численно:
norm(A - Q1*R1), norm(A - Q2*R2), norm(A - Q3*R3)
delete A, Q1, R1, Q2, R2, Q3, R3:
|
m ×n матрица доменный тип |
|
С С По сравнению с Если никакой Если результат не может быть вычислен с аппаратными плаваниями, арифметику программного обеспечения ядром MuPAD пробуют. Если текущее значение Может быть несколько причин аппаратной арифметики, чтобы перестать работать:
Если ни Если Обратите внимание на то, что Запаздывающие цифры в результатах с плавающей точкой, вычисленных с ПримечаниеДля плохих обусловленных матриц результаты, возвращенные с |
|
Предотвращает преобразование входных данных к числам с плавающей запятой. Точная арифметика используется. Эта опция заменяет Обычная арифметика для выражений MuPAD используется. При использовании этой опции матричный A может содержать символьные объекты. |
|
Отключает предупреждения Если символьные коэффициенты найдены, |
|
Опция, заданная как Возвратите Фактор Холесского как матрицу доменного типа |
Перечислите [Q, R]
с матрицами, Q
и R
возвращены. Доменный тип ортогонального/унитарного m ×m матричный Q
и верхний треугольный m ×n матричный R
зависит от типа входной матрицы A
. Компоненты Q
и R
являются действительными или комплексными плаваниями, если опция Symbolic
не используется.
Преобразования домовладельца используются, чтобы вычислить числовую факторизацию. С опцией Symbolic
используется ортонормализация Грамма-Schmidt столбцов A.
Для обратимой квадратной матрицы A факторизация QR уникальна до масштабных коэффициентов модуля 1. Нормализация R к действительным положительным диагональным элементам определяет факторизацию исключительно. Следовательно, результаты, полученные с/без опцией Symbolic
, совпадают для обратимых квадратных матриц.
Для сингулярных или неквадратных матриц факторизация не уникальна и результаты, полученные с/без опцией, Symbolic
может отличаться. Cf. Пример 2.