Store value into matrix, and then perform calculation upon each element
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi, I have a question about performing calculation on each matrix elements.
My code is here:
syms m a x u;
a=16807;
m=2^31-1;
x=1;
for i=1:10^2
y=a*x
x=mod(y,m)
u(i)=x/m
X = betainv(u,2,3); % beta distributed random fraction of defective parts
Y = logninv(u,5,3); % lognormal distributed demand amount
Q = 100;
Revenue=min(Y,(1-X)*Q)*53; %the total revenue
Cost=27*Q;
Salvage=3*max(Q*(1-X)-Y,0)+X*Q; %all the unsolde parts are salvaged, defective parts included
p=Revenue+Salvage-Cost;
end;
expectedprofit=mean(p)
Basically, I generate a series of uniformly distributed random numbers. And then I use these numbers to genearate beta and lognormal distributed ones, and I would like to store them into matrix X and Y. Then I want to perform the profit calculation (revenue-cost+salvage cost etc.) for each of the values in X and Y. I just don't know how to do that.
I tried to put things as X(i) and Y(i) (to store value into matrix), but MLATLAB finds an error in that step.
I just started learning Monte Carlo simulation using MATLAB. Hope somebody can help me out here.
Thanks a lot! Ying
0 commentaires
Réponse acceptée
Ondrej
le 6 Fév 2012
I guess you want to do
X(i) = betainv(u(i),2,3);
Y(i) = logninv(u(i),5,3);
you either missed the u(i) index, or you want to store growin u, in that case X(:,i), Y(:,i) would be some matrices (but with growing columnsize..size in your case u is growing).
2 commentaires
Ondrej
le 11 Fév 2012
Well, the difference is that X(i) means X is a vector and X(:,i) is a matrix (meaning the i-th column of X). See http://www.mathworks.com/help/techdoc/math/f1-85462.html
Btw. if you do for loops with variables growing inside, consider preallocating: http://www.mathworks.com/support/solutions/en/data/1-18150/
As for your code, it doesn't work for me because of the symbolic variables in betainv, so I think I can't help you with that.
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!