|
|
Programmieren Algorithmus |
|
kamatlab |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.06.2011, 10:42
Titel: Programmieren Algorithmus
|
 |
Hi,
ich bin ein absoluter Matlab - Anfänger , muss aber leider in kurzer Zeit einen für mich recht komplizierten Trust Region Algorithmus in Matlab programmieren. Ich weiß noch nicht einmal wie ich das mit den Iterationen angehen soll. Habt ihr irgendwie Tipps, woran ich mich orientieren kann. Kennt jemand vll sogar solche bereits programmierten Algorithmen im Netz oder hat jemand sonst einen Ratschlag?
Bin etwas verzeifelt gerade
Bin über jede Hilfe dankbar.
gruß kamatlab
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.06.2011, 11:14
Titel:
|
 |
Hallo,
falls es um Optimierung geht:
Der Trust-Region-Algorithmus ist in MATLAB schon verfügbar, z.B. in fmincon (Optimization Toolbox).
Grüße,
Harald
|
|
|
kamatlab |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 10:12
Titel:
|
 |
hi, ja es geht um Optimierung.
Matlab macht einfach nicht , was ich will . Hat jemand von euch vielleicht einen Algorithmus mal in Matlab programmiert woran ich mich orientieren kann? Ich weiß sonst echt nicht wie ich das zeitlich machen soll .
Das wäre wirklich eine große Hilfe.
Vielen Dank
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 10:46
Titel:
|
 |
Hallo,
am einfachsten ist natürlich immer, den fertig implementierten Algorithmus zu verwenden.
Wenn du das wirklich selber programmieren musst, dann kann man dir sicher Hilfestellungen anbieten, wenn du irgendwo konkrete Probleme hast. Dazu müsstest du aber das konkrete Problem benennen, am besten mit einem Code-Beispiel.
Ansonsten hilft Google und spuckt z.B. das aus:
http://www.optimization-online.org/DB_HTML/2009/04/2274.html
Grüße,
Harald
|
|
|
kamatlab |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 12:20
Titel:
|
 |
Ja, ich muss den selber schreiben.. leider .
Da es ja ein Algorithmus werden soll, muss ich ja functions definieren, wo ich immer andere neue Werte einstetzen kann.
Also hab ich für die Zielfunktion , die ich minimieren will so angefagen.
und für die Gleichungsnebenbedinugen
Ich hab diese beiden Funktionen gespeichert unter dem jeweilgen Namen c und f.
Dann öffne ich eine Skript datei und versuche jacobian zu verwenden.
jacobian(c) Wie mache ich das aber nun? Ich möchte halt , dass Matlab mir die Jakobimatrix bestimmt und dass ich dort auch Iterationswerte einstetzen kann. Ich brauch ja halt nicht die allgemeine Jacobimatrix , sonder die Jacobimatrix an den Iterationsstellen.
Ist das verständlich wo mein Problem liegt? Ist vermutlich halt keine schwiergie Sachen, nur ich kenn mich halt gar nicht aus und Matlab meckert immer .
|
|
|
kamatlab |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 12:28
Titel:
|
 |
Also wenn ich das so eingebe in ein Fenster
dann klappt der Befehl. So nützt es mir aber nichts, da ich ja so nicht die verschiedenen Iterationswerte einsetzten kann ,oder?
Am liebsten würde ich den ganzen Algorithmus in eine Datei , sprich in ein Fenster schreiben. Wenn ich da aber functions definieren will, dann erlaubt Matlab das nicht. Geht das irgendwie? Wie muss man das dann schreiben?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 12:54
Titel:
|
 |
Hallo,
deine Funktionen geben ja auch nichts zurück.
Ich nehme mal das Beispiel der Zielfunktion - ich würde sie so definieren:
und dann z.B. so aufrufen
Es sieht wirklich so aus, als ob du dich zunächst in die Konzepte von MATLAB einarbeiten solltest. Ein Startpunkt dafür könnte hier sein:
http://www.mathworks.com/help/relea.....matlab_prog/f7-38012.html
Grüße,
Harald
|
|
|
kamatlab |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 13:17
Titel:
|
 |
Meinst du man kann den Algorithmus auch ganz ohne Functions schreiben?
Also einfach mit einer Schleife z.B. so
Jetzt steht in A die Jakobimatrix von c . Kann ich da nun irgendwie was einsetzen? Der Befehl jacobian klappt ja nur , wenn man vorher die Variablen nicht festgelegt hat.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 14:01
Titel:
|
 |
Hallo,
es ist wenig sinnvoll, einen Trust-Region-Algorithmus mit symbolischen Variablen zu rechnen.
Statt mit jacobian musst du die Jacobi-Matrix dann über finite Differenzen annähern - oder du gibst die Formel explizit an, bei so einfachen Funktionen sind die Ableitungen ja kein Problem.
Natürlich kannst du das so schreiben, aber der Algorithmus soll ja sicher auch mal für andere Zielfunktionen und Nebenbedingungen eingesetzt werden können - und diese Möglichkeit nimmst du dir auf diese Weise.
Zum Verständnis habe ich mal ein einfaches Programm zur Nullstellensuche geschrieben:
Beispielaufruf:
Grüße,
Harald
|
|
|
kamatlab |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2011, 17:22
Titel:
|
 |
Hi Harald
vielen Dank für dein Beispiel. Ich versuch es mal weiter . Sollten Fragen auftauchen werde ich mich nochmal melden .. bestimmt
Danke
Gruß Thorsten
|
|
|
|
|
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.
|
|