Tải bản đầy đủ (.pdf) (17 trang)

phương pháp montecarlo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (252.76 KB, 17 trang )

Bài 3:
Mô phỏng Monte Carlo

Under construction.


Giới thiệu










Monte Carlo (MC) là phương pháp dùng số ngẫu nhiên
để lấy mẫu (sampling) trong một tập hợp
Thuật ngữ “Monte Carlo” được sử dụng lần đầu bởi
Metropolis (Los Alamos, 1947)
Tính tích phân bằng phương pháp ngẫu nhiên. Tính số
Pi bằng phương pháp ngẫu nhiên (1901).
Phương pháp Metropolis (1953): cho phép lấy mẫu theo
một tập hợp thống kê bất kỳ cho trước.
Hiện nay MC được coi là phương pháp hữu hiệu nhất để
nghiên cứu các hệ phức hợp


Tính số  bằng Monte Carlo



Gieo ngẫu nhiên với phân
bố đều

4 N hit
≈
N trails
−1/2

sai số ~ N trails


Tính tích phân bằng Monte Carlo


Phương pháp tổng quát tính tích phân bằng cách lấy
trung bình từ các lần thử
f ( x)

x2

F =∫ f  x dx
x1
x2

F =∫
x1




f  x
 x dx
 x

F

x1

chọn  là số ngẫu nhiên trong khoảng (x1,x2) với
phân bố (x) bất kỳ cho trước, ta có:

〈 〉

f 
F=


trials

x2




Với (x) là phân bố đều:

1
 x=
 x 2−x 1 


x 1≤ x≤x 2

N trails

 x 2− x 1 
F=
f  i 

N trials i=1


Tuy nhiên, trong một số trường hợp cách lấy mẫu theo
phân bố đều không hiệu quả. Ví dụ đối với tích phân cấu
hình trong tập hợp chính tắc:

Z NVT =∫ d Γ e

−E ( Γ)/k B T


Lấy mẫu quan trọng




Là cách lấy mẫu theo một phân bố (khác phân bố đều)
sao cho tập trung vào miền có đóng góp đáng kể trong
tích phân
Trong tập hợp chính tắc:


〈 A〉 NVT =∫ d  A  NVT  
−1

ρ NVT (Γ)=Z 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.


Chuỗi Markov


Phương pháp lấy mẫu Monte Carlo cho ta một chuỗi các
trạng thái vi mô ngẫu nhiên:

 1,  2,  ,  n−1 ,  n ,



Chuỗi Markov: xác suất lựa chọn một trạng thái chỉ phụ
thuộc vào trạng thái ngay trước nó (stochastic process
with no memory)



Xác suất chuyển trạng thái



Bảo toàn xác suất chuyển:

k β α =1

β

α→β : k β α
k α α =1− ∑ k β α
β≠α


Phương trình chủ


Chuỗi Markov tuân theo phương trình chủ (Master
equation):

d pα

= ∑ (k αβ p β−k βα p α )
dt β≠α
p

kβα


là xác suất tìm thấy hệ ở trạng thái 
là xác suất chuyển trạng thái từ  sang 

Phương trình chủ là dạng rời rạc của phương trình
Fokker-Planck (trong lý thuyết các quá trình nhiễu loạn).


Điều kiện cân bằng chi tiết


Khi t tiến tới vô cùng, để tồn tại trạng thái cân bằng:

t  ∞ : p = p

eq


d p eq

=0
dt



Điều này xảy ra khi có điều kiện cân bằng chi tiết:
eq

eq

k αβ p β =k β α p α

Detailed balance
condition




Thông thường trong Monte Carlo

k β α =k
trong đó



k
k

a
βα
s
βα

a
βα


k

s
βα

là xác suất chuyển tiên nghiệm (a priori)
là xác suất chấp nhận chuyển đổi

Monte Carlo yêu cầu xác suất chuyển tiên nghiệm phải
bằng nhau (không ưu tiên bất cứ chiều chuyển nào):
a

a

k β α =k α β
(tương tự như tiên đề về xác suất tiên nghiệm trong Vật
lý thống kê: các trạng thái vi mô có xác suất tiên nghiệm
bằng nhau)


Phương pháp Metropolis


Cho phép chọn xác suất chuyển trạng thái sao cho điều
kiện cân bằng chi tiết được thỏa mãn:


eq



nếu p ≥ p

eq


s
βα

k =1


eq
eq
p

p
nếu 

eq

s
k β α = eq


p
k =
p
s
αβ


s

eq
α
eq
β

k αβ =1




Trường hợp tập hợp chính tắc, ta có phân bố Boltzmann:
eq


p =
suy ra

Nếu
Nếu

−E  /k B T

e

Z NVT
p eq



E ≤E 
E E 

p

eq


eq


p =
=e

e

Z NVT

− E  − E  / k B T

s
βα

k =1
s
βα

−E  / k B T


s
αβ

k =e

−( E β−E α)/ k B T

k =e

−( E α −E β)/ k B T

s

k αβ =1




Thuật toán Metropolis:
Giả sử năng lượng trạng thái hiện tại là E, năng lượng trạng
thái mới là E'




nếu E ' ≤ E : chấp nhận trạng thái mới
nếu E ' > E : chấp nhận với xác suất





gieo một số ngẫu nhiên  trong khoảng [0,1)
nếu ξ< k : chấp nhận trạng thái mới.
nếu ξ⩾k : không chấp nhận trạng mới.

1
không chấp nhận

luôn
chấp
nhận

ξ
chấp nhận
0

k =e

−( E ' −E )/ k B T

e
ΔE

−Δ E / k B T


Phương pháp lấy mẫu Barker





Metropolis không phải là phương pháp duy nhất đảm
bảo điều kiện cân bằng chi tiết
Phương pháp lấy mẫu Barker (1965):
eq

s

k β α=


eq
α

eq
β

(p +p )


Thực hành


Dùng phương pháp Monte Carlo, tính tích
phân:
π
A=∫ sin( x)dx
0




Dùng phương pháp Metropolis tạo tập hợp số
ngẫu nhiên theo phân bố:
1
p( x)= sin ( x)
2



x∈[0, π]

Làm tương tự sử dụng phương pháp lấy mẫu
Barker.


Bài tập về nhà


Viết chương trình mô phỏng Monte Carlo cho hệ khí
nằm trong 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 các 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



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×