Generar números aleatorios mediante la inversión de la distribución uniforme
En el ejemplo se muestra cómo generar números aleatorios mediante el método de la inversión de la distribución uniforme. Es útil para distribuciones cuando se puede calcular la función de distribución acumulativa inversa, pero no se pueden crear muestras a partir de la distribución directamente.
Paso 1: Generar números aleatorios a partir de la distribución uniforme estándar.
Utilice rand
para generar 1000 números aleatorios a partir de la distribución uniforme en el intervalo (0,1).
rng('default') % For reproducibility u = rand(1000,1);
El método de inversión se basa en el principio de que las funciones de distribución acumulativa continuas (cdf) se extienden uniformemente por el intervalo abierto (0,1). Si es un número aleatorio uniforme en (0,1), entonces genera un número aleatorio a partir de cualquier distribución continua con la cdf F
especificada.
Paso 2: Generar números aleatorios a partir de la distribución de Weibull.
Utilice la función de distribución acumulativa inversa para generar los números aleatorios a partir de una distribución de Weibull con los parámetros A = 1
y B = 1
que corresponden a las probabilidades de u
. Represente los resultados.
x = wblinv(u,1,1); histogram(x,20);
El histograma muestra que los números aleatorios generados mediante la función wblinv
de la cdf inversa de Weibull tienen una distribución de Weibull.
Paso 3: Generar números aleatorios a partir de la distribución normal estándar.
Los mismos valores de u
pueden generar números aleatorios a partir de cualquier distribución, como la normal estándar, siguiendo el mismo procedimiento con la cdf inversa de la distribución deseada.
figure x_norm = norminv(u,1,1); histogram(x_norm,20)
El histograma muestra que, utilizando la cdf norminv
inversa normal estándar, los números aleatorios generados a partir de u
ahora tienen una distribución normal estándar.
Consulte también
wblinv
| norminv
| rand
| hist