Los mínimos cuadrados lineales pueden resolverse mediante
0) Usar 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 no restringidos, o en una versión de Programación cuadrática u Optimización cónica para mínimos cuadrados limitados linealmente, como se describe a continuación. Tal solucionador está pre-enlatado, muy probado y listo para usar: úselo.
1) SVD, que es el método más confiable y numéricamente preciso, pero también requiere más computación que 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 confiable.
2) QR, que es bastante confiable 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 precisa y confiable, excepto cuando A está mal acondicionado, es decir, tiene un número de condición grande. A \ b es más rápido de calcular que pinv (A) * b, pero no es tan confiable o preciso.
3) Formando las ecuaciones normales (TERRIBLE desde el punto de vista de la fiabilidad y la precisión numérica, porque cuadra el número de condición, lo cual es algo muy malo) y
3a) resolver por factorización de Cholesky (no es bueno)
3b) matriz de inversión explícita (HORRIBLE)
4) Resolver como un problema de programación cuadrática o un problema de cono de segundo orden
4a) Resolver usando software de programación cuadrática de alta calidad. Esto es confiable y numéricamente preciso, pero lleva más tiempo que SVD o QR. Sin embargo, es fácil agregar restricciones lineales limitadas o generales, o términos de penalización o regularización lineal o cuadrática (dos normas) a la función objetivo, y aún así resolver el problema usando el software de Programación Cuadrática.
4b) Resolver como un problema de cono de segundo orden utilizando el software de optimización de cónica de alta calidad. Las observaciones son las mismas que para el software de programación cuadrática, pero también puede agregar restricciones lineales limitadas o generales 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) Resuelva utilizando un software de optimización no lineal de propósito general de alta calidad. Esto aún puede funcionar bien, pero en general será más lento que el software de programación cuadrática u optimización cónica, y tal vez no sea tan confiable. Sin embargo, puede ser posible incluir no solo restricciones lineales unidas y generales, sino también restricciones no lineales en la optimización de mínimos cuadrados. Además, se puede usar para mínimos cuadrados no lineales, y si se agregan otros términos no lineales a la función objetivo.
6) Resuelva usando pésimos algoritmos de optimización no lineal de propósito general -> NO HAGA NUNCA ESTO
7) Resolver usando EL PEOR POSIBLE algoritmo de optimización no lineal de propósito general que existe, es decir, descenso de gradiente. Use esto solo si desea ver qué tan malo y poco confiable puede ser un método de solución Si alguien le dice que use el descenso de gradiente para resolver problemas lineales de mínimos cuadrados
7 i) Aprenda sobre informática estadística de alguien que sepa algo al respecto
7 ii) Aprenda la optimización de alguien que sepa algo al respecto.