2016-05-22 4 views
0

Ich versuche, einen Weg zu finden, Funktion mit Parametern in Matlab zu maximieren. Die Funktion ähnelt der folgenden: f = - t2*x(0)*(a(0) - 1) - t2*x(0)*(t1*a(0) + 1)*(a(1) - 1). Ich muss a(0) und a(1) finden, die f maximieren werden. t1 und t2 ist nichtnegative unbekannte Parameter und x(0) > 0 auch. a(0) und a(1) können von t1, t2 abhängen.Matlab Funktion mit Parametern zu maximieren

So im Allgemeinen möchte ich folgendes mit Matlab tun: einige Parameter finden, die werden maximize(f) wo: einige Einschränkungen bestehenden sind, und einige Parameter von f bleibt unbekannt.

Ich habe versucht fminsearch aber in diesem Fall müssen alle Parameter einschließlich t1 und t2 angegeben werden.

Ich frage mich, ob eine solche Funktion in Matlab existiert oder es kann auf andere Weise gemacht werden?

Antwort

0

Sie können versuchen CVX. Es ist ein Open-Source-MATLAB-basiertes Modellierungspaket für die konvexe Optimierung. Es ist langsam, aber es kann Ihnen als erster Ansatz helfen

cvx_begin 
     variable a0 
     variable a1 
     minimize(- t2*x0*(a0 - 1) - t2*x0*(t1*a0 + 1)*(a1 - 1) ) 
     subject to 
      t1 > 0 
      t2 > 0 
      x0 > 0 
    cvx_end 
+0

Vielen Dank für die Antwort. Tatsächlich erwartet dieser Ansatz, dass t1, t2, x0 definiert werden (als fminsearch in Matlab). Auch gibt es einige Regeln bezüglich der Funktion zur Minimierung: es ist unmöglich, mit dem Beispiel zu arbeiten (a0 * a1 ist verboten). – Lilo