donde Q es una matriz ortogonal (sus columnas son vectores unitarios ortogonales , es decir ) y R es una matriz triangular superior (también llamada matriz triangular recta). Si A es invertible , entonces la factorización es única si requerimos que los elementos diagonales de R sean positivos.
Si en cambio A es una matriz cuadrada compleja, entonces hay una descomposición A = QR donde Q es una matriz unitaria (por lo que la transpuesta conjugada ).
Si A tiene n columnas linealmente independientes , entonces las primeras n columnas de Q forman una base ortonormal para el espacio de columnas de A. De manera más general, las primeras k columnas de Q forman una base ortonormal para el tramo de las primeras k columnas de A para cualquier 1 ≤ k ≤ n . [1] El hecho de que cualquier columna k de A sólo dependa de las primeras k columnas de Q corresponde a la forma triangular de R . [1]
matriz rectangular
De manera más general, podemos factorizar una matriz A compleja de m × n , con m ≥ n , como el producto de una matriz unitaria Q de m × m y una matriz triangular superior R de m × n . Como las filas inferiores ( m − n ) de una matriz triangular superior m × n consisten enteramente en ceros, a menudo es útil dividir R , o tanto R como Q :
donde R 1 es una matriz triangular superior de n × n , 0 es una matriz cero ( m − n ) × n , Q 1 es m × n , Q 2 es m × ( m − n ) y Q 1 y Q 2 son ambos tener columnas ortogonales.
Golub y Van Loan (1996, §5.2) llaman a Q 1 R 1 la factorización QR delgada de A ; Trefethen y Bau llaman a esto factorización QR reducida . [1] Si A es de rango completo n y requerimos que los elementos diagonales de R 1 sean positivos, entonces R 1 y Q 1 son únicos, pero en general Q 2 no lo es. R 1 es entonces igual al factor triangular superior de la descomposición de Cholesky de A * A (= A T A si A es real).
Descomposiciones QL, RQ y LQ
De manera análoga, podemos definir descomposiciones QL, RQ y LQ, siendo L una matriz triangular inferior .
Ahora podemos expresar s sobre nuestra base ortonormal recién calculada:
dónde . Esto se puede escribir en forma matricial:
dónde:
y
Ejemplo
Considere la descomposición de
Recuerde que una matriz ortonormal tiene la propiedad .
Entonces, podemos calcular mediante Gram-Schmidt de la siguiente manera:
Así, tenemos
Relación con la descomposición RQ
La descomposición RQ transforma una matriz A en el producto de una matriz triangular superior R (también conocida como triangular rectángulo) y una matriz ortogonal Q. La única diferencia con la descomposición QR es el orden de estas matrices.
La descomposición QR es la ortogonalización de Gram-Schmidt de columnas de A , iniciada desde la primera columna.
La descomposición RQ es la ortogonalización de Gram-Schmidt de filas de A , comenzando desde la última fila.
Ventajas y desventajas
El proceso de Gram-Schmidt es inherentemente numéricamente inestable. Si bien la aplicación de las proyecciones tiene una atractiva analogía geométrica con la ortogonalización, la ortogonalización en sí es propensa a errores numéricos. Una ventaja significativa es la facilidad de implementación.
Usando reflexiones de cabeza de familia
Reflexión del hogar para la descomposición QR: el objetivo es encontrar una transformación lineal que cambie el vector en un vector de la misma longitud que sea colineal con . Podríamos usar una proyección ortogonal (Gram-Schmidt), pero será numéricamente inestable si los vectores y son cercanos a la ortogonalidad. En cambio, el reflejo del jefe de familia se refleja a través de la línea de puntos (elegida para dividir el ángulo entre y ). El ángulo máximo con esta transformación es de 45 grados.
Una reflexión de Householder (o transformación de Householder ) es una transformación que toma un vector y lo refleja sobre algún plano o hiperplano . Podemos usar esta operación para calcular la factorización QR de una matriz m por n con m ≥ n .
Q se puede utilizar para reflejar un vector de tal manera que todas las coordenadas menos una desaparezcan.
Sea un vector columna real arbitrario de m dimensiones tal que para un escalar α . Si el algoritmo se implementa utilizando aritmética de punto flotante , entonces α debería obtener el signo opuesto como la k -ésima coordenada de , donde será la coordenada de pivote después de la cual todas las entradas son 0 en la forma triangular superior final de la matriz A , para evitar la pérdida de significado . En el caso complejo, establezca [2]
y sustituya la transposición por transposición conjugada en la construcción de Q a continuación.
Entonces, ¿dónde está el vector [1 0 ⋯ 0] T , ||·|| es la norma euclidiana y es una matriz identidad m × m , establecida
O, si es complejo
es una matriz de Householder m -por- m , que es a la vez simétrica y ortogonal (hermitiana y unitaria en el caso complejo), y
Esto se puede utilizar para transformar gradualmente una matriz A de m por n a la forma triangular superior . Primero, multiplicamos A por la matriz de cabeza de familia Q 1 que obtenemos cuando elegimos la primera columna de la matriz para x . Esto da como resultado una matriz Q 1 A con ceros en la columna de la izquierda (excepto en la primera fila).
Esto se puede repetir para A ′ (que se obtiene de Q 1 A eliminando la primera fila y la primera columna), lo que da como resultado una matriz de cabeza de familia Q ′ 2 . Tenga en cuenta que Q ′ 2 es menor que Q 1 . Como realmente queremos que opere en Q 1 A en lugar de A ′, necesitamos expandirlo hacia la parte superior izquierda, completando un 1, o en general:
Después de iteraciones de este proceso ,
es una matriz triangular superior. Entonces, con
es una descomposición QR de .
Este método tiene mayor estabilidad numérica que el método de Gram-Schmidt anterior.
La siguiente tabla proporciona el número de operaciones en el k -ésimo paso de la descomposición QR mediante la transformación de Householder, suponiendo una matriz cuadrada con tamaño n .
Sumando estos números en los n − 1 pasos (para una matriz cuadrada de tamaño n ), la complejidad del algoritmo (en términos de multiplicaciones de coma flotante) viene dada por
Ejemplo
Calculemos la descomposición de
Primero, necesitamos encontrar una reflexión que transforme la primera columna de la matriz A , vector , en .
Ahora,
y
Aquí,
y
Por lo tanto
y , y luego
Ahora observa:
entonces ya tenemos casi una matriz triangular. Sólo necesitamos poner a cero la entrada (3, 2).
Tome el (1, 1) menor y luego aplique el proceso nuevamente para
Por el mismo método anterior, obtenemos la matriz de la transformación del Hogar
después de realizar una suma directa con 1 para asegurarse de que el siguiente paso del proceso funcione correctamente.
Ahora, encontramos
O, con cuatro dígitos decimales,
La matriz Q es ortogonal y R es triangular superior, por lo que A = QR es la descomposición QR requerida.
Ventajas y desventajas
El uso de transformaciones de Householder es inherentemente el más simple de los algoritmos de descomposición QR numéricamente estables debido al uso de reflexiones como mecanismo para producir ceros en la matriz R. Sin embargo, el algoritmo de reflexión de Householder requiere mucho ancho de banda y no es paralelizable, ya que cada reflexión que produce un nuevo elemento cero cambia la totalidad de las matrices Q y R.
Usando rotaciones dadas
Las descomposiciones QR también se pueden calcular con una serie de rotaciones de Givens . Cada rotación pone a cero un elemento en la subdiagonal de la matriz, formando la matriz R. La concatenación de todas las rotaciones de Givens forma la matriz Q ortogonal.
En la práctica, las rotaciones de Givens en realidad no se realizan construyendo una matriz completa y haciendo una multiplicación de matrices. En su lugar, se utiliza un procedimiento de rotación de Givens que realiza el equivalente a la escasa multiplicación de matrices de Givens, sin el trabajo adicional de manejar los elementos dispersos. El procedimiento de rotación de Givens es útil en situaciones en las que sólo es necesario poner a cero relativamente pocos elementos fuera de la diagonal y se paraleliza más fácilmente que las transformaciones de Householder .
Ejemplo
Calculemos la descomposición de
Primero, necesitamos formar una matriz de rotación que ponga a cero el elemento más inferior izquierdo . Formamos esta matriz usando el método de rotación de Givens y llamamos a la matriz . Primero rotaremos el vector para que apunte a lo largo del eje X. Este vector tiene un ángulo . Creamos la matriz de rotación ortogonal de Givens ,:
Y el resultado de ahora tiene un cero en el elemento.
De manera similar, podemos formar matrices dadas y , que pondrán a cero los elementos subdiagonales y , formando una matriz triangular . La matriz ortogonal se forma a partir del producto de todas las matrices de Dados . Por lo tanto , tenemos y la descomposición QR es .
Ventajas y desventajas
La descomposición QR mediante rotaciones de Givens es la más complicada de implementar, ya que el orden de las filas necesarias para explotar completamente el algoritmo no es trivial de determinar. Sin embargo, tiene una ventaja significativa en que cada nuevo elemento cero afecta solo a la fila con el elemento a poner a cero ( i ) y una fila por encima ( j ). Esto hace que el algoritmo de rotación de Givens sea más eficiente en ancho de banda y paralelizable que la técnica de reflexión de Householder.
Conexión con un determinante o un producto de valores propios.
Podemos usar la descomposición QR para encontrar el determinante de una matriz cuadrada. Supongamos que una matriz se descompone como . Entonces nosotros tenemos
se puede elegir tal que . De este modo,
donde son las entradas en la diagonal de . Además, como el determinante es igual al producto de los valores propios, tenemos
donde son valores propios de .
Podemos extender las propiedades anteriores a una matriz compleja no cuadrada introduciendo la definición de descomposición QR para matrices complejas no cuadradas y reemplazando los valores propios con valores singulares.
Comience con una descomposición QR para una matriz A no cuadrada :
donde denota la matriz cero y es una matriz unitaria.
Tenga en cuenta que los valores singulares de y son idénticos, aunque sus valores propios complejos pueden ser diferentes. Sin embargo, si A es cuadrado, entonces
De ello se deduce que la descomposición QR se puede utilizar para calcular eficientemente el producto de los valores propios o valores singulares de una matriz.
Pivotación de columnas
QR pivotado se diferencia del Gram-Schmidt ordinario en que toma la columna restante más grande al comienzo de cada nuevo paso (pivotación de columna) [3] y, por lo tanto, introduce una matriz de permutación P :
El giro de columnas es útil cuando A tiene (casi) un rango deficiente o se sospecha que lo tiene. También puede mejorar la precisión numérica. Generalmente se elige P de modo que los elementos diagonales de R no sean crecientes: . Esto se puede utilizar para encontrar el rango (numérico) de A con un costo computacional menor que una descomposición en valor singular , formando la base de los llamados algoritmos QR reveladores de rango .
Uso para la solución de problemas lineales inversos.
En comparación con la matriz inversa directa, las soluciones inversas que utilizan descomposición QR son más estables numéricamente, como lo demuestran sus números de condición reducidos . [4]
Para resolver el problema lineal indeterminado ( ) donde la matriz tiene dimensiones y rango , primero encuentre la factorización QR de la transpuesta de : , donde Q es una matriz ortogonal (es decir ), y R tiene una forma especial: . Aquí hay una matriz triangular rectángulo cuadrada, y la matriz cero tiene dimensión . Después de algo de álgebra, se puede demostrar que una solución al problema inverso se puede expresar como: donde se puede encontrar mediante eliminación gaussiana o calcular directamente mediante sustitución directa . Esta última técnica disfruta de una mayor precisión numérica y cálculos más bajos.
Para encontrar una solución al problema sobredeterminado ( ) que minimiza la norma , primero encuentre la factorización QR de : . Luego, la solución se puede expresar como , donde es una matriz que contiene las primeras columnas de la base ortonormal completa y donde es como antes. Equivalente al caso indeterminado, la sustitución hacia atrás se puede utilizar para encontrar esto de forma rápida y precisa sin invertir explícitamente . ( y, a menudo, las bibliotecas numéricas los proporcionan como una descomposición QR "económica").
^ Stoer, Josef; Bulirsch, Roland (2002), Introducción al análisis numérico (3ª ed.), Springer, pág. 225, ISBN0-387-95452-X
^ Strang, Gilbert (2019). Álgebra lineal y aprendizaje a partir de datos (1ª ed.). Wellesley: Wellesley Cambridge Press. pag. 143.ISBN978-0-692-19638-0.
^ Parker, Robert L. (1994). Teoría geofísica inversa. Princeton, Nueva Jersey: Princeton University Press. Sección 1.13. ISBN978-0-691-20683-7. OCLC 1134769155.
Cuerno, Roger A.; Johnson, Charles R. (1985), Análisis matricial , Cambridge University Press, sec. 2.8, ISBN 0-521-38632-2
Prensa, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), "Sección 2.10. Descomposición QR", Recetas numéricas: el arte de la informática científica (3.ª ed.), Nueva York: Cambridge University Press, ISBN 978-0-521-88068-8
enlaces externos
Calculadora de matrices en línea Realiza la descomposición QR de matrices.
El manual de usuario de LAPACK brinda detalles de subrutinas para calcular la descomposición QR
El manual de usuario de Mathematica brinda detalles y ejemplos de rutinas para calcular la descomposición QR
ALGLIB incluye un puerto parcial de LAPACK a C++, C#, Delphi, etc.
Eigen::QR Incluye la implementación en C++ de la descomposición QR.