White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

leapflog

shuyoさんに負けたけど、自分もリープフロッグのやつpythonで書いてみた。
rのガウス分布からのリサンプリングは知らないけど。

#! -*- coding: utf-8 -*- 
from pylab import plot, hist, show
from random import gauss
z = 0
r = 1.0
epsilon = 0.1
sigma = 2.0

# ここではE = z^2/sigma, roE/roz = 2z/sigma
def leapflog( z, r, eps, sigma ):
    r_tmp = r - eps * z / sigma                                      
    z     = z + eps * r_tmp
    r     = r_tmp - eps * z / sigma
    return z, r
    
zlist = []
for n in xrange(1000):
    for i in xrange(100):
        z, r = leapflog( z, r, epsilon, sigma)
        zlist.append(z)
    r = gauss(1.0,1.0) 
    print "%d, z: %f, r: %f" % (n, z, r)
hist(zlist, 50, normed=1, facecolor='green', alpha=0.75)
show()

r = gauss(1.0, 1.0)をコメントアウトすると、残念な分布になる。あとepsilonを1にするとおんなじとこばかり移動してとっても残念なことになる。