Les voy a enseñar un curso de álgebra lineal en el otoño, y quiero motivar el tema de la matriz factorizations tales como la descomposición LU. Una pregunta natural que uno puede hacer es, ¿por qué importa esto cuando uno ya sabe cómo calcular $A^{-1}$ y se puede utilizar para solucionar $Ax=b$ sólo por la matriz-vector de la multiplicación? La respuesta estándar es que es que en la práctica uno debe (casi) nunca realmente invertir una matriz, debido a que incurren en menos de redondeo de error por backsubstituting una factorización como $LUx = b$ de realizar la multiplicación $x=A^{-1}b$.
Sin embargo, recientemente me encontré con la ponencia "¿qué tan precisa es inv(A)*b
?" por Druinsky y Toledo (2012), donde argumentan que la sabiduría recibida es engañoso, y una solución de $x_{\text{inv}}=Vx$ obtenido utilizando un aproximado inverso $V\approx A^{-1}$ es normalmente cerca de la verdad $x$ como una solución de $x_{\text{LU}}$ obtenido por backsubstitution. Así que yo no estoy tan seguro acerca de la precisión numérica como una motivación para la descomposición LU como solía ser.
Hice algunos experimentos numéricos con el azar mal condicionado matrices en Matlab, basado en Druinsky y Toledo código en Segundos, de 6 de su papel. Parece que el avance de los errores de $\|x_{\text{inv}}-x\|$ $\|x_{\text{LU}}-x\|$ eran de hecho muy similar, pero el retroceso de error $\|Ax_{\text{inv}}-b\|$ podría ser mucho más grande que la de $\|Ax_{\text{LU}}-b\|$. También trabajé un pequeño ejemplo a mano: $$\begin{align} A &= \begin{bmatrix}1.00&2.01 \\ 1.01 & 2.03\end{bmatrix} \\ &= \underbrace{\begin{bmatrix}1.00 & 2.01 \\ 0 & -1.00\times10^{-4}\end{bmatrix}}_{L}\underbrace{\begin{bmatrix}1 & 0 \\ 1.01 & 1\end{bmatrix}}_{U} \\ y= {\underbrace{\begin{bmatrix}-2.03\times10^4 & 2.01\times10^4 \\ 1.01\times10^4 & -1.00\times10^4 \end{bmatrix}}_{A^{-1}}}^{-1}, \\ b &= \begin{bmatrix}1.01 \\ 1.02\end{bmatrix}. \end{align}$$ La solución exacta es $x=[-1, 1]^T$. Computación $A^{-1}b$ con tres dígitos decimales de precisión en los intermedios de los cálculos se obtiene el resultado de la $x_{\text{inv}} = [0, 0]^T$ debido a la catastrófica de la cancelación. La misma precisión en LU backsubstitution da $x_{\text{LU}} = [1.01, 0]^T$. Ambas soluciones se diferencian claramente de la verdadera solución a $x$ por un error en el orden de $10^0$, pero $Ax_{\text{LU}}$ corresponde a $b$ a la precisión numérica mientras que $Ax_{\text{inv}}$ está totalmente apagado.
Mis preguntas son:
Es el explícito $2\times2$ ejemplo de arriba, el representante de lo que sucede en la práctica, o es un sin sentido ejemplo calculada con muy poca precisión que sólo casualmente coincide con la de otros experimentos numéricos?
Son el número de observaciones que generalmente cierto? Para hacer de este exacto, vamos a $A=LU$ y definir $V = U^{-1}*L^{-1}$, $x_{\text{inv}} = V*b$, y $x_{\text{LU}}= U^{-1}*(L^{-1}*b)$ donde $*$ denota multiplicación numéricos de redondeo de error. Es generalmente el caso de que $\|Ax_{\text{inv}}-b\|>\|Ax_{\text{LU}}-b\|$?
¿Cuáles son algunos ejemplos de aplicaciones prácticas donde forward error es más importante que atrás de error, y viceversa?