2017-01-30 2 views
0

Ich versuche, eine Funktion von ~ 120 Variablen zu minimieren (Ich schätze Parameter über maximale Wahrscheinlichkeit) mit der Funktion fminunc von Matlab, aber die Iterationsschritte sind wirklich langsam . Wie kann ich diesen Prozess beschleunigen?Minimieren einer Funktion von mehr als hundert Variablen auf Matlab

Die Funktion ist nichtlinear und enthält viele Summierungen.

Ich denke über die Vektorisierung so viel wie möglich die Funktionsdefinition und vielleicht die Bereitstellung der Gradientenfunktion zu Matlab, aber abgesehen von diesen Lösungen weiß ich nicht, welche anderen Möglichkeiten zur Verfügung stehen.

+0

Oft, wenn Standard-Algorithmen langsam sind, müssen Sie die Optimierungsstrategie selbst schreiben und für Ihr spezifisches Problem optimieren –

+0

Haben Sie Einschränkungen in Ihrem Problem, oder können Sie sogar an einige logische Grenzen für Ihre Variablen denken? In diesem Fall kann "fmincon" besser für Sie funktionieren. –

Antwort

0

Ich löste mein Problem, die Minimierung war langsam, weil ich die Summen in der Funktion mit for Schleifen implementiert habe. Nun vektorisierte ich das Problem so gut wie möglich, indem ich so oft wie möglich Matrixmultiplikationen und Vektoren verwendete und die Optimierung um fminunc viel schneller war.

Verwandte Themen