Tôi đang thực hiện một số mô phỏng của phương trình Langevin, cho các lực bên ngoài khác nhau. Được biết rằng C rand()
từ stdlib.h
có thể giới thiệu sự thiên vị trong kết quả của tôi, tôi đang sử dụng Mersenne Twister.
Tuy nhiên, tôi muốn biết (và xem) chính xác loại lỗi mà trình tạo cộng hưởng tuyến tính có thể gây ra trong mô phỏng của tôi. Đây là những điều mà tôi đã thử:
- Tạo các bộ dữ liệu 3D của randoms để thử xem hyperplanes. Tôi không thể nhìn thấy bất cứ điều gì.
- Làm FFT của một vectơ lớn các số ngẫu nhiên. Nó gần như giống nhau cho cả Mersenne Twister và
rand()
. - Kiểm tra nguyên lý trang bị cho một hạt trong chuyển động Brown. Cả hai nhà tích hợp đều đồng ý về giá trị mong đợi của với cùng một số chữ số có nghĩa.
- Xem làm thế nào họ bin tốt trong một số thùng không phải là một sức mạnh hai. Cả hai đều cho kết quả định tính như nhau, không ai tốt hơn.
- Nhìn vào các đường dẫn Brown để thấy các phân kỳ rõ ràng từ . Một lần nữa, không có may mắn.
- Phân phối các điểm trong một vòng tròn. Đầy, và chỉ trong chu vi. Giữa tất cả họ và giữa những người hàng xóm gần nhất (câu trả lời của Shor, bên dưới trong phần bình luận). Có sẵn trong ý chính này , chỉ cần chạy nó với Julia 0.5.0 sau khi cài đặt các thư viện cần thiết (xem ý chính để biết hướng dẫn).
Tôi muốn nhấn mạnh rằng tôi đang tìm kiếm sự thiên vị được giới thiệu trong bối cảnh mô phỏng vật lý. Ví dụ, tôi đã thấy rand()
các bài kiểm tra cực đoan thất bại trong khi Mersenne Twister không thành công, nhưng hiện tại điều đó không có ý nghĩa quá lớn đối với tôi.
Bạn có bất kỳ ví dụ cụ thể, cụ thể nào về cách một trình tạo số ngẫu nhiên xấu phá hỏng mô phỏng Montecarlo không?
Lưu ý: Tôi đã thấy PRNG như thế nào RANDU
có thể khủng khiếp. Tôi quan tâm đến các ví dụ không rõ ràng, về các máy phát điện trông vô tội nhưng cuối cùng lại đưa ra sự thiên vị.