Я роблю деякі імітації рівняння Лангевіна для різних зовнішніх сил. Говорив , що C це rand()
з stdlib.h
може ввести ухил в моїх результатах, я використовую Вихор Мерсенна.
Тим не менш, я хотів би знати (і бачити), які саме помилки може вводити лінійний конгрурентний генератор в моєму моделюванні. Це те, що я спробував:
- Створення 3D-кортежів рандов, щоб спробувати побачити гіперплани. Я нічого не бачу.
- Виконуємо на FFT великий вектор випадкових чисел. Це майже однаково і для Mersenne Twister, і для
rand()
. - Перевірка принципу обладнання для частинки в броунівському русі. Обидва інтегратори погоджуються в очікуваному значенні з однаковою кількістю значущих цифр.
- Побачивши, наскільки добре вони біняють у кількох бункерах, що не є двома потужностями. Обидва дають однакові якісні результати, і ніхто не буде кращим.
- Дивлячись на броунівські контури, щоб побачити чіткі розбіжності від . Знову не пощастило.
- Розподіл балів по колу. Заливається, і тільки по периметру. Між усіма ними і між найближчими сусідами (відповідь Шор, нижче в коментарях). Доступний у цьому суті , просто запустіть його з Julia 0.5.0 після встановлення необхідних бібліотек (інструкції див. У суті).
Я хотів би підкреслити, що я шукаю введені упередження в контексті фізичних симуляцій. Наприклад, я бачив, як rand()
жалюгідно не спрацьовує випробування на дегердер, тоді як Мерсенн Твістер не робить, але на даний момент це не означає для мене занадто багато.
Чи є у вас якісь фізичні, конкретні приклади того, як поганий генератор випадкових чисел руйнує імітацію Монтекарло?
Примітка. Я бачив, як подібні PRNG RANDU
можуть бути жахливими. Мене цікавлять не очевидні приклади генераторів, які виглядають невинні, але в кінцевому рахунку вносять упередженість.