Lineare Kleinste Quadrate können durch gelöst werden
0) Verwenden eines hochwertigen Lösers für lineare kleinste Quadrate, basierend entweder auf SVD oder QR, wie unten beschrieben, für nicht beschränkte lineare kleinste Quadrate oder basierend auf einer Version der quadratischen Programmierung oder der konischen Optimierung für gebundene oder linear beschränkte kleinste Quadrate, wie unten beschrieben. Ein solcher Solver ist vorinstalliert, intensiv getestet und einsatzbereit - verwenden Sie ihn.
1) SVD ist die zuverlässigste und numerisch genaueste Methode, erfordert jedoch mehr Rechenaufwand als Alternativen. In MATLAB ist die SVD-Lösung des ungezwungenen linearen Problems der kleinsten Quadrate A * X = b Pinv (A) * b, was sehr genau und zuverlässig ist.
2) QR, das ziemlich zuverlässig und numerisch genau ist, aber nicht so viel wie SVD und schneller als SVD. In MATLAB ist die QR-Lösung des ungezwungenen linearen Problems der kleinsten Quadrate A * X = b A \ b, was ziemlich genau und zuverlässig ist, außer wenn A schlecht konditioniert ist, dh eine große Bedingungszahl hat. A \ b ist schneller zu berechnen als pinv (A) * b, aber nicht so zuverlässig oder genau.
3) Bilden der Normalgleichungen (vom Standpunkt der Zuverlässigkeit und der numerischen Genauigkeit her SCHRECKLICH, weil sie die Bedingungsnummer quadrieren, was sehr schlecht ist) und
3a) Lösen durch Cholesky-Faktorisierung (nicht gut)
3b) explizit invertierende Matrix (HORRIBLE)
4) Lösen als quadratisches Programmierproblem oder Kegelproblem zweiter Ordnung
4a) Lösen Sie mit einer hochwertigen quadratischen Programmiersoftware. Dies ist zuverlässig und numerisch korrekt, dauert jedoch länger als SVD oder QR. Es ist jedoch einfach, der Zielfunktion gebundene oder allgemeine lineare Bedingungen oder lineare oder quadratische (zwei Norm-) Straf- oder Regularisierungsterme hinzuzufügen und das Problem dennoch mit der Quadratic Programming-Software zu lösen.
4b) Lösen Sie das Problem als Kegel zweiter Ordnung mit einer hochwertigen Conic Optimization-Software. Die Anmerkungen sind die gleichen wie bei der Quadratic Programming-Software, Sie können jedoch auch gebundene oder allgemeine lineare Einschränkungen und andere konische Einschränkungen oder objektive Funktionsausdrücke wie Straf- oder Regularisierungsausdrücke in verschiedenen Normen hinzufügen.
5) Lösen Sie mit einer hochwertigen nichtlinearen Optimierungssoftware für allgemeine Zwecke. Dies funktioniert zwar immer noch gut, ist jedoch im Allgemeinen langsamer als die Software Quadratic Programming oder Conic Optimization und möglicherweise nicht ganz so zuverlässig. Es kann jedoch möglich sein, nicht nur gebundene und allgemeine lineare Nebenbedingungen, sondern auch nichtlineare Nebenbedingungen in die Optimierung der kleinsten Quadrate einzubeziehen. Kann auch für nichtlineare kleinste Quadrate verwendet werden und wenn andere nichtlineare Terme zur Zielfunktion hinzugefügt werden.
6) Lösen Sie mit miesen nichtlinearen Allzweck-Optimierungsalgorithmen -> TUN SIE DAS NICHT.
7) Lösen Sie mit DEM SCHLECHTESTEN MÖGLICHEN nichtlinearen Allzweck-Optimierungsalgorithmus, dh Gradientenabfall. Verwenden Sie diese Option nur, wenn Sie sehen möchten, wie schlecht und unzuverlässig eine Lösungsmethode sein kann
7 i) Lerne etwas über statistisches Rechnen von jemandem, der etwas darüber weiß
7 ii) Lernen Sie die Optimierung von jemandem, der etwas darüber weiß.