% --------------------------------------------- % EJERCICIO 1: COMPRENSIÓN DE LA FUNCIÓN hist.m % --------------------------------------------- clear all clc % a) Generar datos rand('seed', 0) X = fix(rand(1,30)*100); % b)Determinar cuántos valores hay en los intervalos[0-9],[10-19],[20-29]…[90-99] j = 0; for i = 1:10, cont(i) = length(find(X >= j & X <= (j + 9))); j = j + 10; end % c) Analizar qué hacen las siguientes instrucciones: hist(X) %Pinta un histograma con 10 barras equiespaciadas [a,b]=hist(X); %a contiene el número de elementos de cada barra y b el centro de cada intervalo a=hist(X,5:10:95);% a contiene el número de elementos de cada barra. Se especifican los centros de cada barra y su espaciado. [a,b]=hist(X,5:10:95);%a contiene el número de elementos de cada barra y b el centro de cada intervalo.Se especifican los centros de cada barra y su espaciado % d)¿Qué representan la primera y la última barra del histograma? %La primera barra contiene los elementos desde -infinito hasta el final del primer %intervalo. La última barra contiene los elementos desde el inicio del %último intervalo hasta +infinito. % e) ¿Cuánto vale sum(a)? s_a = sum(a); % f)¿Cómo convierto los valores del histograma a probabilidades, o sea, % a la probabilidad de que tomando un pez al azar esté en uno de los % intervalos usados en la construcción del histograma? p = a/30; % g) ¿Cuánto suman todas las probabilidades? s_p = sum(p); % h) Generar 1000 datos como en el paso A, y determinar qué sucede si el % número de intervalos utilizado es demasiado grande o demasiado pequeño. XX = fix(rand(1,1000)*100); hist(XX, 1:1:1000); %número demasiado grande axis([0 100 0 18]) hist(XX, 1:500:1000); %número demasiado pequeño %En ninguno de los casos el histograma es representativo, bien porque hay %un único elemento en cada barra o bien porque todos los elementos están en %una única barra. % i) Generar 100000 datos como en el paso A, determinar un buen nº de % intervalos y observar el histograma. ¿Qué ocurre? XXX = fix(rand(1,100000)*100); hist(XXX, 5:5:95); %El número de elementos por barra se estabiliza y tiende a una distrución %uniforme tal y como se han generado los datos. % -------------------------------------------------------- % EJERCICIO 2: DISTRIBUCIONES UNIFORME Y GAUSSIANA(NORMAL) % -------------------------------------------------------- clear all clc % a) Generar 100000 datos con la distribución uniforme, y otros 100000 % con distribución normal de la siguiente forma: X = rand(1,100000); Y = randn(1,100000); % b) Obtener sus histogramas, y analizar ambas distribuciones en cuanto % a la forma del histograma, media de los datos, rango de los datos, % suma de los valores del histograma, mínimo y máximo de los datos y a la % altura de la máxima barra del histograma. Repetir varias veces el paso a) % si es preciso. figure, hist(X) % histogramas figure, hist(Y) mX = mean(X); mY = mean(Y); % medias aX = hist(X); aY = hist(Y); % alturas de las barras sX = sum(aX); sY = sum(aY); % suma de los valores del histograma miX = min(X); miY = min(Y); % mínimos maX = max(X); maY = max(Y); % máximos ma_aX = max(aX); ma_aY = max(aY); % máxima altura % c)Determinar la media y la desviación standard de la distribución Y % usando las funciones m=mean(Y) y s=std(Y). m=mean(Y); s=std(Y); % d) Encontrar cuántos datos de Y (en porcentaje) se encuentran en los % intervalos definidos como [m-s,m+s], [m-2s,m+2s], [m-3s,m+3s] respectivamente. a1 = hist(Y, [m-2*s m m+2*s]); p1 = a1(2)*100/sY; a2 = hist(Y, [m-4*s m m+4*s]); p2 = a2(2)*100/sY; a3 = hist(Y, [m-6*s m m+6*s]); p3 = a3(2)*100/sY;