Store value into matrix, and then perform calculation upon each element
4 vues (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
Catégories
En savoir plus sur Linear Least Squares dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!