una triangulares tipos resueltos rectangular propiedades matriz matrices inversa inferior escalar ejercicios ejemplo calculadora c++ math matrix linear-algebra triangular

c++ - triangulares - matriz triangular inferior



¿Hay una forma directa de invertir una matriz triangular(superior o inferior)? (5)

Wow, eso es prácticamente la mitad de los contenidos de un curso de análisis numérico. Los algoritmos estándar lo harán, y hay un montón de código enlatado aquí . La fuente fundamental para este y para la mayoría de los demás problemas de análisis numérico habituales son las recetas numéricas .

Estoy tratando de implementar algunas operaciones básicas de álgebra lineal y una de estas operaciones es la inversión de una matriz triangular (superior y / o inferior). ¿Hay un algoritmo fácil y estable para hacer eso?

Gracias.


Dada una matriz triangular inferior L, la sustitución inversa le permite resolver el sistema L x = b rápidamente para cualquier lado derecho b.

Para invertir L, puede resolver este sistema para lados derechos e1 = (1,0, ..., 0), e2 = (0,1, ..., 0), ..., en = (0 , 0, ..., 1) y combina los vectores de solución resultantes en una única matriz (necesariamente triangular inferior).

Si está interesado en una solución cerrada, los elementos diagonales de la inversa son las inversas de los elementos diagonales originales, y la fórmula para el resto de los elementos de la inversa se vuelve cada vez más complicada a medida que se aleja de la diagonal .


Si está hablando de reales de precisión simple, eche un vistazo al código fuente de las rutinas de LAPACK STRTRI y STRTI2 .


No lo inviertes si puedes. Es uno de los mandamientos básicos del álgebra lineal numérica.

Es mucho más rápido y numéricamente más estable para mantener la matriz L en memoria y calcular

inv(L)b con sustitución de fondo cada vez que necesite hacer algo más con inv (L).

Tenga en cuenta que el algoritmo habitual para invertirlo requiere resolver los sistemas

inv(L)[1 0 0 ...], inv(L)[0 1 0 ....], inv(L)[0 0 1 ....] y así sucesivamente, así que verán que es mucho más fácil no invertirlo en absoluto.


Sí, use la sustitución de regreso . Un algoritmo estándar para invertir una matriz es encontrar su descomposición LU (descomposición en una matriz triangular inferior y una triangular superior), usar la sustitución posterior en las piezas triangulares, y luego combinar los resultados para obtener la inversa de la matriz original.