Verfasst am: 13.10.2012, 15:41
Titel: fminsearch - Lösung in Abhängigkeit von Parametern
Hallo,
ich möchte für ein bivariates Polynome durch fminsearch die Koeffizienten berechnen lassen. Das Problem ist, dass meine Funktion in etwa dieses Aussehen hat:
Dabei möchte ich durch fminsearch die Koeffizienten c(1) bis c(n) berechnen lassen. Jedoch sind die b_1(x,y) bis b_n(x,y) mir auch unbekannt, da sie es eigentlich sind die vom Parametergebiet abhängen.
Kann fminsearch mir die Lösung von c(1) bis c(n) in Abhängigkeit von b_1(x,y) bis b_n(x,y), also in Abhängigkeit von Parametern darstellen?
Ja die b_1 bis b_n sind alles verschiedene, skalare Funktionen in Abhängigkeit von x und y.
Um genauer zu sein, sind es die baryzentrischen Koordinaten eines Punktes (x,y).
% Hier musst du dann noch deine Funktionen b1 bis bn implementieren, % mit der Übergebenen Variable counter kannst du die dann zum Beispiel % per switch-case auswählen. Für counter == 1 wird dann b1 ausgewählt, % für counter == 2 wird b2 ausgewählt und so weiter:
% Das hier sind nur Beispiele switch counter
case1
z = x + y;
case2
z = 2*x - 5*y;
case3
z = 10*x - y;
otherwise % Fehlermeldung ausgeben lassen
z = NaN;
end
In x(1:3:end) sind dann deine Parameter für c, in x(2:3:end) deine Parameter für x und in x(3:3:end) deine Parameter für y. In der Funktion "bary" musst du halt noch deine jeweiligen Funktionen implementieren so wie du sie brauchst, aber das sollte ja nicht mehr so schwer sein.
Ich danke nochmal für die Hilfe.
Ich habe deinen Code jetzt so gut ich konnte nachvollzogen, allerdings konnte ich noch keine eigenen Beispiele für meine Sache implementieren (bin aber grad dran). Daher ist die Frage vielleicht unbegründet.
Die Frage:
fminsearch wird in deinem Code über alle x(i) minimieren.
Hierbei sind ein Teil der x(i) die von mir gesuchten c(k), was ja auch so von mir gewollt ist. Allerdings sind die baryzentrischen Koordinaten, also die b_k(x,y), hier auch in den x(i) enthalten, dass heißt doch er minimiert auch über diese!
Aber diese soll er, so denke ich zumindest, variable lassen.
Genauer gesagt, fminsearch soll mir die c(k) in Abhängigkeit von unbekannten und unbekannt bleibenden Parametern geben.
Vielleicht ein konkretes, vereinfachtes Beispiel:
Gegeben: p(x,y) = c_1 * 5* b_1(x,y) + 2*6*b_2(x,y)
Gesucht ist nur c_1, so das p(x,y) für alle x,y minimal wird.
Vielleicht habe ich auch einfach nur einen Denkfehler und habe die Frage ganz falsch formuliert.
Ich danke nochmal für die Hilfe.
Ich habe deinen Code jetzt so gut ich konnte nachvollzogen, allerdings konnte ich noch keine eigenen Beispiele für meine Sache implementieren (bin aber grad dran). Daher ist die Frage vielleicht unbegründet.
Die Frage:
fminsearch wird in deinem Code über alle x(i) minimieren.
Hierbei sind ein Teil der x(i) die von mir gesuchten c(k), was ja auch so von mir gewollt ist. Allerdings sind die baryzentrischen Koordinaten, also die b_k(x,y), hier auch in den x(i) enthalten, dass heißt doch er minimiert auch über diese!
Aber diese soll er, so denke ich zumindest, variable lassen.
Genauer gesagt, fminsearch soll mir die c(k) in Abhängigkeit von unbekannten und unbekannt bleibenden Parametern geben.
Du willst also eine Lösung in Abhängigkeit der Parameter x und y, sprich eine symbolische Lösung. Das kann MATLAB aber nicht, da es nur numerisch rechnet. Es gibt zwar die "symbolic Toolbox", aber ich bezweifle dass diese irgendwas an fminsearch verändert.
Antonios hat Folgendes geschrieben:
Vielleicht ein konkretes, vereinfachtes Beispiel:
Gegeben: p(x,y) = c_1 * 5* b_1(x,y) + 2*6*b_2(x,y)
Gesucht ist nur c_1, so das p(x,y) für alle x,y minimal wird.
Vielleicht habe ich auch einfach nur einen Denkfehler und habe die Frage ganz falsch formuliert.
Bist du dir bei der Formulierung da sicher? Das Minimierungsproblem, was du da hingeschrieben hast, hat nämlich gar kein Minimum, da p(x,y) für kleiner werdende c_1 auch immer kleiner wird (wenn b_1(x,y) > 0 ist).
Für c_1 = -Inf wäre dein p(x,y) dann im Sinne von Matlab "minimal" , aber ich denke nicht, dass es das ist was du suchst?
Beim niederschreiben des Beispieles ist mir dies auch aufgefallen
Zitat:
Vielleicht habe ich auch einfach nur einen Denkfehler und habe die Frage ganz falsch formuliert.
Ich muss das ganze noch einmal überdenken, aber alleine für diese Erkenntnis danke ich dir schon!
Ich werde mich dann einfach hier wieder melden, wenn ich genauer weiß was ich eigentlich brauche.
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.