Sei sulla pagina 1di 2

% Rutina para obtener el numero de inetentos esperados ARL usando

% Cadenas de Markov cond dos reglas simples


% definicion de limites
%c = 3.6384;
m = 5.0;
sigma = 1.0;
n=5;
limc = [];
limc1 = {};
lima1 = [];
lima=[];
arl0 = [];
arl1 = [];
k = [];
arl0o = [];
%
for c = .02:.02:6
for a = .02:.02:c-.02
alfa = 1 - (normcdf(m+c*sigma/sqrt(n),m,sigma/sqrt(n))-normcdf(m-
c*sigma/sqrt(n),m,sigma/sqrt(n)));
p0 = (normcdf(m+a*sigma/sqrt(n),m,sigma/sqrt(n))-normcdf(m-
a*sigma/sqrt(n),m,sigma/sqrt(n)));
p1 = 1-alfa-p0;
%
q = [p0 p1
p0 0];
[nr nc]=size(q);
l = inv(eye(nr)-q)*ones(nr,1);

limc = [limc c];


lima = [lima a];
arl0 = [arl0 l(1,1)];
end

end
v = [limc
lima
arl0];
v=v';
soln = v(find (arl0>368.5&arl0<371.5),:,:)

% Para probar el mejor para el desplazamiento deseado

[nrs ncs] = size(soln);

for j = 1:nrs
alfa1 = 1 - (normcdf(m+soln(j,1)*sigma/sqrt(n),5.5,sigma/sqrt(n))-
normcdf(m-soln(j,1)*sigma/sqrt(n),5.5,sigma/sqrt(n)));
p01 = (normcdf(m+soln(j,2)*sigma/sqrt(n),5.5,sigma/sqrt(n))-normcdf(m-
soln(j,2)*sigma/sqrt(n),5.5,sigma/sqrt(n)));
p11 = 1-alfa1-p01;
%
q1 = [p01 p11
p01 0];
[nr1 nc1]=size(q1);
l1 = inv(eye(nr1)-q1)*ones(nr1,1);

limc1 = [limc1 soln(j,1)];


lima1 = [lima1 soln(j,2)];
arl1 = [arl1 l1(1,1)];
end

% Tabla Final

tabla = [soln arl1']


mini = min(arl1);
minarl1=tabla(find(tabla(:,4)==mini),:,:,:)

% Para hacer Curva OC

copt = minarl1(1,1);
aopt = minarl1(1,2);

media = 5.0;
for m = 5.0:0.25:6.50

alfao = 1 - (normcdf(media+copt*sigma/sqrt(n),m,sigma/sqrt(n))-
normcdf(media-copt*sigma/sqrt(n),m,sigma/sqrt(n)));
p0o = (normcdf(media+aopt*sigma/sqrt(n),m,sigma/sqrt(n))-
normcdf(media-aopt*sigma/sqrt(n),m,sigma/sqrt(n)));
p1o = 1-alfao-p0o;
%
qo = [p0o p1o
p0o 0];
[nro nco]=size(qo);
lo = inv(eye(nro)-qo)*ones(nr,1);

arl0o = [arl0o lo(1,1)];


end

plot(5.0:0.25:6.5,arl0o)

Potrebbero piacerti anche