WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

etwas zu fminsearch

 

GAST

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2008, 15:31     Titel: etwas zu fminsearch
  Antworten mit Zitat      
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

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.06.08
Wohnort: Remagen
Version: ---
     Beitrag Verfasst am: 01.07.2008, 15:46     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 01.07.2008, 16:23     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
GAST

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2008, 16:57     Titel:
  Antworten mit Zitat      
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

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 01.07.2008, 18:12     Titel:
  Antworten mit Zitat      
Hallo Gast,

myfun muss dazu so geschrieben werden:

Code:
function f = myfun(x)
x1 = x(1);
x2 = x(2);

...


Oder analog. Das geht auch bei anonymous functions, je nachdem, was Du verwendest. Dann muss Dein Startvektor x0 auch zwei Werte enthalten, z.B.

Code:
x0 = [1;1];


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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2008, 12:37     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 02.07.2008, 12:48     Titel:
  Antworten mit Zitat      
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:
Code:
c1=c(1,:);
c2=c(2,:);


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

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 02.07.2008, 14:52     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.