Library zum Lösen linearer Gleichungssysteme
-
Hallo,
ich würde gerne ein überbestimmtes Gleichungssystem mit einer MxN Matrix mit einem Least-Square-Verfahren lösen.
Bei OpenCV gibt es hier die Funktioncv::solve(A, b, x, DECOMP_SVD);
. Das ist super einfach umzusetzen und Python hat ebenfalls solche einfache Ansätze. Die GNU Scientific Library ist zwar deutlich schwieriger zu bedienen, aber die Doku ist ziemlich gut und es hatgsl_multifit()
. Allerdings kann ich die Lib aufgrund der GPL nicht verwenden.Dann weiß ich, dass es CLAPACK bzw. OpenBLAS gibt. Allerdings ist die Doku so schlecht, ich weiß gar nicht, wie ich da zu Recht kommen soll.
Hat jemand ein Beispiel für CLAPACK oder OpenBLAS, wie ich ein multifit machen kann?OpenCV würde theoretisch mein Problem lösen, wenn ich für einen bestimmten Datensatz nicht extrem schlechte Werte herausbekommen würde (wo die GNU Scientific Library hingegen funktioniert und ebenfalls
numpy.polyfit()
).Danke im Voraus.
-
Mein Tipp:
http://arma.sourceforge.net/docs.html
-
@Steffo sagte in Library zum Lösen linearer Gleichungssysteme:
Dann weiß ich, dass es CLAPACK bzw. OpenBLAS gibt. Allerdings ist die Doku so schlecht, ich weiß gar nicht, wie ich da zu Recht kommen soll.
Du meinst die LAPACK bzw. BLAS? OpenBLAS ist eine der vielen BLAS Imlementationen, CBLAS/CLAPACK bezeichnet nur die Version mit C-Interface statt der originalen Fortran-Interface. Die BLAS stellt Routinen für einfache lineare Algebra-Probleme zur Verfügung, das komplierteste sind Matrix-Matrix-Mulitplikationen (GEMM und verwandte Funktionen). In der LAPACK gibt es Löser für lineare Gleichungssysteme, linear-least-square Probleme, …
Du solltest Dir diese Seite anschauen.
-
Danke, für eure Anworten! Ich werde mir die Tipps mal anschauen!
-
@Mittagspause sagte in Library zum Lösen linearer Gleichungssysteme:
Mein Tipp:
http://arma.sourceforge.net/docs.htmlDas ist wirklich eine sehr saubere Lib! Mal schauen, ob ich meinen Vorgensetzen überzeugen kann!
Danke!!!@john-0 Dein Tipp war auch gut, da mir die Doku auch bzgl. der Intel MKL-Lib geholfen hat, die die lapack-API kopiert hat und ich die Lib auch mal ausprobieren wollte.
-
@Steffo sagte in Library zum Lösen linearer Gleichungssysteme:
@john-0 Dein Tipp war auch gut, da mir die Doku auch bzgl. der Intel MKL-Lib geholfen hat, die die lapack-API kopiert hat und ich die Lib auch mal ausprobieren wollte.
Die MKL beinhaltet unter anderem hochoptimierte Versionen von BLAS und LAPACK, andere Libraries sind oftmals langsamer. D.h. keine Ahnung wie gut Armadillo ist, die gute Performance der MKL ist bekannt und wiederholt bestätigt worden.
-
@john-0
Armadillo ist vor allem ein C++ Wrapper. Unter der Haube benutzt es auch nichts anderes als BLAS/LAPACK bzw die optimierten Varianten davon (http://arma.sourceforge.net/faq.html#speed). Diese muss man dann zusätzlich installieren und Armadillo sagen, dass es die benutzen soll. Unter Linux kein Problem, aber mit Windows war das ein rechtes gefrickel. Aber vielleicht hab ich mich da nur doof angestellt..
Zum Auspobieren wird aber die nicht-optimierte BLAS lib mitgeliefert.