2016-10-03 2 views
2

Ich versuche, in MATLAB geschriebenen Code in C++ zu konvertieren. Ich habe einige (oder tatsächlich ziemlich viele) Probleme, eine Alternative zu der "fminunc" -Funktion zu finden, die in dem MATLAB-Code verwendet wird, den ich ersetzen und in dem C++ - Code verwenden kann. Ich habe mir die "dlib" -Bibliothek angeschaut, weil ich gehört habe, dass es dort eine Funktion gibt, die ich benutzen kann, aber ich bin mir nicht sicher, welche Funktion zu verwenden ist.Gute C++ Alternative zu MATLABs "fminunc"?

Dies ist, wie die „fminunc“ im Code MATLAB verwendet wird, möchte ich konvertieren:

[theta, cost] = ... 
fminunc(@(t)(costFunction(t, X, y)), initial_theta, options); 

Kennt jemand eine gute Optimierungsfunktionen wie dies in C++?

+2

"Numerische Rezepte in C"? –

+0

Neuronales Netzwerk, durch Zufall? Sie wollen nicht einfach ein Äquivalent zu "fminunc" finden - das hat zu viele Optionen. Sie möchten ein Äquivalent zu "fminunc" nur über Ihre Problemdomäne finden. – MSalters

Antwort

0

Ich glaube, was Sie suchen, ist Googles Ceres Solver, eine Open-Source-C++ - Bibliothek zum Modellieren und Lösen von großen, komplizierten Optimierungsproblemen. Der Code wurde entwickelt, um zwei Klassen von Problemen zu behandeln:

  1. Nichtlineare Kleinste Quadrate Probleme mit Grenzen Einschränkungen.
  2. Allgemeine unbeschränkte Optimierungsprobleme.

Automatische Differenzierung wird ebenfalls unterstützt.

Mehrere coole Beispielanwendungen können here gefunden werden.