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

Monte Carlo Sequenz

 

Dojo
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2014, 17:30     Titel: Monte Carlo Sequenz
  Antworten mit Zitat      
Hi Leute,
ich habe eine Frage zur MC-Simulation, ich lasse hier mit Absicht erstmal den Code weg, den ich bisher habe.
Ich habe ein Modell und einen experimentellen Geschwindigkeitsverlauf.
Nun möchte ich das Modell natürlich an den Verlauf anfitten, was auch alles mit lsqnonlin klappt, Allerdings möchte ich zur Auswahl der Startparameter (für lsqnonlin) bereits möglichst gute Startwerte bekommen, was ich bisher mit dem rand Befehl realisiere.

Wenn ich diese zufällig erzeugten Startparameter dann aber plotte, liegen die natürlich jenseits von Gut und Böse und nicht einmal in der Nähe des experimentellen Verlaufs. Daher bestimme ich die Abweichung zwischen diesen Parametersätzen und nehme davon den besten, welcher aber immer noch sehr weit vom Verlauf weg liegt.

Meine Frage:
Kennt jemand eine Möglichkeit möglichst genaue Parameter-Startwerte über eine Monte-Carlo-Methode oder ähnliches zu erzeugen?
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: 24.01.2014, 08:19     Titel:
  Antworten mit Zitat      
Hallo,

was du machst klingt sehr nach dem, was in MultiStart bereits implementiert ist. Sofern du die Global Optimization Toolbox hast, schau dir das doch mal an.

Ansonsten: viele Startpunkte generieren und nach Möglichkeit Schranken für die Startpunkte angeben - viel mehr kann man nicht machen.

Bei manchen Modellen ist es nahezu egal, welche Startwerte man wählt. Bei anderen Modellen ist es möglich, aus dem Datenverlauf sinnvolle Startwerte zu errechnen. Für letzteres müsste man aber das konkrete Modell kennen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.01.2014, 15:04     Titel:
  Antworten mit Zitat      
Ich habe noch nie mit der Global Optimization Toolbox gearbeitet, aber ich habe heute unter anderem gelernt, dass man beim fmincon-Solver ebenfalls die Möglichkeit hat Multistartpunkte zu generieren...
Ich würde es am liebsten händisch machen.

Deine Antwort hilft mir zwar schon weiter, aber wenn ich es sekbst schreiben wollte, müsste ich, wie du sagts, Grenzen festlegen.
Es ist natürlich ein leichtes sich mit rand quasizufällige Zahlen zu erzeugen, aber wie schränke ich da ein?

Was ich bisher habe ist das:

K = (rand(9,100000).*10.^((rand(9,100000)-0.5)*10))

In meinem Modell sind 9 Parameter, die alles sehr weit auseinander liegen und ich bin mir nicht einmal genau sicher, ob es wirklich die Parameter sind, die letztlich die "Richtigen" sind.
Genau diese Einschränkung ist daher das Problem, hast du dafür eine mögliche Lösung parat?
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.01.2014, 23:52     Titel:
  Antworten mit Zitat      
Hallo,

9 Parameter sind recht viel und bergen ein großes Risiko, dass man in lokale Minima läuft.

Wie sieht das Modell denn aus? Ist eine Vereinfachung möglich, so dass man zunächst mal mit weniger Parametern arbeitet?

Wenn du deine Startwerte auf einen bestimmten Bereich festlegst, heíßt das ja nicht, dass die Lösung auch in diesem Bereich sein muss. Nach der Wahl des Modells sollte man schon ein grobes Gefühl haben, in welcher Größenordnung die Parameter liegen können.

Als Startwerte würde ich hier nicht echte Zufallszahlen nehmen, sondern Quasizufallszahlen (sobolset oder haltonset), damit der Zahlenraum besser ausgefüllt wird - du hast ja i.d.R. nichts davon, wenn zwei Startwerte sehr nah beieinander liegen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
faris
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 27.01.14
Wohnort: newyork
Version: ---
     Beitrag Verfasst am: 27.01.2014, 13:42     Titel:
  Antworten mit Zitat      
I get a string 'b' and the string I want to assign the value of the variable a. because that happens in a loop I can not say b = a Is that understandable.
_________________

http://www.mybraindumps.net
http://www.aruba.com/
http://www.mybraindumps.net/SAS-Institute-exams.html
http://www.rockefeller.edu/
http://en.wikipedia.org/wiki/Brescia_University
Private Nachricht senden Benutzer-Profile anzeigen
 
Dojo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2014, 15:49     Titel:
  Antworten mit Zitat      
Hi Harald,
ja 9 Parameter sind echt viel, ich bekomme aber eine relativ robuste Schätzung hin. Vereinfachen kann ich nicht weiter. Das Modell sieht aus wie folgt:

Z = ((c_A.*c_B.*k1*k3*k5*k7) - (c_P.*c_Q.*k2*k4*k6*k8 )).*c_E;

N = (k2*(k4+k5)*k7)+(c_A.*k1*(k4+k5)*k7)+(c_B.*k3*k5*k7)+(c_A.*c_B.*k1*k3*(k5+k7))+(c_P.*c_A.*k1*k4*k6)+(c_B.*c_Q.*k3*k5*k8 )+(c_Q.*k2*(k4+k5)*k8 )+(c_P.*k2*k4*k6)+(c_P.*c_Q.*(k2+k4)*k6*k8 )+(c_A.*c_B.*c_P.*k1*k3*k6)+(c_B.*c_P.*c_Q.*k3*k6*k8 );

Modell = Z/N;

Wobei c_x jeweils gemessene Konzentrationen darstellen.
Ein neunter Parameter kommt für die Bestimmung von c_E hinzu.
Das ganze wird dann an gemessene Daten "angefittet".

Der Tipp mit sobolset ist nicht schlecht, ich informiere mich darüber.

LG
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.