levmar

Screenshot der Software:
levmar
Softwarebeschreibung:
Version: 2.6
Upload-Datum: 15 Apr 15
Entwickler: Manolis Lourakis
Lizenz: Frei
Popularität: 18

Rating: 5.0/5 (Total Votes: 1)

levmar ist eine Implementierung des Levenberg-Marquardt nichtlinearen kleinsten Quadrate Algorithmen in C / C ++.
Die lmder Routine aus MINPACK, in den frühen 80er Jahren an der Argonne National Lab umgesetzt wird vielleicht die am meisten verwendete freie Implementierung der LM-Algorithmus. lmder in FORTRAN77 geschrieben und über die Jahre hat sich als ein zuverlässiger Stück Software sein. In Anbetracht, dass Fortranroutinen können aus C / C ++ bezeichnet werden, könnte man die Motivation für das Schreiben einer Version des LM in C. Nun frage, ist das Problem, dass bei FORTRAN ist aus C genannt wird, sollte der Programmierer bewusst sein (und entsprechen ) mehrere Regeln für Namensverkürzung, Argumentübergabe, mehrdimensionalen Arrays Speicherlayout Linkage-Konventionen, etc., die im Vergleich zu herkömmlichen C-Regeln unnatürlich sind. Ein zweiter Grund ist, dass dieser Ansatz setzt voraus, daß ein FORTRAN-Compiler für den Zielprogrammierumgebung zur Verfügung, die nicht unbedingt der Fall sein könnte. Ein weiterer Grund ist, um mit dem Versäumnis, das Innenleben eines FORTRAN Implementierung verstehen tun: Gelegentlich, wenn es notwendig ist, um genau zu verstehen, was die FORTRAN Code tut, bestimmte Teile davon vielleicht unverständlich Programmierer scheinen ohne Kenntnis der FORTRAN. Automatische FORTRAN nach C Übersetzer (zB f2c) nicht das Problem zu lösen, da die erzeugte C-Code ist ziemlich unlesbar "Uneingeweihte" Menschen. Außerdem Dokumentation Beschreibung der Mathematik nach der die Implementierung zugrundeliegende dunkle oder unzugänglich sein. Zu guter Letzt sollte ein Kandidat LM Implementierung in C frei und technisch solide sein. Zum Beispiel ist die C-Variante des LM-Algorithmus in der "Numerical Recipes" Buch vorgestellt (dh mrqmin), nicht immer eine gute Wahl: Neben dem ist urheberrechtlich geschützt ist, wird es den Ruf, Robustheit fehlt
. Aus den oben genannten Gründen, habe ich die levmar Paket, bei dessen Durchführung von LM-Aromen, die ebenfalls mit C ++ verwendbaren umfasst entwickelt. levmar umfasst Doppel- und Einzel Genauigkeit LM-Implementierungen, sowohl mit analytischen und Finite-Differenzen-Jacobi angenähert. Es ist unter den Bedingungen der GNU General Public License kostenlos zur Verfügung gestellt. Die mathematische Theorie hinter unbeschränkte levmar ist ausführlich im Skript mit dem Titel Methoden für nichtlineare kleinste Quadrate Probleme beschrieben, vertreten durch K. Madsen, HB Nielsen und O. Tingleff, Technical University of Denmark; Matlab-Implementierungen der Algorithmen im Skript vorgestellt sind ebenfalls erhältlich. Beachten Sie jedoch, dass die Formulierung des Minimierungsproblem hier angenommen ist etwas anders als das im Skript beschrieben ist
Funktion Verwendung:.
Levmar bietet mehrere benutzer aufrufbare Funktionen gehorchen die folgende Namenskonvention: Der erste Buchstabe (d oder e) legt fest, Doppel- oder Einzel Präzision und das Suffix (_der oder _dif) den analytischen oder ungefähre Jacobi. Falls vorhanden, die lec, bc und blec Komponenten bedeuten lineare Gleichung, Box und gleichzeitige Box und lineare Gleichung Einschränkungen auf. Insbesondere enthält levmar die Funktionen im Handumdrehen:
Unconstrained Optimierung
dlevmar_der (): double precision, analytischen Jacobi
dlevmar_dif (): double precision, Finite-Differenzen approximiert Jacobi
slevmar_der (): einfacher Genauigkeit, analytischen Jacobi
slevmar_dif (): einfacher Genauigkeit, Finite-Differenzen angenähert Jacobi
Constrained Optimierung

dlevmar_lec_der () : double precision, lineare Gleichung Einschränkungen analytischen Jacobi
dlevmar_lec_dif (): double precision, lineare Gleichung Einschränkungen angenähert Finite-Differenzen-Jacobi-
slevmar_lec_der (): einfacher Genauigkeit, lineare Gleichung Einschränkungen analytischen Jacobi
slevmar_lec_dif (): einfacher Genauigkeit, lineare Gleichung Einschränkungen angenähert Finite-Differenzen-Jacobi-
dlevmar_bc_der (): double precision, Feld Einschränkungen analytischen Jacobi
dlevmar_bc_dif (): double precision, Feld Einschränkungen endlicher Differenz angenähert Jacobi
slevmar_bc_der (): einfacher Genauigkeit, Feld Einschränkungen analytischen Jacobi
slevmar_bc_dif (): einfacher Genauigkeit, Feld Einschränkungen angenähert Finite-Differenzen-Jacobi-
dlevmar_blec_der (): Doppel Präzision, Box & lineare Gleichung Einschränkungen analytischen Jacobi
dlevmar_blec_dif (): double precision, Box & lineare Gleichung Einschränkungen angenähert Finite-Differenzen-Jacobi-
slevmar_blec_der (): einfacher Genauigkeit, Box & lineare Gleichung Einschränkungen analytischen Jacobi
slevmar_blec_dif (): einfacher Genauigkeit, Box & lineare Gleichung Einschränkungen angenähert Finite-Differenzen-Jacobi-
Beachten Sie, dass mit der Finite-Differenzen, die Jacobi-Ergebnisse in sich wiederholenden Auswertungen der Funktion anzunähern, um montiert werden. Mit dem Ziel, die Gesamtzahl dieser Auswertungen zu verringern, die xxxxxxx_dif Funktionen implementieren Sekante Annäherungen an die Jacobi Verwendung Broyden Rang eines Updates. Sämtliche Funktionen lösen das gleiche Problem, das heißt, sie den Parametervektor p, die am besten beschreibt (in Bezug auf die L2-Norm) die Messungen Vektor x zu suchen. Genauer gesagt, da eine Vektorfunktion f: R ^ m -> R ^ n mit n> = m, p zu berechnen, so dass sie f (p) ~ = x, das heißt die quadrierte Norm || e || ^ 2 = | | xf (p) || ^ 2 minimiert. Auch Box-Restriktionen der Form lb [i]

Was ist neu in dieser Pressemitteilung:

  • Diese Version bietet Unterstützung für diagonale Skalierung auf xlevmar_bc_der (), die Konvergenz verbessert werden kann, wenn der Ausgangspunkt ist weit von der wahren Minimalstelle.
  • Ein Linearsysteme Solver unterstützt parallel Cholesky-Zerlegung mit PLASMA, der linearen Algebra-Bibliothek für Multicore-Prozessoren.
  • Linear Solver wurden behoben, so dass sie auf den unteren Dreiecke symmetrischer Matrizen, was eine bessere Cache-Leistung führt zu betreiben.
  • Die CMake Konfigurationsdateien für den Bau des Projekts wurden überarbeitet.
  • Einige kleinere Änderungen vorgenommen wurden.

Was ist neu in der Version 2.5:

  • ACHTUNG für frühere Versionen NUTZER: Für eine bessere Kohärenz und keine Konflikte, wurde der Name des levmar der Header-Datei von lm.h zu levmar.h geändert; Bitte aktualisieren Sie Ihre Quelldateien entsprechend.
  • Unterstützung für Minimierung bei gleichzeitiger Feld lineare Gleichung und Ungleichungen (siehe Funktionen xlevmar_bleic_der () & xlevmar_bleic_dif ()).
  • Implementiert Komfort Wrapper um xlevmar_bleic_der () & xlevmar_bleic_dif (), die sich mit einfacher eingeschränkten Fällen, zB xlevmar_blic_der () & xlevmar_blic_dif () Unterstützung Minimierung unter Kasten und linearen Ungleichungen nur.
  • Es wurde ein linearer Systeme Solver auf Basis der UDUt Zersetzung (dh sqrt freie Cholesky).
  • entfernt einige unnötige Speicher Kopieren von den meisten Linearlöser.
  • Es wurde eine neue Daten anliegende Testproblem (Osborne).
  • Aus ein paar andere kleinere Änderungen.

Was ist neu in der Version 2.4:

  • ACHTUNG für frühere Versionen ANWENDER: Durch die Größe des Info-Argument (dh LM_INFO_SZ) wurde, um eins erhöht, um einen neuen Rückfeld empfangen (dh info [9]), die zu der Gesamtzahl der linearen Systemen im Laufe des Minimierungs gelöst entspricht. Die Indizes der zuvor zurückgegebenen Felder im Info Array unverändert bleiben.
  • Implementiert eine Cache-effiziente Regelung zur Berechnung der ungefähre hessischen J ^ T * J und J ^ T * e für kleine Minimierungsprobleme.
  • gewährleistet, dass jeder von den Aufrufen der Linearlöser erhalten Arbeitsspeicher wird bei Beendigung des levmar Routinen veröffentlicht.
  • sichergestellt, dass lineare Löser beschäftigen die minimal erforderliche Menge an Hilfsspeicher, die Vermeidung gelegentliche Überzuteilungen.
  • Implementiert eine Schleifenabwicklung Schema für die Beschleunigung der Berechnung von e = x-hx.
  • Es wurde ein paar Probleme mit der Speicherausrichtung auf 64-Bit-Systeme.
  • Hinzugefügt Funktionen für die Berechnung des Bestimmtheitsmass.
  • mit ein paar kleinere Probleme behandelt werden.

Ähnliche Software

Zasio
Zasio

3 Jun 15

DanCalculator
DanCalculator

20 Feb 15

ATLAS
ATLAS

17 Feb 15

FreeMat
FreeMat

3 Jun 15

Kommentare zu levmar

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!