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 Simulation mit verschiedenen Parameter-werten

 

Franzi.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2016, 11:34     Titel: Monte-Carlo Simulation mit verschiedenen Parameter-werten
  Antworten mit Zitat      
Hallo Zusammen,

ich möchte einen Markt simulieren und habe hierfür folgendes Gleichungssystem gelöst:

Code:
syms q1 s1 q2 s2 d g theta mu c11 c12 c21 c22
eqn1=d*s1+g*s1-q2*theta-c11-2*q1+1==0;        
eqn2=d*q1+g*q1-mu*s2-c12-2*s1+1==0;          
eqn3=d*s2+g*s2-q1*theta-c21-2*q2+1==0;        
eqn4=d*q2+g*q2-mu*s1-c22-2*s2+1==0;  

sol = solve([eqn1, eqn2, eqn3, eqn4], [q1,s1,q2,s2]);

q1 = sol.q1;
s1 = sol.s1;
q2 = sol.q2;
s2 = sol.s2;


Sodasss ich also q1, q2, s1, s2 in abhängigkeit der Paramter d g theta mu c11 c12 c21 c22 habe.

Nun möchte ich für d,g,theta,mu alle Werte zwischen 0 und 1 in 0,1-Schritten einsetzen (also jede kombination einmal) und in jeder möglichen Kombination für c11,c12,c21,c22 random Var. zwischen 0 - 0,01 einsetzen und diesen Vorgang 1000mal wiederholen.
Jede Kombination von d,g,theta,mu soll also 1000mal simuliert werden. Ich hab bis jetzt folgenden Code:

Code:
seq = 0:0.1:1;

for d = seq
    for g = seq
        for mu = seq
            for theta = seq

                % Shock ...
                c11 = randi([0 10],1)/1000;
                c12 = randi([0 10],1)/1000;
                c21 = randi([0 10],1)/1000;
                c22 = randi([0 10],1)/1000;


Jetzt weiß ich allerdings nicht, wie ich die n = 1000 da rein bekomme und wie ich dann q1,q2,s1,s2 berechnen kann.

Ich hoffe ihr könnt mir helfen!

Liebe Grüße
Franzi


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.02.2016, 13:46     Titel:
  Antworten mit Zitat      
Hallo,

n=1000 kann über eine weitere for-Schleife erreicht werden. Allerdings sollte dabei auch die Rechenzeit im Auge behalten werden.

Einsetzen kannst du mit subs . Es kann allerdings schneller sein, das Gleichungssystem direkt numerisch zu lösen. Zumindest sollte man darüber nachdenken, die symbolischen Ausdrücke mit matlabFunction in Function Handles umzuwandeln.

In welcher Form sollen denn die Ergebnisse gespeichert werden?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Franzi.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2016, 14:57     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für deine Antwort. Das mit Matlabfunction ist ein guter Hinweis. Ich kann also q1 in eine Funktion umwandeln und diese dann in die Schleife integrieren?

Code:


Ich hab mir schon gedacht, dass das eine lange Berechnung sein wird. Ich werde es zunächst ohne die n=1000 schleife probieren (also c11.... nur einmal eine Random Number zuweisen) um zu gucken ob mein Modell funktioniert.

Im Ergebnis möchte ich für jede Kombination von d,g,mu,theta jeweils einen Wert für q1,q2,s1,s2 erhalten und daraus dann jeweils Korrelationskoeffizienten errechnen (zwischen q1 und q2 bzw. s1 und s2).

Liebe Grüße
Franzi
 
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.