Files
becomingone/sde_test.py
T

24 lines
774 B
Python
Raw Normal View History

2026-05-27 18:53:41 +00:00
import numpy as np
import math
stochastic_noise_std = 0.05
rng = np.random.default_rng(42)
# Euler-Maruyama test
similarity = complex(1.0, 0.0)
dt_true = 0.05 # 20 Hz
dt_hardcoded = 1.0 # What the codebase uses
for i in range(100):
dW = (rng.normal(0, 1.0) + 1j * rng.normal(0, 1.0)) * math.sqrt(dt_hardcoded)
similarity += similarity * (0.0 * dt_hardcoded + stochastic_noise_std * dW)
print(f"Similarity after 100 steps (dt=1.0): {abs(similarity)}")
similarity2 = complex(1.0, 0.0)
rng2 = np.random.default_rng(42)
for i in range(100):
dW = (rng2.normal(0, 1.0) + 1j * rng2.normal(0, 1.0)) * math.sqrt(dt_true)
similarity2 += similarity2 * (0.0 * dt_true + stochastic_noise_std * dW)
print(f"Similarity after 100 steps (dt=0.05): {abs(similarity2)}")