<< Chapter < Page | Chapter >> Page > |
jcalcf.m
function [x,y,t,u,px,py,p] = jcalcf(X,Y,P)
is a function version of
jcalc, which allows arbitrary naming of variables.
function [x,y,t,u,px,py,p] = jcalcf(X,Y,P)% JCALCF [x,y,t,u,px,py,p] = jcalcf(X,Y,P) Function version of jcalc% Version of 5/3/95
% Allows arbitrary naming of variablesif sum(size(P) ~= [length(Y) length(X)])>0
error(' Incompatible vector sizes')end
x = X;y = Y;
p = P;px = sum(P);
py = fliplr(sum(P'));[t,u] = meshgrid(X,fliplr(Y));
jointzw.m Sets up joint distribution for $Z=g(X,Y)$ and $W=h(X,Y)$ and provides calculating matrices as in jcalc. Inputs are $P,X$ , and Y as well as array expressions for $g(t,u)$ and $h(t,u)$ . Outputs are matrices $Z,W,PZW$ for the joint distribution, marginal probabilities $PZ,PW$ , and the calculating matrices $v,w$ .
% JOINTZW file jointzw.m Joint dbn for two functions of (X,Y)
% Version of 4/29/97% Obtains joint distribution for
% Z = g(X,Y) and W = h(X,Y)% Inputs P, X, and Y as well as array
% expressions for g(t,u) and h(t,u)P = input('Enter joint prob for (X,Y) ');
X = input('Enter values for X ');Y = input('Enter values for Y ');
[t,u]= meshgrid(X,fliplr(Y));
G = input('Enter expression for g(t,u) ');H = input('Enter expression for h(t,u) ');
[Z,PZ]= csort(G,P);
[W,PW]= csort(H,P);
r = length(W);c = length(Z);
PZW = zeros(r,c);for i = 1:r
for j = 1:ca = find((G==Z(j))&(H==W(i)));
if ~isempty(a)PZW(i,j) = total(P(a));
endend
endPZW = flipud(PZW);
[v,w]= meshgrid(Z,fliplr(W));
if (G==t)&(H==u)
disp(' ')disp(' Note: Z = X and W = Y')
disp(' ')elseif G==t
disp(' ')disp(' Note: Z = X')
disp(' ')elseif H==u
disp(' ')disp(' Note: W = Y')
disp(' ')end
disp('Use array operations on Z, W, PZ, PW, v, w, PZW')
jdtest.m Tests a joint probability matrix P for negative entries and unit total probability..
function y = jdtest(P)
% JDTEST y = jdtest(P) Tests P for unit total and negative elements% Version of 10/8/93
M = min(min(P));S = sum(sum(P));if M<0
y = 'Negative entries';elseif abs(1 - S)>1e-7
y = 'Probabilities do not sum to one';else
y = 'P is a valid distribution';end
tappr.m Uses the density function to set up a discrete approximation to the distribution for absolutely continuous random variable X .
% TAPPR file tappr.m Discrete approximation to ac random variable
% Version of 4/16/94% Sets up discrete approximation to distribution for
% absolutely continuous random variable X% Density is entered as a function of t
r = input('Enter matrix [a b]of x-range endpoints ');
n = input('Enter number of x approximation points ');d = (r(2) - r(1))/n;
t = (r(1):d:r(2)-d) +d/2;PX = input('Enter density as a function of t ');
PX = PX*d;PX = PX/sum(PX);
X = t;disp('Use row matrices X and PX as in the simple case')
tuappr.m Uses the joint density to set up discrete approximations to $X,Y,t,u$ , and density.
% TUAPPR file tuappr.m Discrete approximation to joint ac pair
% Version of 2/20/96% Joint density entered as a function of t, u
% Sets up discrete approximations to X, Y, t, u, and densityrx = input('Enter matrix [a b] of X-range endpoints ');ry = input('Enter matrix [c d] of Y-range endpoints ');nx = input('Enter number of X approximation points ');
ny = input('Enter number of Y approximation points ');dx = (rx(2) - rx(1))/nx;
dy = (ry(2) - ry(1))/ny;X = (rx(1):dx:rx(2)-dx) + dx/2;
Y = (ry(1):dy:ry(2)-dy) + dy/2;[t,u] = meshgrid(X,fliplr(Y));P = input('Enter expression for joint density ');
P = dx*dy*P;P = P/sum(sum(P));
PX = sum(P);PY = fliplr(sum(P'));
disp('Use array operations on X, Y, PX, PY, t, u, and P')
Notification Switch
Would you like to follow the 'Applied probability' conversation and receive update notifications?