Estou fazendo algumas simulações da equação de Langevin, para várias forças externas. Sendo dito que C's rand()
destdlib.h
podem introduzir viés nos meus resultados, eu estou usando um Mersenne Twister.
No entanto, eu gostaria de saber (e ver) exatamente que tipo de erros um gerador congruencial linear pode introduzir em minha simulação. Estas são as coisas que eu tentei:
- Gerando tuplas 3D de randoms para tentar ver hiperplanos. Eu não consigo ver nada.
- Fazendo a FFT de um grande vetor de números aleatórios. É quase o mesmo para o Mersenne Twister e
rand()
. - Verificando o princípio da equipartição para uma partícula em movimento browniano. Ambos os integradores de concordar no valor esperado de com o mesmo número de dígitos significativos.
- Vendo o quão bem eles se encaixam em um número de caixas que não é um poder dois. Ambos dão os mesmos resultados qualitativos, ninguém sendo melhor.
- Olhando para caminhos browniano para ver divergências claras de . Mais uma vez, sem sorte.
- Distribuição de pontos em um círculo. Preenchido, e apenas no perímetro. Entre todos eles e entre os vizinhos mais próximos (resposta de Shor, abaixo nos comentários). Disponível nesta lista , basta executá-la com Julia 0.5.0 após instalar as bibliotecas necessárias (consulte a lista para obter instruções).
Gostaria de enfatizar que estou procurando viés introduzido no contexto de simulações físicas. Por exemplo, eu vi comorand()
falha miseravelmente os testes do dieharder, enquanto o Mersenne Twister não, mas no momento isso não significa muito para mim.
Você tem exemplos físicos, concretos, de como um gerador de números aleatórios ruim destrói uma simulação de Montecarlo?
Nota: Vi como o PRNG RANDU
pode ser horrível. Estou interessado em exemplos não óbvios, de geradores que parecem inocentes, mas que acabam apresentando viés.