Generación de números aleatorios



Documentos relacionados
ESTADÍSTICA 2OO7/2OO8 TEMA 10: SIMULACIÓN DE VARIABLES ALEATORIAS

13. Técnicas de simulación mediante el método de Montecarlo

Métodos generales de generación de variables aleatorias

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

Generadores de números aleatorios

1. Ecuaciones no lineales

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Probabilidades y Estadística (Computación) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J.

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

El concepto de integral con aplicaciones sencillas

Cálculo Simbólico también es posible con GeoGebra

RELACIONES DE RECURRENCIA

18. Camino de datos y unidad de control

2. Aritmética modular Ejercicios resueltos

Funciones de varias variables

ESTIMACIÓN. puntual y por intervalo

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Aritmética binaria

Números aleatorios. Contenidos

Tema 5. Aproximación funcional local: Polinomio de Taylor. 5.1 Polinomio de Taylor

Euclides extendido y Test de primalidad probabiĺıstico

AXIOMAS DE CUERPO (CAMPO) DE LOS NÚMEROS REALES

1. MEDIDAS DE TENDENCIA CENTRAL

Tema 1: Test de Distribuciones de Probabilidad

Covarianza y coeficiente de correlación

SIMULACION. Formulación de modelos: solución obtenida de manera analítica

Sistemas de numeración

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

Tema 10. Estimación Puntual.

CAPÍTULO III. FUNCIONES

Curso: Métodos de Monte Carlo. Unidad 1, Sesión 2: Conceptos básicos

Estructuras de Datos y Algoritmos

Medidas de tendencia central o de posición: situación de los valores alrededor

Algoritmos y Diagramas de Flujo 2

Solución ESTADÍSTICA. Prueba de evaluación contínua 2 - PEC2

Notas de Teórico. Sistemas de Numeración

1. Dominio, simetría, puntos de corte y periodicidad

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones

Análisis de los datos

Ejercicios de Modelos de Probabilidad

Tema 3. Medidas de tendencia central Introducción. Contenido

PROBLEMA [1.5 puntos] Obtener la ecuación de la recta tangente en el punto ( 2, 1) a la curva dada implícitamente por y 3 +3y 2 = x 4 3x 2.

MÉTODOS DE ELIMINACIÓN Son tres los métodos de eliminación más utilizados: Método de igualación, de sustitución y de suma o resta.

Elementos de Probabilidad y Estadística Segundo de Economía Examen del 26 de junio de 2006 DURACIÓN: 2 horas

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos:

Tema 5. Análisis de regresión (segunda parte) Estadística II, 2010/11

Diagnosis y Crítica del modelo -Ajuste de distribuciones con Statgraphics-

Generación de Números Pseudo-Aleatorios

Análisis de medidas conjuntas (conjoint analysis)

Integración por el método de Monte Carlo

MÓDULO 2. LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO SIMPLE

Divisibilidad y números primos

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

EJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores

Características de funciones que son inversas de otras

Función exponencial y Logaritmos

1. SOLUCIONES A LOS EJERCICIOS PROPUESTOS

ETS Caminos Santander. Curso Ejercicios de introducción a la programación.

Ejercicios de Programación Lineal

4 APLICACIONES LINEALES. DIAGONALIZACIÓN

7. Conclusiones. 7.1 Resultados

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Tema 2. Espacios Vectoriales Introducción

Aproximación local. Plano tangente. Derivadas parciales.

Relaciones y funciones

Integración de Monte Carlo Técnicas Avanzadas de Gráficos en 3D

El Método de Monte Carlo. Curso de Estadística TAE, 2005 J.J. Gómez-Cadenas

8. Estimación puntual

Muestreo estadístico. Relación 2 Curso

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

1. Definición 2. Operaciones con funciones

Materia: Informática. Nota de Clases Sistemas de Numeración

CAPÍTULO 7 7. CONCLUSIONES

Bases de datos en Excel

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

5 Ecuaciones lineales y conceptos elementales de funciones

Tratamiento y Transmisión de Señales Ingenieros Electrónicos SEGUNDA PRÁCTICA

Matemáticas 2º BTO Aplicadas a las Ciencias Sociales

Práctica 5. Curso

INTERNET I LECCIÓN N 3 Cambio de la página principal

PROGRAMACIÓN LINEAL Introducción Inecuaciones lineales con 2 variables

8.1. Introducción Dependencia/independencia estadística Representación gráfica: diagrama de dispersión Regresión...

CÁLCULO PARA LA INGENIERÍA 1

Profr. Efraín Soto Apolinar. Factorización

El método de Monte Carlo: generalidades. Simulación de Distribuciones de Poisson. Simulación de Distribuciones Generales

(A) Primer parcial. si 1 x 1; x 3 si x>1. (B) Segundo parcial

PROBLEMAS RESUELTOS SELECTIVIDAD ANDALUCÍA 2015 MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES TEMA 1: MATRICES. Junio, Ejercicio 1, Opción B

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

CANTABRIA / JUNIO 04. LOGSE / MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES / ÁLGEBRA / BLOQUE 1 / OPCIÓN A

1. INVERSA DE UNA MATRIZ REGULAR

Servicio de Informática

Semana de dieta (X) Peso en Kg (Y)

Ejercicios resueltos de vectores

Tema 12: Contrastes Paramétricos

SIMULACIÓN CAPITULO 3 LECTURA 6.3. SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México 3.

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

UNIVERSIDAD DE ATACAMA

Transcripción:

Generación de números aleatorios Marcos García González (h[e]rtz) Verano 2004 Documento facilitado por la realización de la asignatura Métodos informáticos de la física de segundo curso en la universidad autónoma de Barcelona en el transcurso del año 2003-2004. 1. Números uniformemente distribuidos Un problema básico que nos encontramos habitualmente es el de obtener secuencias de números uniformemente distribuidos en un intervalo [0, 1]. La diferentes posibilidades para resolver dicho problema son: i) Buscar en tablas de números aleatorios publicadas (libros, internet...); ii) Observar un proceso físico tal como la desintegración radiactiva, el ruido eléctrico...; iii) Los lenguajes de programación y las hojas electrónicas incluyen una función para generarlos iv) Mediante algorismos de generación de números aleatorios Las principales ventajas de los generadores de números aleatorios son: - Rapidez - Comodidad - Reproducibilidad - Portabilidad Y la desventaja fundamental: - Las secuencias obtenidas no son realmente aleatorias, ya que se obtienen con operaciones deterministas. Solo podemos obtener secuencias pseudo-aleatorias, que a su vez satisfacen algunos criterios de aleatoriedad adecuados. Los números generados deben cumplir ciertas características para que sean válidos. Dichas características son: 1

1. Uniformemente distribuidos. 2. Estadísticamente independientes. 3. Su media debe ser estadísticamente igual a 1/2. 4. Su varianza debe ser estadísticamente igual a 1/12. 5. Su periodo o ciclo de vida debe ser largo. 6. Deben ser generados a través de un método rápido. 7. Generados a través de un método que no requiera mucha capacidad de almacenamiento de la computadora. Normalmente se utilizan números enteros, ya que su aritmética es exacta y rápida. Se generan enteros N i entre 0 y M 1, y x i = N i /M da valores reales en el intervarlo [0, 1). En general los algoritmos utilizan relaciones de recurrencia del tipo en el caso de recurrencia simple, o bien N i = f(n i 1 ) N i = f(n i 1,..., N i k ) para el caso de una recurrencia de orden k. Se necesitará dar un valor inicial para comenzar el algoritmo (k valores para recurrencias de orden k). 1.1. Generadores de congruencia lineal (GCL) Estos generadores son los más utilizados y los más conocidos. Se basan en la relación de recurrencia N i+1 = (an i + c) mod m donde a es el multiplicador y m el módulo. - Hay m valores posibles de N i, entre 0 i m 1. - La secuencia es periodica: cuando vuelve a aparecer un número por segunda vez, la secuencia se vuelve a repetir. El periodo depende de los valores de a, c y m, así como del valor inicial; nótese que el máximo posible es m. Recordemos que lo que nos interesa para trabajar con un buen generador de números aleatorios es que la distribución de los números obtenidos tiene que ser uniforme, no deben de haber correlaciones entre los terminos de la secuencia, el periodo debe ser lo más largo posible, y el algorismo debe ser de ejecución rápida. 2

1.1.1. Mejora de los generadores de congruencia lineal Las limitaciones más importantes de los generadores son su periocidad (normalmente el periodo no suele ser más grande de 2 32 4 10 9 ) y la posible presencia de correlaciones entre términos consecutivos de la secuencia. Una manera sencilla de suprimir éstas limitaciones es desordenar un poco la secuencia mediante el siguiente procedimiento: Se parte de un generador que da enteros aleatorios entre 0 y m 1, y en primer lugar se genera con el GCL un vector que contiene una lista de N enteros aleatorios j n, así como un entero aleatorio y. Se determina el índice k = [y N/m], entre 0 y N 1. El elemento j k de la lista se da como un nuevo nombre aleatorio, y se reasigna a la variable y el valor j k. El valor de j k se renueva con el GCL, y se vuelve a repetir los pasos desde la determinación del índice k. 1.2. Generadores de desplazamiento de bits En estos generadores cada nuevo número entero aleatorio N i, se obtiene manipulando los bits del número anterior, N i 1. En lenguaje C, esto se puede hacer facilmente utilizando operadores sobre bits, >>, <<,,, &. 1.3. Generadores de Fibonacci Las grandes ventajas de estos generadores es que son generadores muy rápidos que tienen un periodo muy largo. La fomentación teorica en la que se basan es diferente a la de los GCL. Los generadores de Fibonacci se basan en una recurrencia del tipo N i = (N i r N i s )mod m donde r < s son enteros dados y denota alguna de las operaciones +,,,. Este tipo de generador precisa iniciar (con otro generador) y mantener una lista de los últimos s números generados. Otros tipos de generadores los podemos encontrar en: - W.H. Press, S.A. Teukolski, W.T. Vetterling i B.P. Flannery, Numerical Recipes in C, Cambridge University Press. -D.E. Knuth, The Art of computing programming, 2: Seminumerical Algorithms, Addison-Wesley. Antes de aceptar un nuevo generador hace falta verificar que satisface una série de pruebas, lo que llamaremos pruebas de aleatoriedad. 3

1.4. Pruebas de aleatoriedad Éstas consisten basicamente en realizar dos tipos de pruebas, empíricas y teoricas. Si los generadores superan estas pruebas, podremos asegurar que estamos ante un generador de números aleatorios bastante competente. Pruebas empíricas (sobre la muestra de la secuencia) - Test de uniformidad: hace falta que los valores esten uniformemente distribuidos en [0, 1]. Se puede realizar un test χ 2. Alternativamente, podemos estimar los momentos de orden k, X k = 1/N i (x i) k y comprobar que se aproximan a sus correspondientes valores teoricos, 1/(k + 1). - Test serial: se generan parejas de valores (x 1, x 2 ), y se comprueba si se distribuyen uniformemente en el cuadrado [0, 1] [0, 1]. - Test de correlaciones: se determina la correlación entre números separados k lugares en la secuencia, C(k) = 1/N i x ix i+k. Su valor tendría que acercarse a 1/4. Pruebas teoricas (sobre toda la secuencia): La sencillez de los generadores de congruencia lineal permiten demostrar propiedades importantes: - Para determinar valores de a, c i m se obtienen secuencias de periodo máximo m. Por ejemplo, si m es una potencia de 2, bastará con que c sea impar y a sea igual a un múltiple de 4 mas 1. - Test espectral: si se forman vectores con k valores consecutivos, u n = (x n, x n+1... x n+k ), estos forman hiperplanos paralelos en el espacio k-dimensional. La separación d k entre los planos tiene que ser la mínima posible. 2. Distribuciones no uniformes El problema a tratar será el de obtener una secuencia con densidad de probabilidad dada w(y), definida en el intervalo (y min, y max ) a partir de una secuencia de números con distribución uniforme U(0, 1). Para resolver este problema utilizaremos el método del cambio de variable. Que concretamente consistirá en buscar una transformación y = f(x) para obtener la distribución deseada. Si la densidad de probabilidad de x es p(x), tenemos: P (X (x, x + dx)) = P (Y (y, y + dy)); p(x)dx = w(y)dy; Si x U(0, 1) la integración de esta ecuación resulta ser x 0 dx = y min w(y )dy. 4

Si sabemos calcular la integral, obtenemos una relación del tipo X = g(y ), que se tiene que invertir para poder obtener Y = f(x). 2.1. Ejemplos: Distribución exponencial. Para obtener Y con distribución { 0, y < 0 w(y) = λe λy, y [0, + ) (1) entonces nos queda la ecuación x = 0 λe λy dy = 1 e λy por lo tanto, el cambio adecuado será y = 1 λln(1 x). Distribución normal. Para obtener Y N(0, 1), nos queda la siguiente ecuación x = e y 2 /2 dy 2π La integral no se puede resolver analíticamente, y menos aun invertir la relación para obtener Y = f(x). La alternativa es aplicar el algoritmo de Box- Muller. Que permite obtener 2 valores independientes x 1, x 2 con distribución N(0, 1) : si x 1, x 2 son las coordenadas de un punto del plano, la densidad de probabilidad de sus coordenadas polares es w(r, θ) = p(x 1, x 2 ) (x 1, x 2 ) (r, θ) = 1 2π re r 2 /2, θ [0, 2π], r [0, + ) Por lo tanto, θ U(0, 2π) i r tiene la densidad de probabilidad re r2 /2. Se pueden obtener a partir de 2 números z 1, z 2 U(0, 1) con las transformaciones θ = 2πz 1, r = 2lnz 2. Por lo tanto x 1, x 2 se pueden obtener con las transformaciones { x1 = 2 ln(z 2 ) cos(z 1 ) x 2 = (2) 2 ln(z 2 ) sin(z 1 ) Método de aceptación-rechazo: Es un método sencillo y general, aunque en ocasiones no muy eficiente. Sea p(x) definida en un intervalo finito, (a, b), y M una cota superior de p(x). Se generan dos valores aleatorios x U(a, b) y p U(0, M). Entonces: { se acepta x si p(x) p (3) se rechaza x si p(x) < p De esta manera el valor x aparece con una densidad de probabilidad p(x), aunque no se aprovechan todos los valores que obtenemos en la realización del método. De todos modos, este es el único método disponible cuando la distribución de probabilidades es complicada. De hecho es la base del algoritmo de Metropolis, posiblemente el más utilizado en física computacional. 5