Levy harmonic.py
From Werner KRAUTH
(Difference between revisions)
Revision as of 18:11, 19 February 2025 Werner (Talk | contribs) ← Previous diff |
Revision as of 18:13, 19 February 2025 Werner (Talk | contribs) Next diff → |
||
Line 19: | Line 19: | ||
Iter = 1000000 | Iter = 1000000 | ||
- | Umean = 0.0 | + | |
for iter in range(Iter): | for iter in range(Iter): | ||
xstart = random.uniform(0.0, L) | xstart = random.uniform(0.0, L) | ||
Line 29: | Line 29: | ||
x.append(random.gauss(x_mean, sigma)) | x.append(random.gauss(x_mean, sigma)) | ||
x.append(xend) | x.append(xend) | ||
- | Umean += U(x) | ||
- | print(Umean / Iter) | ||
- | |||
==Further information== | ==Further information== |
Revision as of 18:13, 19 February 2025
Contents |
Context
This page is part of my 2025 Oxford Lectures
Python program
import math, random def U(x): U = 0.0 for k in range(N): k_minus = (k - 1) % N x_minus = x[k_minus] if k == 0: x_minus -= L U += (x[k] - x_minus) ** 2 / 2.0 return U N = 8 L = 16 delta = 1.0 Iter = 1000000
for iter in range(Iter): xstart = random.uniform(0.0, L) xend = xstart + L x = [xstart] for k in range(1, N): # loop over internal slices x_mean = ((N - k) * x[k - 1] + xend) / (1.0 + N - k) sigma = math.sqrt(1.0 / (1.0 + 1.0 / (N - k) )) x.append(random.gauss(x_mean, sigma)) x.append(xend)
Further information
References
Krauth, W. XXX