<< Chapter < Page Chapter >> Page >

multinom.m Multinomial distribution (small N , m ).

% MULTINOM file multinom.m Multinomial distribution % Version of 8/24/96% Multinomial distribution (small N, m) N = input('Enter the number of trials ');m = input('Enter the number of types '); p = input('Enter the type probabilities ');M = 1:m; T = zeros(m^N,N);for i = 1:N a = rowcopy(M,m^(i-1));a = a(:); a = colcopy(a,m^(N-i));T(:,N-i+1) = a(:); % All possible strings of the types endMT = zeros(m^N,m); for i = 1:mMT(:,i) = sum(T'==i)'; endclear T % To conserve memory disp('String frequencies for type k are in column matrix MT(:,k)')P = zeros(m^N,N); for i = 1:Na = rowcopy(p,m^(i-1)); a = a(:);a = colcopy(a,m^(N-i)); P(:,N-i+1) = a(:); % Strings of type probabilitiesend PS = prod(P'); % Probability of each stringclear P % To conserve memory disp('String probabilities are in row matrix PS')
Got questions? Get instant answers now!

Some matching problems

Cardmatch.m Sampling to estimate the probability of one or more matches when one card is drawn from each of n d identical decks of c cards. The number n s of samples is specified.

% CARDMATCH file cardmatch.m Prob of matches in cards from identical decks % Version of 6/27/97% Estimates the probability of one or more matches % in drawing cards from nd decks of c cards each% Produces a supersample of size n = nd*ns, where % ns is the number of samples% Each sample is sorted, and then tested for differences % between adjacent elements. Matches are indicated by% zero differences between adjacent elements in sorted sample c = input('Enter the number c of cards in a deck ');nd = input('Enter the number nd of decks '); ns = input('Enter the number ns of sample runs ');X = 1:c; % Population values PX = (1/c)*ones(1,c); % Population probabilitiesN = nd*ns; % Length of supersample U = rand(1,N); % Matrix of n random numbersT = dquant(X,PX,U); % Supersample obtained with quantile function; % the function dquant determines quantile% function values of random number sequence U ex = sum(T)/N; % Sample averageEX = dot(X,PX); % Population mean vx = sum(T.^2)/N - ex^2; % Sample varianceVX = dot(X.^2,PX) - EX^2; % Population variance A = reshape(T,nd,ns); % Chops supersample into ns samples of size ndDS = diff(sort(A)); % Sorts each sample m = sum(DS==0)>0; % Differences between elements in each sample % Zero difference iff there is a matchpm = sum(m)/ns; % Fraction of samples with one or more matches Pm = 1 - comb(c,nd)*gamma(nd + 1)/c^(nd); % Theoretical probability of matchdisp('The sample is in column vector T') % Displays of results disp(['Sample average ex = ', num2str(ex),]) disp(['Population mean E(X) = ',num2str(EX),]) disp(['Sample variance vx = ',num2str(vx),]) disp(['Population variance V(X) = ',num2str(VX),]) disp(['Fraction of samples with one or more matches pm = ', num2str(pm),]) disp(['Probability of one or more matches in a sample Pm = ', num2str(Pm),])
Got questions? Get instant answers now!

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Applied probability. OpenStax CNX. Aug 31, 2009 Download for free at http://cnx.org/content/col10708/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Applied probability' conversation and receive update notifications?

Ask