1 |
|
|
Monte Carlo Algorithms: Direct Sampling & Markov Chain sampling |
|
Lecture |
direct_pi.py |
Algorithm 1.1 - compute pi using direct sampling |
|
|
direct_pi_multirun.py |
Compute pi using multiple runs of direct sampling |
|
|
markov_pi.py |
Calculate pi using Markov Chain Monte Carlo |
|
|
markov_pi_multirun.py |
Calculate pi using multiple runs of Markov Chain Monte Carlo |
|
|
pebble_basic.py |
Demonstrate neighbour table for MCMC-Algorithm 1.6 |
|
|
pebble_basic_inhomogeneous.py |
Demonstrate neighbour table for MCMC-Algorithm 1.6 with inhomogeneous probabilities |
|
Tutorial |
pebble_basic.py |
Move pebble using neighbour Table 1.3 |
|
|
pebble_basic_movie.py |
Move pebble using neighbour Table 1.3 |
|
|
pebble_basic_multirun.py |
Move pebble using neighbour Table 1.3 |
|
|
pebble_dual_eigen.py |
Two games: Illustrate conversion of reducible matrix to irreducible+aperiodic to make motion ergodic |
|
|
pebble_dual_movie.py |
'''Two games: Illustrate conversion of reducible matrix to irreducible+aperiodic to make motion ergodic''' |
|
|
pebble_multirun_all_histogram.py |
Show probability for reaching other cells after 0, 1, 2, ... moves |
|
|
pebble_multirun_histogram.py |
Show probability for reaching other cells after 0, 1, 2, ... moves |
|
|
pebble_recurrent_eigen.py |
Dual pebble: make aperiodic |
|
|
pebble_recurrent_movie.py |
Dual pebble: make aperiodic |
|
|
pebble_transfer.py |
Model Monte Carlo simulation as a transfer matrix, illustrating speed of convergence |
|
|
pebble_transfer_eigen.py |
Eigenvalues and eigenvectors of transfer matrix, illustrating speed of convergence |
|
|
pebble_transfer_sub.py |
Model Monte Carlo simulation as a transfer matrix; subtract equilibrium value to show speed of convergence |
|
Homework |
exerciseB.py |
Shows that the error of markov_pi follows the law: const / sqrt(N_trials)for large N_trials. The constant is larger (sometimes much larger) than 1.642 and it depends on the stepsize delta. |
|
|
exerciseC.py |
Bunching method: compute the error in markov_pi.py from a single run and without knowing the mathematical value of pi. |
|
|
exerciseC1.py |
Bunching method: compute the error in markov_pi.py from a single run and without knowing the mathematical value of pi |
|
|
exerciseC3.py |
Bunching method: compute the error in markov_pi.py from a single run and without knowing the mathematical value of pi |
2 |
|
|
Hard Disks: from classical mechanics to statistical mechancs |
|
Lecture |
direct_disks_box.py |
Direct sampling of disks in box, tabula rasa |
|
|
direct_disks_box_a1.py |
Direct sampling of disks in box, tabula rasa: investigate success rate |
|
|
direct_disks_box_movie.py |
Direct sampling of disks in box, tabula rasa, plotted as movie |
|
|
direct_disks_box_multirun.py |
Direct sampling of disks in box, tabula rasa, multiple runs |
|
|
direct_disks_box_multirun_b1.py |
Generate histogram of x positions by direct sampling of disks in box, tabula rasa |
|
|
event_disks_box.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box |
|
|
event_disks_box_a3.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box. Repeat |
|
|
event_disks_box_b3.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box. Repeat and generate histogram |
|
|
event_disks_box_movie.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box. Repeat. Plotted as movie |
|
|
markov_disks_box.py |
Algorithm 2.2: generating a hard disk configuration from another one using a Markov chain |
|
|
markov_disks_box_a2.py |
Algorithm 2.2: generating a hard disk configuration from another one using a Markov chain |
|
|
markov_disks_box_movie.py |
Algorithm 2.2: generating a hard disk configuration from another one using a Markov chain |
|
|
markov_disks_box_multirun_b2.py |
Algorithm 2.2: generating a hard disk configuration from another one using a Markov chain |
|
Tutorial |
direct_discrete.py |
Create configuration of rods using tabula rasa to give equiprobable distribution |
|
|
direct_disks_any.py |
Compute acceptance probability for hard disks as a function of density |
|
|
direct_disks_box.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box |
|
|
direct_disks_box_slow.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box. Build full set of disks, including invalid, then cull. |
|
|
direct_disks_multirun.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box with periodic boundary conditions: multiple runs to collects stats |
|
|
direct_disks_multirun_movie.py |
Algorithm 2.1: event-driven molecular dynamics for hard disks in a box with periodic boundary conditions: multiple runs to collects stats |
|
|
random_sequential_discrete.py |
Create configuration of rods without tabula rasa: does not give equiprobable distribution |
|
|
random_sequential_discrete_movie.py |
Create configuration of rods without tabula rasa: does not give equiprobable distribution |
3 |
|
|
Entropic Interactions and Phase Transitions |
|
Lecture |
direct_pins.py |
Algorithm 6.1: direct sampling |
|
|
direct_pins_improved.py |
Algorithm 6.1: direct sampling |
|
|
direct_pins_movie.py |
Algorithm 6.1: direct sampling |
|
|
direct_pins_noreject.py |
Algorithm 6.2: rejection free sampling |
|
|
direct_pins_noreject_movie.py |
Algorithm 6.2: rejection free sampling |
|
Tutorial |
direct_pins.py |
Algorithm 6.1: direct sampling |
|
|
direct_pins_density.py |
|
|
|
direct_pins_movie.py |
|
|
|
direct_pins_noreject.py |
|
|
|
direct_pins_noreject_movie.py |
|
|
|
direct_pins_noreject_periodic.py |
|
|
|
direct_pins_noreject_periodic_pair.py |
|
|
Homework |
my_markov_disks.py |
|
|
|
preparation1.py |
|
|
|
preparation2.py |
|
4 |
|
|
Sampling and Integration |
|
Lecture |
direct_sphere_3d.py |
|
|
|
direct_sphere_3d_movie.py |
|
|
|
direct_surface.py |
|
|
|
direct_surface_3d.py |
|
|
|
direct_surface_3d_movie.py |
|
|
|
gauss_2d.py |
|
|
|
gauss_2d_movie.py |
|
|
|
gauss_3d.py |
|
|
|
gauss_3d_movie.py |
|
|
|
gauss_test.py |
|
|
|
gauss_test_movie.py |
|
|
|
naive_gauss.py |
|
|
|
naive_gauss_movie.py |
|
|
Tutorial |
basic_use_random.py |
|
|
|
gamma_transform.py |
|
|
|
gauss_transform.py |
|
|
|
markov_gauss.py |
|
|
|
markov_gauss_movie.py |
|
|
|
markov_inv_sqrt.py |
|
|
|
markov_inv_sqrt_movie.py |
|
|
|
naive_ran.py |
|
|
|
reject_direct_gauss_cut.py |
|
|
|
reject_inv_sqrt_cut.py |
|
|
|
tower_discrete.py |
|
|
|
walker_test.py |
|
|
Homework |
data-bunch.py |
|
|
|
markov_hypersphere.py |
|
|
|
markov_hypersphere_C2.py |
|
|
|
markov_sphere_3D.py |
|
|
|
markov_sphere_4D.py |
|
5 |
|
|
Quantum Statistical Mechancs 1/3: Density Matrices and Path Integrals |
|
Lecture |
harmonic_wavefunction.py |
|
|
|
harmonic_wavefunction_check.py |
|
|
|
harmonic_wavefunction_check_movie.py |
|
|
|
harmonic_wavefunction_movie.py |
|
|
|
matrix_square_harmonic.py |
|
|
|
matrix_square_harmonic_movie.py |
|
|
|
naive_harmonic_path.py |
|
|
|
naive_harmonic_path_movie.py |
|
|
Tutorial |
free_periodic_complex_exp.py |
|
|
|
free_periodic_complex_exp_movie.py |
|
|
|
free_periodic_sine_cosine.py |
|
|
|
free_periodic_sine_cosine_movie.py |
|
|
|
harmonic_trotter_movie.py |
|
|
|
quantum_time_evolution.py |
|
|
Homework |
a2.py |
|
|
|
markov_gauss_a1.py |
|
|
|
markov_gauss_movie_a1.py |
|
|
|
matrix_square_anharmonic_c1.py |
|
|
|
matrix_square_anharmonic_c3.py |
|
|
|
matrix_square_harmonic_b1.py |
|
|
|
path_Integral_b2.py |
|
|
|
path_Integral_c2.py |
|
6 |
|
|
Quantum Statistical Mechancs 2/3: Lévy Quantum Paths |
|
Lecture |
continuous_random_walk.py |
Construct path using a simple random walk (endpoint is not held fixed) |
|
|
levy_free_path.py |
Simple simplementation of Levy Free Path Algorithm |
|
|
levy_harmonic_path.py |
|
|
|
levy_harmonic_path_3D.py |
Lévy flight in 3D |
|
|
levy_harmonic_path_movie.py |
|
|
|
naive_harmonic_path.py |
Construct path using direct sanpling (inefficient) |
|
|
naive_path_slice.py |
|
|
|
naive_path_slice_movie.py |
|
|
|
trivial_free_path.py |
Generate a random walk, then pull back as described in Lecture 6, 20:12. Compare result with Lévy free path |
|
Tutorial |
naive_boson_trap.py |
Enumerate energies in a simple harmonic trap |
|
|
naive_single_particle.py |
Enumerate states for Bosons, i.e. indistinguisgable particles |
|
Homework |
a1.py |
|
|
|
a2.py |
|
|
|
a3.py |
|
|
|
b1.py |
|
|
|
b2.py |
|
|
|
b3.py |
|
|
|
c1.py |
|
|
|
c2.py |
|
7 |
|
|
Quantum Statistical Mechancs 3/3: Bose-Einstein Condensation |
|
Lecture |
markov_harmonic_bosons.py |
|
|
|
markov_harmonic_bosons_movie.py |
|
|
|
permutation_sample.py |
|
|
Tutorial |
canonic_harmonic_recursion.py |
|
|
|
canonic_harmonic_recursion_movie.py |
|
|
|
direct_harmonic_bosons.py |
|
|
|
markov_harmonic_bosons.py |
|
|
|
permutation_sample.py |
|
|
|
permutation_sample_cycle.py |
|
|
Homework |
a1.py |
|
|
|
a2.py |
|
|
|
a2a.py |
|
|
|
a3.py |
|
|
|
b1.py |
|
|
|
b2.py |
|
|
|
c1.py |
|
8 |
|
|
Ising Model: Enumerations and Monte-Carlo Algorithms |
|
Lecture |
cluster_ising.py |
|
|
|
cluster_ising_movie.py |
|
|
|
energy_ising.py |
|
|
|
enumerate_ising.py |
|
|
|
enumerate_ising_mod.py |
|
|
|
enumerate_ising_movie.py |
|
|
|
gray.py |
|
|
|
markov_ising.py |
|
|
|
markov_ising_movie.py |
|
|
|
thermo_ising.py |
|
|
|
thermo_ising_movie.py |
|
|
Tutorial |
heatbath_ising.py |
|
|
|
heatbath_ising_random_map.py |
|
|
|
heatbath_ising_random_map_movie.py |
|
|
Homework |
A1.py |
|
|
|
A2.py |
|
|
|
B1.py |
|
|
|
B2.py |
|
|
|
C1.py |
|
|
|
C2.py |
|
9 |
|
|
Dynamic Monte Carlo, Simulated Annealing |
|
Lecture |
dynamic_ising.py |
|
|
|
dynamic_ising_patch.py |
|
|
|
fast_spin_dynamics.py |
|
|
|
fast_throw.py |
|
|
|
naive_spin_dynamics.py |
|
|
|
naive_spin_dynamics_movie.py |
|
|
|
naive_throw.py |
|
|
Tutorial |
direct_sphere_disks.py |
|
|
|
direct_sphere_disks_any.py |
|
|
|
direct_sphere_disks_any_movie.py |
|
|
|
direct_sphere_disks_movie.py |
|
|
|
example_pylab_visualization.py |
|
|
|
markov_sphere_disks.py |
|
|
|
resize_disks.py |
|
|
|
simulated_annealing.py |
|
|
|
simulated_annealing_movie.py |
|
|
Homework |
A1.py |
|
|
|
A2.py |
|
|
|
B1.py |
|
|
|
C1.py |
|
|
|
C2.py |
|
10 |
|
|
The Alpha and Omega of Monte Carlo |
|
Lecture |
direct_gamma.py |
Integral of x**gamma, illustrating need for importance sampling |
|
|
direct_gamma_average.py |
Integral of x**gamma, illustrating need for importance sampling |
|
|
direct_gamma_average_movie.py |
Histogram of Integral of x**gamma, illustrating need for importance sampling |
|
|
direct_gamma_average_rescaled.py |
|
|
|
direct_gamma_average_rescaled_movie.py |
Integral of x**gamma: rescale, plot histograms, and compare with Lévy distribution |
|
|
direct_gamma_running.py |
|
|
|
direct_gamma_running_movie.py |
|
|
|
direct_needle.py |
Buffon's experiment (with cheat) |
|
|
direct_needle_patch.py |
Buffon's experiment |