Skip to content

Implementeert Underdamped Langevin Dynamics #47

@hmd101

Description

@hmd101

Task 1: Core Underdamped Implementation (BAOAB Splitting)

File: src/psyphy/inference/mcmc/underdamped.py

Requirements:

  • Implement BAOAB splitting Leimkuhler & Matthews 2013
  • Define ULDState NamedTuple
  • Support configurable friction γ and temperature T
  • Optional: BAB splitting as simpler alternative
  • No Metropolis correction by default (biased but faster)

Splitting schemes:

  1. BAOAB (default, recommended):

    • B: half-step deterministic force
    • A: half-step position
    • O: exact Ornstein-Uhlenbeck noise
    • A: half-step position
    • B: half-step deterministic force
    • More accurate --> Exact Ornstein-Uhlenbeck sampling (O step)
  2. BAB (optional, simpler):

    • B: half-step force + approximate noise
    • A: full-step position
    • B: half-step force
    • Simpler but less accurate

Implementation note:

  • Could add as splitting='bab' option
  • could add Metropolis-adjusted = False option

Test cases:

  • 1D Gaussian posterior: verify mean and variance recovery
  • 2D correlated Gaussian: check mixing across correlation

Open questions:

  • do we need multiple chain support?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions