% Hybrid MC demo function hybrid_mc(niter); C=[1 0.98; 0.98 1]; Ci=inv(C); m=[0 0]; clf; x=[-1 1]; px=exp(-(x-m)*Ci*(x-m)'/2); plot_gaussian(sqrt(2)*C,m,2,60); axis([-3 3 -3 3]); set(gcf,'Renderer','zbuffer'); pause; for i=1:niter, xold=x; pxold=exp(-(xold-m)*Ci*(xold-m)'/2); % sample momentum p=randn(1,2); % follow dynamics [x, p]=leapfrog(x,p,20,0.05,Ci,m); % compute new energy px=exp(-(x-m)*Ci*(x-m)'/2); % accept or reject if rand