Generación de variables aleatorias
Enviado por Jerson Armijos Jaén • 18 de Noviembre de 2023 • Ensayo • 589 Palabras (3 Páginas) • 219 Visitas
SIMULACIÓN
PROYECTO
GENERACIÓN DE VARIABLES ALEATORIAS
Contenido
Procedimiento Aceptación – Rechazo2
Función de densidad de la probabilidad2
Algoritmo2
Implementación2
Generar los datos3
Graficar el resultado de la PDF real y estimada4
Procedimiento Métodos Específicos5
Función de densidad de la probabilidad5
Algoritmo5
Implementación5
Generar los datos6
Graficar el resultado de la PDF real y estimada6
Conclusiones7
Procedimiento Aceptación – Rechazo
[pic 1]
Función de densidad de la probabilidad
En estadística la distribución gamma es una distribución de probabilidad continua con dos parámetros k y λ cuya función de densidad para valores x > 0 es:
[pic 2]
Aquí “e” es el número e y Γ es la función gamma. Para valores k ∈ N la función gamma es Γ(k)=(k−1)! (el factorial de k-1).
Algoritmo
P1: Generar X ~ g
P2: Generar U ~ U (0,1), U
P3: Generar la salida X
Implementación
y = 0;
p = 1;
angulo = 2;
num_sim = 500;
% 0 - 20 linea para eje X
linX = (0:0.1:20);
hastaJ = size(linX,2);
% Valor de la variable aleatoria en cada simulación
for j = 1:num_sim,
u = unifrnd(0,1);
v = unifrnd(0,1);
while (u > ( exp(1) / (p + exp(1)) ))
y = (((p+exp(1))/exp(1))*u)^(1/p);
if v > (exp(1))^(-y)
u = unifrnd(0,1);
v = unifrnd(0,1);
else
u = -999999999;
end;
end;
x(j) = (1/angulo)*y;
end;
lambda = 1/angulo;
% media de x para hallar lambda
lambda2 = mean(x);
% Obtener PDF Real y Estimada
pdfReal = zeros(size(linX));
pdfEstimada = zeros(size(linX));
for j = 1:hastaJ,
pdfReal(j)= (lambda.*exp(-lambda.*linX(j))).*(((lambda.*linX(j)).^(p-1))/(factorial(p-1)));
pdfEstimada(j)= (lambda2.*exp(-lambda2.*linX(j))).*(((lambda2.*linX(j)).^(p-1))/(factorial(p-1)));
end
Generar los datos
% Graficar puntos
figure;
plot(x,'b*'),hold on
title('Muestras generadas');
[pic 3]
Datos generados con 50 simulaciones:
0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.571 | 0.571 | 0.571 |
0.597 | 0.574 | 0.574 | 0.562 | 0.582 | 0.582 | 0.582 | 0.582 | 0.582 | 0.512 |
0.600 | 0.519 | 0.519 | 0.519 | 0.519 | 0.571 | 0.571 | 0.571 | 0.571 | 0.571 |
0.571 | 0.571 | 0.571 | 0.571 | 0.597 | 0.582 | 0.582 | 0.582 | 0.582 | 0.582 |
0.512 | 0.512 | 0.512 | 0.527 | 0.600 | 0.519 | 0.519 | 0.519 | 0.519 | 0.519 |
Graficar el resultado de la PDF real y estimada
% Graficar PDF real y estimada
figure;
plot(linX,pdfReal,'b'), hold on
...