Demo
c l e a r a l l
c l o s e a l l
bet a = 0 . 2 5 ;
U = @( x ) ( x . ˆ2 − 1 ) . ˆ 2 − x ;
p = @( x ) e xp(− b e ta ∗ U( x ) ) ;
dx = 0 . 2 5 ;
x s = l i n s p a c e (−3, 3 , 2 0 0 0 ) ;
px = p ( x s ) ;
K = 10 0 0 0 0 ;
x = z e r o s (K, 1 ) ;
x ( 1 ) = −2;
f o r k = 2 :K
y = x ( k−1) + (2∗ ra nd −1) ∗ dx ;
c = r an d ;
i f c <= p ( y ) / p ( x ( k −1))
x ( k ) = y ;
e l s e
x ( k ) = x ( k − 1);
end
c l f ; s u b p l o t ( 1 , 2 , 1 ) ; h o l d a l l ; p l o t ( xs , px , ’ k−− ’ , ’ Lin e Widt h ’ , 2 ) ;
p l o t ( [ x ( k ) ] , [ p ( x ( k ) ) ] , ’ M a r k e r S i ze ’ , 1 0 , ’ Marker ’ , ’ o ’ , ’ L i neW i d th ’ , 4 , . . .
’ L i n e S t y l e ’ , ’ no ne ’ ) ; x l i m ([ − 2.5 , 2 . 5 ] ) ; h o l d o f f ; s u b p l o t ( 1 , 2 , 2 ) ;
h i s t ( x ( 1 : k ) , 2 5 ) ; x l im ([ − 2.5 , 2 . 5 ] ) ; drawnow ;
end