2016-12-09 1 views
0

Ich möchte das folgende Optimierungsproblem mit Matlab lösen: minimieren wenn t >= 0.Spezielle Art der 1d Constrained Optimierung mit Matlab

Es gibt fseminf Funktion, aber ich habe nicht gut verstanden, wie man es auf meinen Fall anwenden. Es scheint auch ein bisschen übertrieben zu sein, solch ein mächtiges Werkzeug für solch ein scheinbar einfaches Problem zu verwenden. Ich werde dankbar sein für alle Tipps, wie Sie hier fseminf anwenden und Vorschläge, wie es sonst noch gelöst werden kann.

+0

Ich würde 'fmincon' empfehlen, eine Funktion, mit der Sie Optimierungsbedingungen und Algorithmen angeben können und die gut dokumentiert ist. – lucianopaz

Antwort

0

Matlab ist eine numerische Software, also ist es eine "einfache" Möglichkeit, dieses Problem zu lösen, indem Sie den Wert für Werte von t>0 berechnen und dann das Minimum davon finden. Abhängig von der Funktion kann die Anzahl der t s, die Sie auswerten möchten, kleiner oder größer sein.

Eine mögliche Lösung könnte sein:

t = 0:0.001:10; % create values from 0 to 10 in steps of 0.001 
f = t.^3+5; % evaluate the function for each value of 't' 
[minF, locT] = min(f); 
minF % this is the smallest value of the function 
t(locT) % the minimum value occurred at this 't' 

Sie t definieren sollten in der Region, wo Sie das Minimum zu erwarten, wenn Sie es falsch definieren dies nur das lokale Minimum finden würde. Wenn der Abstand zwischen den einzelnen 't' zu groß ist, könnte auch das Minimum zwischen ihnen liegen, deshalb wähle ich einen relativ kleinen Schritt von '0.001'.

Verwandte Themen