|
GAST |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2008, 14:31
Titel: etwas zu fminsearch
|
 |
Hallo zusammen!
Arbeite an verschiedenen Minimierungsproblemen. Bisher hat sich der Befehl "fminsearch" als sehr zuverlöässig erwiesen.
Das Problem allerdings besteht darin, dass "fminsearch" nur für eine Variable geeigent ist. Daher die Frage, wie lassen sich zwei Variablen minimieren, die zur selben Funktion und zum selben Algorithmus gehören?
Kommt man da mit "fminsearch" weiter oder gibt es da einen anderen Weg?
Für Eure Hilfe wäre ich wirklich Dankbar!
|
|
|
|
|
kaybee |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 25.06.08
|
 |
|
 |
Wohnort: Remagen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2008, 14:46
Titel:
|
 |
Hallo!
Arbeite im Moment auch an verschiedenen Minimierungsproblemen und du kannst es ja mal mit fminunc bzw. fmincon probieren.
Falls es nicht darauf ankommt, dass du bestimmte Optimierungsalgorithmen benutzt klappt das damit.
Viele Grüße
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 01.07.2008, 15:23
Titel:
|
 |
Hallo Gast,
fminsearch arbeitet durchaus mit mehreren Variablen. Allerdings müssen diese in einen Vektor zusammengefasst werden. Wenn Du dein Problem näher schilderst, bin ich gern bei der Ausgestaltung behilflich.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
GAST |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2008, 15:57
Titel:
|
 |
Hallo!
Danke für die schnellen Antworten! Bei meinem Problem geht es um die Nährung eines gemeinsamen Punktes zweier Koordinatensysteme, die durch zwei Körpersegmente definiert sind. Der gesuchte Punkte ist die feste Verbindung der Segemente also das Gelenk.
Zwei Variablen sind gesucht, da jeweils in einem Koordiantensystem angenöhrt wird und bei Annährungen nicht exakt gleich sind. Setzt man sie gleich wird es ungenauer.
Solange eine Variable gesucht ist, klappt alles ganz gut. Da sah der Aufruf der Funktion so aus:
[x,fval,exitflag,output] = fminsearch(@myfun,x0)
Wie kann man zwei Variablen z.b. x1,x2 übergeben, die Lösung für die Minimierungen sind?
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 01.07.2008, 17:12
Titel:
|
 |
Hallo Gast,
myfun muss dazu so geschrieben werden:
Oder analog. Das geht auch bei anonymous functions, je nachdem, was Du verwendest. Dann muss Dein Startvektor x0 auch zwei Werte enthalten, z.B.
Der Aufruf von fmincon muss dann nicht verändert werden.
Herzliche Grüße
Bijick
PS: An wen werden die Minimallösungen übergeben? Die soll doch fminsearch erst berechnen, oder?
_________________
>> why
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.07.2008, 11:37
Titel:
|
 |
Hallo!
Genau die Minimallösungen soll von fminsearch berechnet werden und an den Workspace zurück gegeben werden.
Bei den Variablen handelt es sich um Vektoren mit 3d Koordinaten für das jeweilige Segmentsystem. Daher ist mir noch nicht so ganz klar wie das für zwei Variablen funktionieren soll.
Bei deinem Vorschlage:
x1 = x(1);
x2 = x(2);
kommt es leider zur Fehlermeldung, dass die Matixgrößen nicht übereinstimmen. In der zuminimierenden Funktion kommen Matrixmultiplikationen vor, aus dem Grund sollte für x1 und x2 auch die Vektorform durch den Startvektor vorgegeben werden. Aber wie macht man das bei zwei Variablen?
Vielen Dank für die schnelle Antwort!
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.07.2008, 11:48
Titel:
|
 |
Hallo nochmal!
Hab jetzt eine Lösung gefunden! In dem man den Startvektor derart angibt: c0=[0, 0, 0; 0, 0, 0];
und anschließend in der Funktion unterteilt:
Danke für die gute Idee mit der Vektorübergabe!
Edit by Bijick: Code-Formatierung eingefügt. Bitte beim nächsten Mal selber machen!
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 02.07.2008, 13:52
Titel:
|
 |
Hallo,
das hatte ich dann nicht richtig verstanden, dass "zwei Variablen" zwei vektorwertige Variablen meinte. Vielen Dank, dass Du Deine gefundene Lösung hier mitgeteilt hast.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|