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

Optimierungsproblem. Wie lösen?

 

Maya
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 20:49     Titel: Optimierungsproblem. Wie lösen?
  Antworten mit Zitat      
Hallo ihr Lieben,

habe erstmal abseits der Programmierung nur die Frage für wie realistisch ihr es haltet folgendes Problem mit Matlab zu lösen:

min \left\{ 2.325*\sqrt{\sigma^{2}_[_5_] (P)} - 2.325*\sqrt{\sigma^{2} _[_2_] (P)}
<br />
 \right\}

wobei

\sigma^{2} _5 = (\sigma_1*P1*\beta_{11}  +  \sigma_2*P2*\beta_{12} + \sigma_3*P3*\beta_{13} + \sigma_4*P4*\beta_{14} + \sigma_5*P5*\beta_{15})^2*\alpha 1 + ... + (\sigma_1*P1*\beta_{51}  +  \sigma_2*P2*\beta_{52} + \sigma_3*P3*\beta_{53} + \sigma_4*P4*\beta_{54} + \sigma_5*P5*\beta_{55}))^2*\alpha 5

und

\sigma^{2} _2 = (\sigma_1*P1*\beta_{11}  +  \sigma_2*P2*\beta_{12} + \sigma_3*P3*\beta_{13} + \sigma_4*P4*\beta_{14} + \sigma_5*P5*\beta_{15})^2*\alpha 1 + (\sigma_1*P1*\beta_{21}  +  \sigma_2*P2*\beta_{22} + \sigma_3*P3*\beta_{23} + \sigma_4*P4*\beta_{24} + \sigma_5*P5*\beta_{25}))^2*\alpha 2

uBdN: P1 + P2 + ... + P5 = 1

Alle Werte von sigma und beta sind natürlich gegeben (Skalier zwischen 0 und 1)


Alternativ würde statt einem Minproblem oben auch folgendes gehen:

\frac{2.325*\sqrt{\sigma^{2} _[_2_] (P)}}{2.325*\sqrt{\sigma^{2}_[_5_] (P)}} = c (z.B. 0.95)

Wie lässt sich sowas mit Matlab lösen? Lagrange?

Vielen Dank für eure Ideen.

Gruß
Maya
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.11.2012, 21:47     Titel:
  Antworten mit Zitat      
Hallo,

mit fmincon aus der Optimization Toolbox. Falls diese nicht vorhanden ist, fminsearch.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Maya
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 21:59     Titel:
  Antworten mit Zitat      
Hallo,

Danke für die Antwort. Über die Uni habe ich eigentlich Zugriff auf sämtliche Toolboxes.

Klappt es (wenn man alles richtig macht) denn sicher mit der Opt.Box? Bin momentan stark unter Zeitdruck und ein fruchtloses "Reinfuchsen" wäre echt fatal...

Mir erscheint die Optimierungsgleichung halt so komplex (Quadrieren etc.), dass ich Zweifel habe.

Hast du darüberhinaus eine Idee für den Alternativweg über das Verhältnis? Dieser wäre nämlich evtl. sogar besser, da man auch ggf. für c auch 0.995 einsetzen könnte etc.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.11.2012, 22:11     Titel:
  Antworten mit Zitat      
Hallo,

prinzipiell kann man mit der Optimization Toolbox auch deutlich komplexere Probleme als dieses lösen. Das einzige Problem ist, dass nach lokalen Minima gesucht wird und damit generell relativ gute Startwerte benötigt werden, damit dieses lokale Minimum dann auch sehr wahrscheinlich das (üblicherweise gewünschte) globale Minimum ist.
Alternativ kannst du Algorithmen aus der Global Optimization Toolbox (ga oder patternsearch) verwenden. Da die Aufrufform zunächst sehr ähnlich wie bei fmincon ist, kann man ohne weiteres mit fmincon anfangen und ggf. auf ga / patternsearch wechseln.
Bei dem Verhältnis sehe ich das Problem, dass du (inkl. NB) nur zwei Gleichungen für fünf Unbekannte hast. Da ist es gut möglich, dass es keine eindeutige Lösung oder gar unendlich viele Lösungen gibt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Maya
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 22:24     Titel:
  Antworten mit Zitat      
Hallo,

Danke für die ausführliche Antwort.

Das mit den Startwerten leuchtet ein. Als Startwert, der die Bedingung nicht verletzt, würde ich Gleichverteilung P1...P5=0.2 auswählen. Das ist für meinen Fall schon häufig ein guter Wert. Wenn er es dann schafft die Diff. weiter zu minimieren erwarte ich eh nur kleinere Abweichungen (z.B. P1=0.18 P2=0.23 etc.).

Von daher könnte es klappen.

Das Reinhacken verschiebe ich aber auf morgen Wink

Danke nochmal

Edit:

Mir fällt gerade nochwas ein, wie ich das mit dem Verhältnis lösen könnte. Man könnte ihn doch nur solange das Minimum suchen lassen bis sich das gewünschte Verhältnis (wenn er es bis dahin schafft) einstellt?

Also nach jeder Iteration prüfen etc.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.11.2012, 22:49     Titel:
  Antworten mit Zitat      
Hallo,

was das Verhältnis angeht: so könnte man eine Lösung finden, aber vermutlich mit jedem Startwert eine andere.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Maya
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2012, 01:41     Titel: Re: Optimierungsproblem. Wie lösen?
  Antworten mit Zitat      
Hallo, ich habe das Problem zum Teil nun gelöst. Hänge jetzt aber vor einem anderen.

Ich versuche nun folgendes zu minimieren:

Maya hat Folgendes geschrieben:


min \left\{ 19251  - 2.325*\sqrt{\sigma^{2} _[_2_] (P)}
<br />
 \right\}

wobei

\sigma^{2} _2 = (\sigma_1*P1*\beta_{11}  +  \sigma_2*P2*\beta_{12} + \sigma_3*P3*\beta_{13} + \sigma_4*P4*\beta_{14} + \sigma_5*P5*\beta_{15})^2*\alpha 1 + (\sigma_1*P1*\beta_{21}  +  \sigma_2*P2*\beta_{22} + \sigma_3*P3*\beta_{23} + \sigma_4*P4*\beta_{24} + \sigma_5*P5*\beta_{25}))^2*\alpha 2

uBdN: P1 + P2 + ... + P5 = 1



Ich mache das ganze momentan über globalsearch in Kombination mit fmincon.

Das Problem ist, dass Matlab nun anscheinend versucht das ganze soweit ins negative zu ziehen wie möglich (?).

Ich will aber eigentlich, dass möglichst 0 rauskommt. Sprich der Term möglichst nah an ran 19251 kommt.

Habt ihr eine Idee wie man sozusagen f(x)>=0 implementiert?

Grüße
Maya
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.11.2012, 10:22     Titel:
  Antworten mit Zitat      
Hallo,

entweder als Nebenbedingung oder indem man ( f(x) )^2 minimiert.
Man könnte wohl auch lsqnonlin statt fmincon als Solver verwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Maya
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2012, 19:25     Titel:
  Antworten mit Zitat      
Hat mit einer nichtlinearen Nebenbedingung wunderbar geklappt.

Du hast mich mit deiner Hilfe echt einen großen Sprung bei meinem Arbeiten machen lassen. Vielen Dank!

Grüße
Maya
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 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.