MATLAB Answers

0

Plotting graphs over each other for N iterations

Asked by Katie Brewer on 21 Feb 2019
Latest activity Commented on by Rena Berman on 2 Apr 2019
I have the follow code to model a brownian motion (from http://ac.aua.am/tigran_bunarjyan/Public/NA_Monte%20Carlo%20Presentation.pdf) but I want to plot for all the steps, ie have step=500; lines of brownian motions plotted on the same graph. I have read and watched so many tutorials but everything I have tried crashed matlab.
clear all
clc
S=100;
sigma=0.3;
T=1.2;
r=0.05;
step=500;
dt=T/step;
sqdt=sqrt(dt);
rr=randn(1, step);
St=S;
stockPrices=[];
ts=[];
stockPrices(1)=S;
ts(1)=0;
for st=1:step
St=St*(1+r*dt+sigma*sqdt*rr(1,st));
stockPrices(st+1)=St;
ts(st+1)=st;
end
%plot(ts,stockPrices)
title("Stock Price for Day =0...500");
xlabel=("Day");
ylabel=("Price");

  3 Comments

The link you posted gives:
404 - File or directory not found
Jan
on 21 Mar 2019
Katie Brewer has removed the contents of the question twice. She has removed the contents of her other 3 questions also. It seems, like she is not interested in a cooperative usage of the forum. What a pity.
(Answers Dev) Restored edit

Sign in to comment.

1 Answer

Answer by Gani
on 21 Feb 2019
Edited by Gani
on 21 Feb 2019

Check this.
clear all
clc
S=100;
sigma=0.3;
T=1.2;
r=0.05;
step=500;
dt=T/step;
sqdt=sqrt(dt);
rr=randn(1, step);
St=S;
stockPrices(1)=S;
ts= 1:step+1;
for st=1:step
St=St*(1+r*dt+sigma*sqdt*rr(1,st));
stockPrices(st+1)=St;
end
plot(ts,stockPrices)
title('Stock Price for Day =0...500');
xlabel('Day');
ylabel('Price');

  2 Comments

This doesn't work, it just prints what I had before.
where each random path is printed over the top of the old one?
In Mathworks File Exchange there are some Brownian Motion functions uploaded. You can use them. The graphs are in 3-D. You can modify it to 2D if necessary.

Sign in to comment.