|
|
Geschwindigkeit Simulation von stochastischen Prozessen |
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.12.2012, 12:23
Titel: Geschwindigkeit Simulation von stochastischen Prozessen
|
|
Hallo zusammen!
Ich möchte Aktienkurse mit Matlab mit folgendem Code simulieren:
s0=100
mu=0.00
mu=0.001
sigma=0.3
t=50
dt=1/t
n=50
s=zeros(t,n)
epsilon=randn(t,n)
for k=1:n
s(1,k)=s0
for i=2:t
s(i,k)=s(i-1,k)*mu*dt+s(i-1,k)*sqrt(dt)*sigma*epsilon(i,k)+s(i-1,k)
end
end
Für n=50 und t=50 geht das boch einigermassen schnell, vewende ich allerdings eine höhere Frequenz und mehr Pfade (n=10000, t=2000), scheint die Simulation kein Ende mehr zu nehmen.
Kann man die Sache irgendwie beschleunigen?
Vielen Dank für Eure Hilfe!
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 25.12.2012, 17:32
Titel: Re: Geschwindigkeit Simulation von stochastischen Prozessen
|
|
|
|
|
Hallo,
Eine einfache, aber grundlegend wichtige Regel für Matlab und alle anderen Programmiersprachen auch, ist das Vermeiden aller wiederholten Berechnungen. In Deinem Beispiel wäre es effizienter "sqrt(dt) * sigma" und "mu * dt" nur einmal ausserhalb der Schleifen zu berechnen.
Dann benötigt das Indizieren ebenfalls Zeit, so dass man dies so selten wie möglich macht. Hier wäre dies das Ausklammern von "s(i-1, k)".
Die Ausgabe ins Command-Window benötigt eine Menge Zeit. Da man dies aber wohl kaum benötigt, lässt man dies besser weg, indem man ein Semikolon anfügt:
Das starten der inneren Schleife benötigt Zeit. Wenn man zwei von einander unabhängige geschachtelte Schleifen hat, nimmt man die kürzere nach aussen. Das überlasse ich Dir.
Der nächste Schritt wäre es eine Vektorisierung zu versuchen. Matlab kann nämlich effizient mit Vektoren und Matrizen rechnen:
Oder als Matrix-Berechnung:
Leider kann ich das gerade nicht testen. Das Prinzip sollte aber klar geworden sein, so dass Du das selbst debuggen kannst.
Gruß, Jan
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.12.2012, 16:32
Titel: Re: Geschwindigkeit Simulation von stochastischen Prozessen
|
|
Das klappt ja super gut!!
Danke vielmals, very nice!
|
|
|
bella9091 |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 27.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.12.2012, 07:50
Titel:
|
|
Hallo du hast eine sehr schöne Aufgabe hier ...
Vielen Dank für diese ... keep it up.
_________________
Bella
|
|
|
|
|
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 - 2024
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.
|
|