числовой::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.