|
|
Optimierung mit mehreren Variablen |
|
ladida |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 26.01.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.01.2014, 17:05
Titel: Optimierung mit mehreren Variablen
|
 |
|
 |
|
Hallo!
Ich bin bisher wenig vertraut mit Matlab und stoße deswegen schnell an meine Grenzen. Ich habe ein Optimierungsproblem, das ich bereits mit dem Excel-Solver lösen konnte. Allerdings sind dessen Ergebnisse nicht zufriedenstellend.
Zum Problem: Ausgehend von experimentellen Versuchen stehen Kurven aus x- und y-Werten zur Verfügung. Diese sollen durch ein Modell möglichst gut abgebildet werden. Dazu gibt es mehrere Ansatzfunktionen.
Zunächst werden die experimentellen Daten im Code eingelesen und Initialwerte für die Parameter definiert, die später optimiert werden sollen (s. Quellcode). Danach werden y-Werte mit Hilfe einer Ansatzfunktion berechnet. Als Messgröße für die Optimierung soll die Summe der Fehlerquadrate gelten. Deshalb wird für jeden Punkt das Fehlerquadrat aus experimentellen und errechneten y-Werten gebildet und aufsummiert.
An dieser Stelle komme ich jedoch nicht weiter: Die Summe der Fehlerquadrate soll minimiert werden, indem die Variablen angepasst werden (Initialwerte sollen durch optimierte Werte überschrieben werden). Außerdem sollen die optimierten Werte der Variablen ausgegeben werden.
Wie ich aus einigen Forumsbeiträgen entnehmen konnte, scheint die Funktion fmincon ein probates Mittel zu sein. Allerdings scheitert es bisher an der Umsetzung.
Quellcode:
Ich bin für jede Hilfestellung dankbar!
[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.01.2014, 23:44
Titel:
|
 |
Hallo,
schau dir mal lsqcurvefit an. Da gibst du nur die Daten und das Modell vor, und der Rest wird automatisch gemacht.
Grundsätzlich solltest du darauf achten, for-Schleifen möglichst zu vermeiden, da MATLAB dadurch (unnötig) ausgebremst wird - die Stärke von MATLAB ist nämlich das Arbeiten mit Vektoren.
Grüße,
Harald
|
|
|
ladida |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 26.01.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 01:38
Titel:
|
 |
Hallo Harald,
danke für deine Unterstützung. Ich werd mich dem Problem bei nächster Gelegenheit widmen
|
|
|
|
|
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.
|
|