Está en la página 1de 3

ALUMNO: ALEJO GUTIERREZ REYES--- SIMULACION --- 15-16 HRS

PRUEBA DE HUECOS
%% Prueba de Huecos
clear all;clc;
%=================================================================================
% PRUEBAS
%=================================================================================
v = congMult(45, 7, 8, 30);
pruebaHuecos(v, 0.6, 1.0, 0.1, 7);
w = rand(30, 1);
pruebaHuecos(w, 0.6, 1.0, 0.05, 5);
%=================================================================================
% ALGORITMO DE LA PRUEBA DE HUECOS
%=================================================================================
%@parametros: vector de numeros, limite inferior del intervalo, limite superior
%del intervalo, nivel de significancia y grados de libertad
function pruebaHuecos(arre, alfa, beta, significancia, libertad)
%Determinaremos los huecos
ceroh=0; unh=0; dosh=0; tresomash=0; nhuecos=0;
n = length(arre);
for (i=1:n)
if(arre(i)>=alfa && arre(i)<=beta)
huecos(i)=1;
else huecos(i)=0;
end
end
aux="";
for i=2:n
if(huecos(i-1)==1 && huecos(i)==1)
ceroh=ceroh+1;
elseif(huecos(i)==0)
aux=aux+"0";
else
if(strcmp(aux,"0"))
unh=unh+1;
end
if(strcmp(aux,"00"))
dosh=dosh+1;
end
if(strcmp(aux,"000") || strcmp(aux,"0000") || strcmp(aux,"00000") ||
strcmp(aux,"000000"))
tresomash=tresomash+1;
end
aux="";
end
end
%con esta ultima condicion evaluamos si al final de las cadenas hay algun
%cero o ceros
if(strcmp(aux,"0"))
unh=unh+1;
end
if(strcmp(aux,"00"))
dosh=dosh+1;
end
if(strcmp(aux,"000") || strcmp(aux,"0000") || strcmp(aux,"00000") ||
strcmp(aux,"000000"))
tresomash=tresomash+1;
end
nhuecos=ceroh+unh+dosh+tresomash;
%creamos una arreglo de 4x3 para Pi, FOi, Fei de cada valor
teta=beta-alfa;
ALUMNO: ALEJO GUTIERREZ REYES--- SIMULACION --- 15-16 HRS

PRUEBA DE HUECOS
arreResultados=[teta*(1-teta)^0 ceroh nhuecos*(teta*(1-teta)^0);
teta*(1-teta)^1 unh nhuecos*(teta*(1-teta)^1);
teta*(1-teta)^2 dosh nhuecos*(teta*(1-teta)^2);
(1-teta)^3 tresomash nhuecos*((1-teta)^3);];
resultado=0;
for i=1:4
resultado=resultado+((arreResultados(i,2)-
arreResultados(i,3))^2)/arreResultados(i,3);
end
disp('================================================================================')
disp('El vector de numeros:')
disp(arre);
if(resultado<tabla(significancia,libertad))
disp('Pasa la prueba');
else disp('No pasa la prueba');
end

disp('================================================================================')
end
%=================================================================================
% TABLA
%=================================================================================
function z = tabla(significancia, grlibertad)
x = [0.001 0.0025 0.005 0.01 0.025 0.05 0.1];
y = [1,2,3,4,5,6,7];
t=[10.8274 9.1404 7.8794 6.6349 5.0239 3.8415 2.7055;
13.8150 11.9827 10.5965 9.2104 7.3778 5.9915 4.6052;
16.2660 14.3202 12.8381 11.3449 9.3484 7.8147 6.2514;
18.4662 16.4238 14.8602 13.2767 11.1433 9.4877 7.7794;
20.5147 18.3854 16.7496 15.0863 12.8325 11.0705 9.2363;
22.4575 20.2491 18.5475 16.8119 14.4494 12.5916 10.6446;
24.32123 22.0402 20.2777 18.4753 16.0128 14.0671 12.0170;
26.1239 23.7742 21.9549 20.0902 17.5345 15.5073 13.3616;
27.8767 25.4625 23.5893 21.6660 19.0228 16.9190 14.6837;
29.5879 27.1119 25.1881 23.2093 20.4832 18.3070 15.9872;];
ax = find(x==significancia);
by = find(y==grlibertad);
z = t(ax, by);
end
%=================================================================================
% CONGRUENCIAL MULTIPLICATIVO
%=================================================================================
%@params: semilla, k,g, cant de datos a generar.
function x = congMult(X0,k,g,n)
if mod(X0,2)==0
X0 = X0+1;
end
a = 3 + 8*k;
m = 2^g;
% - Algoritmo -
Xi = X0; %Siempre en la primera entrada
for k=1:n
%step 1
Xi = mod( a*Xi, m);
%step 2
v(k) = (Xi/(m-1));
end
[x] = v;
End
ALUMNO: ALEJO GUTIERREZ REYES--- SIMULACION --- 15-16 HRS

PRUEBA DE HUECOS

======================= =======================
El vector de numeros: El vector de numeros:
0.3725 0.4067
0.8980 0.6669
0.7804 0.9337
0.8667 0.8110
0.9373 0.4845
0.0824 0.7567
0.8431 0.4170
0.5529 0.9718
0.4980 0.9880
0.2706 0.8641
0.9059 0.3889
0.2392 0.4547
0.0588 0.2467
0.4588 0.7844
0.9686 0.8828
0.9294 0.9137
0.6235 0.5583
0.6471 0.5989
0.0275 0.1489
0.6157 0.8997
0.1843 0.4504
0.8353 0.2057
0.0902 0.8997
0.3020 0.7626
0.7490 0.8825
0.0196 0.2850
0.1529 0.6732
0.9922 0.6643
0.3098 0.1228
0.2078 0.4073
Pasa la prueba Pasa la prueba
=======================
>>

Intereses relacionados