Surgen muchas preguntas. ¿Cuál es el tamaño de su sistema lineal? ¿Qué herramientas utiliza para resolver el problema? ¿Cuál es su modelo? ¿Es la matriz del sistema fija para cada conjunto de mediciones?
Las respuestas forzarán la respuesta por diferentes caminos. En general, si estás escribiendo un programa de ordenador, llamarás a una biblioteca como LAPACK, que tiene bonitas rutinas para resolver el problema de mínimos cuadrados.
1.) El usuario @Shiyue ha señalado que hay formas rápidas de calcular $\mathbf{A}^{+}$ que no implican la SVD. ¿Cuál es la mejor manera de calcular el pseudoinverso de una matriz?
En el cálculo numérico, es un pecado capital para calcular la inversa de la matriz. En su lugar se calcula el vector solución. solución.
Por favor, lee sobre álgebra lineal numérica para no perder un verano reinventando la rueda. Este foro es un gran lugar para seguir tu progreso. Escribir código para entender el cálculo es una práctica excelente. El mundo necesita más gente que entienda los algoritmos.
2.) Gran pregunta. Recuerda siempre que el ajuste por mínimos cuadrados es el mejor ajuste. No hay garantía de que sea un buen ajuste.
Se puede aplicar el modelo equivocado a los datos y obtener una coincidencia pésima, pero una optimización matemática.
Estos posts abordan la cuestión con un poco más de profundidad: Mínimos cuadrados Sensibilidad a los datos , ¿Qué parámetros pueden utilizarse para saber si un ajuste por mínimos cuadrados está "bien ajustado"? . El resultado es que se aprovecha la potencia del ajuste por mínimos cuadrados, que proporciona información cuantitativa sobre la calidad del ajuste. En otras palabras, calcular los errores asociados al cálculo de los parámetros libres. Algo así como $$ a_{k} \pm \sigma_{k}, \ k = 1, n $$
Si publica su modelo, será una cuestión menor calcular la forma de estos términos de error.
En respuesta a la pregunta editada: Sistema lineal
Dada una matriz de sistema de rango completo de columnas $\mathbf{B}\in\mathbb{C}^{m\times 6}_{6}$ y un vector de datos $S\in\mathbb{C}^{m}$ el vector solución es $D\in\mathbb{C}^{6}$ . El sistema lineal es $$ \mathbf{B}D=-S \tag{1} $$ Por construcción, el problema está sobredeterminado, es decir $m>6$ .
Problema de mínimos cuadrados
El problema de mínimos cuadrados se define como $$ D_{LS} = \left\{ D \in \mathbb{C}^{6} \colon \lVert \mathbf{B}D + S \rVert^{2}_{2} \text{ is minimized} \right\} \tag{2} $$
Solución de mínimos cuadrados
La solución del problema de mínimos cuadrados en $(2)$ es $$ D_{LS} = \mathbf{B}^{+}S + \underbrace{\left( \mathbf{I}_{6} - \mathbf{B}^{+}\mathbf{B} \right)}_{=0\text{ when }m\ge 6} C, \qquad C\in\mathbb{C}^{6} $$ Defina el error residual como en $(2)$ ; $$ r = \mathbf{B}D + S $$ El error total es entonces $r\cdot r = r^{2}$ .
Propagación de errores
Las mediciones no son perfectas y tenemos que cuantificar cómo se propagan estos errores a la solución.
Refundamos $(1)$ en términos de las ecuaciones normales $$ \mathbf{B}^{*} \mathbf{B} D = -\mathbf{B}^{*} S \tag{3} $$ Este es ahora un sistema cuadrado que podrías resolver con herramientas como la eliminación gaussiana o $\mathbf{LU}$ descomposición. La solución se representa como $$ D = - \left( \underbrace{\mathbf{B}^{*} \mathbf{B}}_{\alpha} \right)^{-1} \mathbf{B}^{*} S $$ La matriz $\alpha$ se denomina matriz de curvatura. Los elementos diagonales de la inversa de esta matriz son $$ \epsilon_{k} = \alpha^{-1}_{kk}, \quad k = 1, 6 $$ El otro ingrediente es la desviación estándar de los padres, aproximada como $$ s^{2} = \frac{r^{2}}{m-6}. $$ Observe que este factor refleja la calidad general del ajuste.
Finalmente, la incertidumbre en los parámetros de ajuste es $$ \sigma_{k} = \sqrt{s^{2} \epsilon} $$ La respuesta podría citarse como $$ S \pm \sigma $$
Interpretación
Esta es la medida de calidad que tan sabiamente buscó, un factor que con demasiada frecuencia se pasa por alto. Así es como encontramos nuestros dígitos significativos.
Veamos un elemento arbitrario. Si $$ S_{k} = 4.01 \pm 0.21 $$ vemos que conocemos este valor con una precisión del 5%. Si $$ S_{k} = 4.0 \pm 4.2 $$ la señal es comparable al ruido. Si se calcula $S_{k}= 0.001$ y $\sigma_{k} = 0.11$ , usted citaría $$ S_{k} = 0.00 \pm 0.11 $$ En este caso, el cálculo del valor $S_{k}$ es esencialmente un efluente.
Amplificación
1) ¿Por qué debo utilizar el método SVD para invertir la matriz y no simplemente (BB)^-1*B? ¿O tal vez no importa?
El SVD es el estándar de oro para los sistemas lineales mal condicionados, pero es muy caro computacionalmente. Las ecuaciones normales son un buen punto de partida porque se puede utilizar una herramienta más familiar como la eliminación gaussiana. Si tienes buenos datos, obtendrás una buena respuesta.
Formas "estables" de invertir una matriz
Comparación de las descomposiciones LU o QR para resolver los mínimos cuadrados
3) ¿Podría recomendarme alguna literatura básica con este tipo de cosas?
Un libro moderno y popular es Análisis matricial y álgebra lineal aplicada por Carl Meyer. Excelente desarrollo de la eliminación gaussiana y de la necesidad de maximizar los pivotes.
Un análisis más profundo del tema se encuentra en Álgebra lineal numérica por Lloyd N. Trefethen y David Bau.
La ubicuidad de los textos le asegura que obtendrá respuestas rápidas a sus preguntas a medida que trabaje con los textos.