<< Chapter < Page | Chapter >> Page > |
mgd.m Uses coefficients for the generating function for N and the distribution for simple Y to calculate the distribution for the compound demand.
% MGD file mgd.m Moment generating function for compound demand
% Version of 5/19/97% Uses m-functions csort, mgsum
disp('Do not forget zeros coefficients for missing')disp('powers in the generating function for N')
disp(' ')g = input('Enter COEFFICIENTS for gN ');
y = input('Enter VALUES for Y ');p = input('Enter PROBABILITIES for Y ');
n = length(g); % Initializationa = 0;
b = 1;D = a;
PD = g(1);for i = 2:n
[a,b]= mgsum(y,a,p,b);
D = [D a];
PD = [PD b*g(i)];
[D,PD]= csort(D,PD);
endr = find(PD>1e-13);
D = D(r); % Values with positive probabilityPD = PD(r); % Corresponding probabilities
mD = [D; PD]'; % Display details
disp('Values are in row matrix D; probabilities are in PD.')disp('To view the distribution, call for mD.')
mgdf.m
function [d,pd] = mgdf(pn,y,py)
is a function version of
mgd ,
which allows arbitrary naming of the variables. The input matrix
is the coefficient matrix
for the counting random variable generating function. Zeros for the missing powers must be included.The matrices
are the actual values and probabilities of the demand random variable.
function [d,pd] = mgdf(pn,y,py)% MGDF [d,pd] = mgdf(pn,y,py) Function version of mgD% Version of 5/19/97
% Uses m-functions mgsum and csort% Do not forget zeros coefficients for missing
% powers in the generating function for Nn = length(pn); % Initialization
a = 0;b = 1;
d = a;pd = pn(1);
for i = 2:n[a,b] = mgsum(y,a,py,b);d = [d a];pd = [pd b*pn(i)];[d,pd] = csort(d,pd);end
a = find(pd>1e-13); % Location of positive probabilities
pd = pd(a); % Positive probabilitiesd = d(a); % D values with positive probability
randbern.m Let S be the number of successes in a random number N of Bernoulli trials, with probability p of success on each trial. The procedure randbern takes as inputs the probability p of success and the distribution matrices for the counting random variable N and calculates the joint distribution for and the marginal distribution for S .
% RANDBERN file randbern.m Random number of Bernoulli trials
% Version of 12/19/96; notation modified 5/20/97% Joint and marginal distributions for a random number of Bernoulli trials
% N is the number of trials% S is the number of successes
p = input('Enter the probability of success ');N = input('Enter VALUES of N ');
PN = input('Enter PROBABILITIES for N ');n = length(N);
m = max(N);S = 0:m;
P = zeros(n,m+1);for i = 1:n
P(i,1:N(i)+1) = PN(i)*ibinom(N(i),p,0:N(i));end
PS = sum(P);P = rot90(P);
disp('Joint distribution N, S, P, and marginal PS')
inventory1.m Calculates the transition matrix for an inventory policy. At the end of each period, if the stock is less than a reorder point m , stock is replenished to the level M . Demand in each period is an integer valued random variable Y . Input consists of the parameters and the distribution for Y as a simple random variable (or a discrete approximation).
% INVENTORY1 file inventory1.m Generates P for (m,M) inventory policy
% Version of 1/27/97% Data for transition probability calculations
% for (m,M) inventory policyM = input('Enter value M of maximum stock ');
m = input('Enter value m of reorder point ');Y = input('Enter row vector of demand values ');
PY = input('Enter demand probabilities ');states = 0:M;
ms = length(states);my = length(Y);
% Calculations for determining P[y,s] = meshgrid(Y,states);T = max(0,M-y).*(s<m) + max(0,s-y).*(s>= m);
P = zeros(ms,ms);for i = 1:ms
[a,b]= meshgrid(T(i,:),states);
P(i,:) = PY*(a==b)';end
disp('Result is in matrix P')
Notification Switch
Would you like to follow the 'Applied probability' conversation and receive update notifications?