Estoy resolviendo un sistema usando la descomposición de valores singulares. Los valores singulares (antes de escalar) son:
1.82277e+29
1.95011e+27
1.15033e+23
1.45291e+21
4.79336e+17
7.48116e+15
8.31087e+12
1.71838e+11
5.63232e+08
2.17863e+08
9.02783e+07
1.72345e+07
1.73889e+05
8.09382e+02
2.16644e+00
He descubierto que aceptar todos los valores singulares y su contribución asociada a mi vector de solución produce malos resultados. Los escalo por el número más grande, produciendo valores singulares de:
1.0
1.06986e-02
6.31091e-07
7.97089e-09
2.62971e-12
4.10428e-14
4.55948e-17
9.42732e-19
3.08998e-21
1.19523e-21
4.95281e-22
9.45510e-23
9.53980e-25
4.44040e-27
1.18854e-29
La mejor solución solo comienza a ser mala si incluyo los dos últimos, y solo se vuelve buena alrededor del término .
Hay una fuerte caída en la precisión cuando incluyo los últimos 2 términos. ¿Porqué es eso? ¿Cuáles son los criterios para incluir / no incluir valores singulares?
Mi ecuación matricial proviene de un ajuste lineal de mínimos cuadrados donde estoy usando un conjunto de bases polinómicas para ajustar algunos datos ruidosos que creé. Estoy resolviendo el sistema sobredeterminado estándar ( matrix donde ) multiplicando cada lado ( ) por la transposición de ( ) y realizando SVD en eso.m ≫ n A ⋅ X = B A A ⊤ A X = A ⊤ X
Estoy juzgando las respuestas a mis soluciones por lo bien que se aproxima a mis datos ruidosos.
También he notado que, incluso en los ajustes "buenos", no estoy ajustando muy bien cerca de cero (mis datos oscilan entre y ). ¿Porqué es eso?10