Estoy haciendo algunas simulaciones de la ecuación de Langevin, para varias fuerzas externas. Se le dijo que el C es rand()
de stdlib.h
puede introducir un sesgo en los resultados de mi, estoy usando un Mersenne Twister.
Sin embargo, me gustaría saber (y ver) exactamente qué tipo de errores puede introducir un generador congruencial lineal en mi simulación. Estas son cosas que he probado:
- Generando tuplas 3D de randoms para tratar de ver hiperplanos. No puedo ver nada
- Haciendo la FFT de un gran vector de números aleatorios. Es casi lo mismo tanto para Mersenne Twister como para
rand()
. - Comprobación del principio de equipartición de una partícula en movimiento browniano. Ambos están de acuerdo integradores en el valor esperado de con el mismo número de dígitos significativos.
- Al ver qué tan bien se agrupan en una serie de contenedores que no son dos poderosos. Ambos dan los mismos resultados cualitativos, nadie es mejor.
- En cuanto a los caminos browniano para ver claras divergencias de . De nuevo, sin suerte.
- Distribución de puntos en un círculo. Lleno, y solo en el perímetro. Entre todos ellos y entre vecinos más cercanos (respuesta de Shor, más abajo en los comentarios). Disponible en este resumen , solo ejecútelo con Julia 0.5.0 después de instalar las bibliotecas necesarias (consulte el resumen para obtener instrucciones).
Me gustaría enfatizar que estoy buscando sesgos introducidos en el contexto de las simulaciones físicas. Por ejemplo, he visto cómo rand()
falla miserablemente las pruebas de Dieharder mientras que el Mersenne Twister no lo hace, pero por el momento eso no significa demasiado para mí.
¿Tiene algún ejemplo físico, concreto, de cómo un mal generador de números aleatorios destruye una simulación de Montecarlo?
Nota: He visto cómo los PRNG RANDU
pueden ser horribles. Me interesan los ejemplos no obvios, de generadores que parecen inocentes pero que en última instancia introducen sesgos.