¿Cuál es la diferencia entre los diferentes tipos de enfoques de factorización matricial? ¿Cuándo se debe usar cada uno?

Realmente depende de su aplicación, desafortunadamente. Sin embargo, puedo dar algunos consejos generales.

El primer punto en su lista de verificación debe ser si la matriz que planea factorizar es cuadrada. Solo algunos métodos como QR y SVD pueden aplicarse en matrices no cuadradas. LU es definitivamente un no-no aquí.

En segundo lugar, debe tener una comprensión básica de la factorización. ¿Funciona en matrices reales? ¿O también se puede aplicar a matrices complejas? ¿La matriz debe ser simétrica? La comprensión básica lo ayudará a conocer sus (1) limitaciones y (2) la complejidad del cálculo, es decir, qué tan rápido se calcula la factorización. Esto también está relacionado con la cuestión de la precisión de estos métodos.

Algunos métodos son muy específicos para una clase de matrices, por ejemplo, la factorización de Cholesky funciona muy bien en matrices semidefinidas positivas.

Algunos métodos como la descomposición LU son solo una versión modificada de otro algoritmo bien conocido, en este caso, el método de eliminación gaussiana, por lo que las debilidades del método de eliminación gaussiana también se aplicarán a la descomposición LU. De hecho, la complejidad computacional de la LU es equivalente a la complejidad computacional de la eliminación gaussiana ([matemáticas] 2n ^ {3} / 3 [/ matemáticas]).

Personalmente, uso mucho la SVD debido a su estrecha relación con el método de análisis de componentes principales (PCA) que se usa a menudo en las estadísticas. Una vez más, la herramienta debería ajustarse al problema. En el peor de los casos, pruebe varios métodos de factorización de su problema y vea si obtiene una respuesta que tenga sentido con lo que pretende hacer.

Voy a hablar sobre el operador de barra diagonal inversa en matlab. [1] y otros idiomas. Resuelve un sistema de ecuaciones, pero muchas cosas suceden allí. Creo que respondí esto antes.

El operador de barra diagonal inversa en realidad lo resuelve primero de varias maneras, creo. Comprueba si tu matriz es positiva definida. Entonces no es así, hace un rango que revela la descomposición de LU. Luego, si el error es demasiado grave, se produce una descomposición QR. Ahora, ¿por qué elegirías una SVD porque tienes control sobre el número de condición?

Hay muchos más factores de factorización matricial no estándar. La descomposición de LU.

Si en el caso fuera positivo definitivo, sería una descomposición cholesky.

¿Por qué está haciendo todas estas cosas? La descomposición colesa es dos veces más rápida que la descomposición LU, que es dos veces más rápida que la QR o SVD.

Ahora tengo el QR se descompone aquí. [2]

La descomposición de LU no es estable hacia atrás. El QR es, también lo es el SVD. Existen matrices patológicamente malas que destruyen la precisión. Existen métodos de regularización para lidiar con el mal condicionamiento.

Las principales diferencias están cubiertas en los cálculos matriciales. [3] o incluso wikipedia. Uno puede implementar adecuadamente cualquiera de estos algoritmos en 10 minutos.

Notas al pie

[1] Resolver sistemas de ecuaciones lineales Ax = B para x

[2] Estabilidad numérica y ortogonalización por Ryan Howe en Álgebra lineal

[3] http://web.mit.edu/ehliu/Public/