<< 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
$pn$ is the coefficient matrix
for the counting random variable generating function. Zeros for the missing powers must be included.The matrices
$y,py$ 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 $N,PN$ for the counting random variable N and calculates the joint distribution for $\{N,S\}$ 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 $(m,M)$ 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 $m,\phantom{\rule{0.166667em}{0ex}}M$ 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?