fminimax plot in Abhängigkeit von festen Variablenwerten
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 06.07.2011, 19:36
Titel: fminimax plot in Abhängigkeit von festen Variablenwerten
Hallo zusammen,
ich würde gerne folgenden Plot in Matlab erstellen.
Es gibt ja in der Optimization Toolbox die Funktion fminimax:
FMINIMAX finds a minimax solution of a function of several variables.
FMINIMAX attempts to solve the following problem:
min (max {FUN(X} ) where FUN and X can be vectors or matrices.
X
Sie rechnet mir das Minimum über dem Maximum verschiedener Funktionen aus. Gegeben habe ich nun speziell 3 verschiedene (quadratische) Funktionen z=f1(x,y),z=f2(x,y),z=f3(x,y) in 2 Veränderlichen. Über fminimax kriege ich leicht min(max(f1,f2,f2)) heraus. Nun möchte ich aber für verschiedene (aber fest vorgegebene) x-Werte, am besten x aus einem Intervall [a,b], mir die Minima (also (x,y*)) plotten lassen in einer Grafik. In der Grafik sollen also sowohl die Minima (x,y*) in der x-y Ebene dargestellt werden, als auch am besten noch f1,f2,f3 selber in der x-y-z Ebene.
War das verständlich ausgedrückt? Es gibt mehrere Unterforen, wo das gepasst hätte, ich dachte mir hier am besten. Wenn nicht, verschiebt den Thread bitte.
Wie bekomme ich das am besten in Matlab hin?
Viele Grüße
Verschoben: 08.07.2011, 13:00 Uhr von Bijick Von Grafiken und Plots nach Toolboxen
das ist ja erstmal kein Grafik- sondern ein Optimierungsproblem, denn Du musst die Paare (x,y*) ja erst mal bestimmen. Dafür musst Du Dein Programm so umschreiben, dass nur noch y die Optimierungsvariable ist, x aber ein Parameter. Dann kannst Du eine Schleife drumherum legen und die Paare (x,y*) berechnen.
Wenn Du soweit bist, können wir auch das Grafikproblem lösen.
Herzliche Grüße
Bijick
_________________
>> why
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.07.2011, 16:45
Titel:
Hey,
danke dir. Ich habs soweit hinbekmomen!
Mein Code:
Code:
for x=-150:0.1:150
options = optimset('Display','off');
[y,fval,maxfval,exitflag] = fminimax(@(y) objfun(x,y), 0,[],[],[],[],[],[],[],options);
plot(x,y,'b-') hold on;
end
in die Grafik einfügen. Oder Du füllst in der Schleife nur Vektoren auf und plottest sie dann anschließend in einem Rutsch. das geht jedenfalls schneller.
Herzliche Grüße
Bijick
_________________
>> why
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.07.2011, 20:35
Titel:
Hm, ich bekomms gerade nicht hin die Funktionen auszuwerten...
Wie kann ich denn jetzt f(x,y) jeweils auswerten? Habe es mit feval probiert, aber irgendwie kapier ich die Syntax noch nicht ganz.
Viele Grüße
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.07.2011, 20:53
Titel:
Ich hab jetzt folgendes:
Code:
for x=-150:1:150
z=x;
options = optimset('Display','off');
[y,fval,maxfval,exitflag] = fminimax(@(y) objfun(x,y), 0,[],[],[],[],[],[],[],options);
val = objfun(x,z);
plot(x,y,'b-') hold on;
plot3(x,z,val(1),'g',x,z,val(2),'r') hold on;
end
jetzt beide Funktionen plotten. Aber 1. dauert das ewig, sogar nur von -10:10 jeweils und 2. wie bekomme ich jetzt den 2-D Plot, also (x,y*) in die Grafik rein?
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.