Çeşitli dış kuvvetler için Langevin denkleminin bazı simülasyonlarını yapıyorum. C olduğunu söylenmişti rand()
dan stdlib.h
benim sonuçlarında önyargılara neden olabilir, bir Mersenne Twister kullanıyorum.
Bununla birlikte, doğrusal bir uyumlu jeneratörün simülasyonumda tam olarak ne tür hataları ortaya çıkarabileceğini bilmek (ve görmek) istiyorum. Bunlar denediğim şeyler:
- Hiperplanları görmeye çalışmak için 3 boyutlu rastgele tuples üretmek. Hiçbir şey göremiyorum.
- Rastgele sayılardan oluşan büyük bir vektörün FFT yapması. Hem Mersenne Twister hem de neredeyse aynı
rand()
. - Eşit bölme prensibinin Brownian hareketinde bir parçacık için kontrol edilmesi. Her iki entegratörleri beklenen değer hemfikir ile aynı sayıda anlamlı basamak.
- Bir ikilik olmayan bir kutuya ne kadar iyi oturduklarını görmek. Her ikisi de aynı kalitatif sonuçları veriyor, hiç kimse daha iyi değil.
- Brown yolları baktığımızda açıkça farklılıkları görmek için . Yine şans yok.
- Bir daire içindeki noktaların dağılımı. Dolu ve sadece çevre. Hepsi arasında ve en yakın komşular arasında (Shor'un cevabı, aşağıdaki yorumlarda). Bu özette mevcut , gerekli kütüphaneleri kurduktan sonra Julia 0.5.0 ile çalıştırın (talimatlar için özete bakın).
Fiziksel simülasyonlar bağlamında tanıtılan önyargı aradığımı vurgulamak isterim. Örneğin rand()
, Mersenne Twister'ın yapmadığı zamanlarda dieharder testlerinin ne kadar sefil bir şekilde başarısız olduğunu gördüm , ancak şu an benim için çok fazla bir şey ifade etmiyor.
Kötü bir rasgele sayı üretecinin Montecarlo simülasyonunu nasıl bozduğuna dair fiziksel, somut, örnekleriniz var mı?
Not: PRNG'nin nasıl RANDU
korkunç olabileceğini gördüm . Masum görünen ama sonuçta önyargı yaratan jeneratörlerin bariz örnekleri ile ilgilenmiyorum.