Los mínimos cuadrados lineales pueden resolverse mediante
0) Utilizar un solucionador de mínimos cuadrados lineales de alta calidad, basado en SVD o QR, como se describe a continuación, para mínimos cuadrados lineales sin restricciones, o basado en una versión de Programación Cuadrática u Optimización Cónica para mínimos cuadrados limitados o linealmente restringidos, como se describe a continuación. Este solucionador ya está preparado, muy probado y listo para funcionar: utilícelo.
1) SVD, que es el método más fiable y numéricamente preciso, pero también requiere más cálculo que las alternativas. En MATLAB, la solución SVD del problema de mínimos cuadrados lineales sin restricciones A*X = b es pinv(A) * b, que es muy precisa y fiable.
2) QR, que es bastante fiable y numéricamente preciso, pero no tanto como SVD, y es más rápido que SVD. En MATLAB, la solución QR del problema de mínimos cuadrados lineales sin restricciones A*X = b es A \b que es bastante preciso y fiable, excepto cuando A está mal condicionado, es decir, tiene un gran número de condiciones. A \b es más rápido de calcular que pinv(A) * b, pero no es tan fiable ni preciso.
3) Formar las ecuaciones normales (TERRIBLE desde el punto de vista de la fiabilidad y la precisión numérica, porque eleva al cuadrado el número de condición, lo cual es algo muy malo) y
3a) resolver por Factorización Cholesky (no es bueno)
3b) invertir explícitamente la matriz (HORRIBLE)
4) Resolver como un problema de programación cuadrática o de cono de segundo orden
4a) Resuelve utilizando un software de programación cuadrática de alta calidad. Esto es fiable y numéricamente preciso, pero lleva más tiempo que la SVD o la QR. Sin embargo, es fácil añadir restricciones lineales generales o limitadas, o términos de penalización o regularización lineales o cuadráticos (dos normas) a la función objetivo, y seguir resolviendo el problema con el software de programación cuadrática.
4b) Resolver como un problema cónico de segundo orden utilizando un software de optimización cónica de alta calidad. Las observaciones son las mismas que para el software de Programación Cuadrática, pero también puede añadir restricciones lineales generales o de límite y otras restricciones cónicas o términos de función objetivo, como términos de penalización o regularización en varias normas.
5) Resolver utilizando un software de optimización no lineal de propósito general de alta calidad. Esto puede seguir funcionando bien, pero en general será más lento que el software de programación cuadrática o de optimización cónica, y quizá no sea tan fiable. Sin embargo, puede ser posible incluir en la optimización por mínimos cuadrados no sólo las restricciones lineales generales y de límites, sino también las no lineales. Además, puede utilizarse para mínimos cuadrados no lineales, y si se añaden otros términos no lineales a la función objetivo.
6) Resolver utilizando pésimos algoritmos de optimización no lineal de propósito general --> NO HAGAS NUNCA ESTO.
7) Resolver utilizando EL PEOR algoritmo de optimización no lineal de propósito general que existe, es decir, el descenso de gradiente. Utilice esto sólo si quiere ver lo malo y poco fiable que puede ser un método de solución Si alguien le dice que utilice el descenso de gradiente para resolver problemas lineales de mínimos cuadrados
7 i) Aprenda sobre computación estadística de alguien que sepa algo al respecto
7 ii) Aprender la optimización de alguien que sepa algo del tema.