Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
190,15 KB
Nội dung
Bài 3: Phương pháp Monte Carlo Under construction Giới thiệu ● ● ● ● Monte Carlo (MC) phương pháp ngẫu nhiên để lấy mẫu (sampling) tập hợp thống kê Thuật ngữ “Monte Carlo” (tên sòng Monaco) sử dụng lần đầu Metropolis (Los Alamos, 1947) Trước đó, phương pháp ngẫu nhiên sử dụng để tính số Pi (1901), tính tích phân, cách lấy mẫu theo phân bố Thuật toán Metropolis (1953): cho phép lấy mẫu theo phân bố cho trước Tính số p Monte Carlo ● Gieo ngẫu nhiên với phân bố n p ≈4 N sai số ~ √N Tính tích phân Monte Carlo ● Phương pháp tổng quát tính tích phân f ( x) x2 F =∫ f x dx x1 x2 F =∫ x1 ● f x x dx x F x1 Nếu x số ngẫu nhiên khoảng (x1,x2) với phân bố r(x) cho trước, ta có: f (x) F= r( x) ⟨ ⟩ x2 ● Với r(x) phân bố đều, lấy mẫu N lần ta có: x= x 2−x x 1≤ x≤x ( x − x1 ) N F= f ( xi ) ∑ N i=1 ● Tuy nhiên, nhiều trường hợp cách lấy mẫu theo phân bố không hiệu Ví dụ tích phân cấu hình tập hợp tắc, trạng thái có lượng lớn đóng góp vào tích phân Z NVT =∫ d Γ e −E ( Γ)/k B T Lấy mẫu quan trọng ● ● Là cách lấy mẫu theo phân bố tập trung vào miền có đóng góp đáng kể tích phân Trong tập hợp tắc: 〈 A〉 NVT =∫ d A NVT r NVT (Γ)=Z ● −1 NVT e − E (Γ)/ k B T Nếu ta lấy mẫu theo phân bố = NVT thì: 〈 A〉 NVT =〈 A〉trails “Instead of choosing configurations randomly, then weighting them with exp(−E/kT), we choose configurations with a probability exp(−E/kT) and weight them evenly.” — Metropolis et al Metropolis, N.; Rosenbluth, A.W.; Rosenbluth, M.N.; Teller, A.H.; Teller, E (1953) "Equations of State Calculations by Fast Computing Machines" Journal of Chemical Physics 21 (6): 1087–1092 ● ● Vấn đề để lấy mẫu theo phân bố khác với phân bố đều? Metropolis đưa thuật toán ngẫu nhiên cho phép lấy mẫu theo phân bố cho trước Chuỗi Markov ● Phương pháp Monte Carlo cho ta chuỗi trạng thái vi mô ngẫu nhiên: 1, 2, , n−1 , n , ● ● ● ● Chuỗi Markov chuỗi xác suất lựa chọn trạng thái phụ thuộc vào trạng thái trước nó, mà khơng phụ thuộc vào trạng thái trước Chuỗi Markov trình ngẫu nhiên khơng có trí nhớ (stochastic process with no memory) Phương pháp Monte Carlo sử dụng chuỗi Markov Khi dùng phương pháp Monte Carlo để lấy mẫu trạng thái hệ vật lý gọi mơ Monte Carlo Phương trình chủ ● Chuỗi Markov tuân theo phương trình chủ (Master equation): d pa = ∑ (k ab p b−k ba p a ) dt b≠a ● p xác suất tìm thấy hệ trạng thái a kba xác suất chuyển trạng thái từ a sang b Bảo toàn xác suất chuyển k b a =1 ∑ b k a a =1− ∑ k b a b≠a Điều kiện cân chi tiết ● Khi t tiến tới vô cùng, để tồn trạng thái cân bằng: t ∞ : p = p eq d p eq =0 dt ● Điều xảy có điều kiện cân chi tiết (detailed balance condition): eq b k ab p =k b a p eq a ● Thông thường Monte Carlo k b a =k s ba k a ba s k b a xác suất thử chuyển đổi (attempt probability) a k b a xác suất chấp nhận chuyển đổi (acceptance probability) ● Monte Carlo yêu cầu xác suất thử chuyển trạng thái phải theo chiều thuận nghịch (không ưu tiên chiều chuyển đổi nào): s ba k =k s ab Phương pháp Metropolis ● Chọn xác suất chấp nhận chuyển đổi sau để thỏa mãn điều kiện cân chi tiết: ● eq p ≥ p eq ta chọn: eq p k aa b= aeq pb a ba k =1 ● ● eq eq p p ta chọn: eq pb a k b a = eq k aa b=1 pa Ngắn gọn hơn, viết: pbeq ( ) k ba a =min , p eq a ● Trường hợp tập hợp tắc, ta có phân bố Boltzmann: eq p = suy Nếu Nếu ● −E /k B T e Z NVT p eq p E ≤E E E eq eq p = =e −E / k B T e Z NVT − E − E / k B T k ba a =1 a ba k =e −(E b −E a )/ k B T Hay viết gọn hơn, xác suất chấp nhận chuyển từ trạng thái a sang trạng thái b bằng: −( E b−E a )/ k B T k ba a =min ( 1, e ) ● Thuật toán Metropolis: Giả sử lượng trạng thái E, lượng trạng thái E' ● ● E ' ≤ E : chấp nhận trạng thái E ' > E : xác suất chấp nhận k =e – ● ● gieo số ngẫu nhiên x khoảng [0,1) x< k : chấp nhận trạng thái x⩾k : quay lại trạng thái cũ không chấp nhận chấp nhận x chấp nhận −( E ' −E )/ k B T e ΔE −Δ E / k B T Phương pháp lấy mẫu Barker ● ● Metropolis phương pháp đảm bảo điều kiện cân chi tiết Phương pháp lấy mẫu Barker (1965): k ba a = pbeq eq a eq b (p +p ) Thực hành ● Dùng phương pháp Monte Carlo, tính tích phân: p A=∫ sin( x)dx ● Dùng phương pháp Metropolis tạo tập hợp số ngẫu nhiên theo phân bố: p( x)= sin ( x) ● x∈[0, p] Làm tương tự sử dụng phương pháp lấy mẫu Barker Thực hành ● Viết chương trình mơ Monte Carlo cho hệ khí nằm trọng trường − p( z)∼e mgz kT Xét hộp khí kích thước LxLxL Chọn L=100, m=1, g=1, k=1 Tạo trạng thái vi mô cho N hạt: ● Phân bố tọa độ: p(z) ~ exp(-mgz/kT) ● Phân bố xung lượng: Maxwell-Boltzmann z