Simuler de 1 000 mouvements browniens géométriques dans MATLAB
J'ai actuellement de code pour simuler un géométriques Marron mouvement, avec l'aimable autorisation de http://www-math.bgsu.edu/~zirbel/sde/matlab/index.html.
Cependant, je tiens à générer de 1 000 simulations et à les afficher dans un graphique.
Les codes que j'ai en ce moment pour produire une seule simulation sont comme suit:
% geometric_brownian(N,r,alpha,T) simulates a geometric Brownian motion
% on [0,T] using N normally distributed steps and parameters r and alpha
function [X] = geometric_brownian(N,r,alpha,T)
t = (0:1:N)'/N; % t is the column vector [0 1/N 2/N ... 1]
W = [0; cumsum(randn(N,1))]/sqrt(N); % S is running sum of N(0,1/N) variables
t = t*T;
W = W*sqrt(T);
Y = (r-(alpha^2)/2)*t + alpha * W;
X = exp(Y);
plot(t,X); % plot the path
hold on
plot(t,exp(r*t),':');
axis([0 T 0 max(1,exp((r-(alpha^2)/2)*T+2*alpha))])
title([int2str(N) '-step geometric Brownian motion and its mean'])
xlabel(['r = ' num2str(r) ' and alpha = ' num2str(alpha)])
hold off
Vous devez vous connecter pour publier un commentaire.
Que le code ne peut pas être utilisé directement pour simuler de 1000 chemins/simulations. Malheureusement, il n'a pas été vectorisé. La façon la plus simple pour faire ce que vous voulez est d'utiliser un
for
boucle:C'est plutôt lent et inefficace. Vous aurez besoin de modifier la fonction de beaucoup pour vectoriser il. Une chose qui serait de l'amélioration du rendement est si vous avez au moins enlevé le tracé du code à partir de l'intérieur de la fonction et a couru que séparément après la boucle.
Une autre solution pourrait être d'utiliser le
sde_gbm
fonction dans ma SDETools boîte à outils, qui est entièrement vectorisé et beaucoup plus rapide:Dans les deux cas, on obtient une intrigue qui ressemble à quelque chose comme ceci
Pour effectuer 1000 simulations, le simple serait:
Traçage est juste comme avant
Relativement court (petite) séries de simulations en boucle au-dessus de votre code ou de l'exécution de la ci-dessus doivent faire. Pour les poids lourds de simulations que vous pouvez bénéficier de Horchler promis avantage de vitesse.