How to add the iteration count to the code
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I started using Matlab to run Monte Carlo Simulation just a few weeks ago. I have a question about the iteration count:
My code looks like this:
% Toll Road Brownian Motion Problem
% Set the initial parameters
mu=0.2;
sigma=0.1;
price=3;
n=35;
% Generate the initial traffic amount
R(1,1)=normrnd(10000,3000);
% Brownian Motion Iteration (Traffic)
for i=2:36
R=R.*exp((mu-sigma-0.5*sigma^2)*1+sigma*normrnd(0,1)*1);
end;
% Revenue Calculation (Revenue)
Revenue=price*R*365;
This code runs good except that since I generated random numbers, I would like to generate them for 1000 times, and get the average value out of all the 1000 simulations.
I wanted to add
for k=1:1000
But I don't know how my R matrix can interact with this extra k count.
I'd really appreciate it someone could offer a bit of advice.
Thanks a lot.
Ying
采纳的回答
Sargondjani
2012-4-12
you could make a R into a row vector (this will be faster than looping over k)
N=1000; %number of simulations
R=normrnd(10000,3000,[1,N]);
for i=2:36
R=R.*exp((mu-sigma-0.5*sigma^2)*1+sigma*normrnd(0,1,[1,N])*1);
end
This should give you a row vector containing the R's for N simulations
更多回答(1 个)
Sargondjani
2012-4-12
With a loop, you could it something like this:
for ik=1:N;
R(1,ik)=normrnd(10000,3000);
for it=2:36
R(1,ik)=R(1,ik).*exp((mu-sigma-0.5*sigma^2)*1+sigma*normrnd(0,1)*1);
end;
end;
And if you want to keep track of the changes in R then you could do:
R(it,ik)=R(it-1,ik).*exp((mu-sigma-0.5*sigma^2)*1+sigma*normrnd(0,1)*1);
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!