Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPI version DOI

wias — Weak Identification of Analytic Systems

wias is a Python library for data-driven identification of analytic systems in weak form based on the paper: A zero-one law for one-shot system identification by Nicolas Boullé, Diana Halikias, Samuel E. Otto, and Alex Townsend.

Features

  • Weak-form assembly for first- and second-order ODE systems
  • Sinusoidal test-function basis construction
  • Column-pivoted QR solver (CPQR_solver) for coefficient recovery
  • PDE support via optional Firedrake integration for finite-element weak-form assembly
  • Recovery of linearly-parametrized matrix families

Examples

Lorenz attractor

The identified model accurately reconstructs the chaotic Lorenz trajectory from noisy data.

Lorenz attractor: true vs recovered

Duffing oscillator

The phase portrait and time series of the identified Duffing oscillator match the ground truth closely over long integration times.

Duffing oscillator: true vs recovered

More examples are available in the examples/ folder, including Allen–Cahn, Navier–Stokes, and Hankel/circulant matrix problems.

Level-set for algebraic equations

Compute zero level set of a parameter-to-recovery map to identify inputs that lie in the degenerate set and do not allow recovery of the underlying system.

Level-set 3D visualization

Installation

pip install wias

or

git clone https://github.com/NBoulle/wias
cd wias
pip install .

Optional: Firedrake (PDE support)

PDE identification via wias.weak_assembly requires Firedrake. Follow the official installation instructions at https://www.firedrakeproject.org/install.html. Once installed, assemble_weak_library_rows becomes available automatically.

Citing WIAS

If you use wias in your research, please cite the following paper:

@article{boulle2026zero,
  title={A zero-one law for one-shot system identification},
  author={Boull\'e, Nicolas and Halikias, Diana and Otto, Samuel E. and Townsend, Alex},
  journal={arXiv preprint arXiv:2607.15832},
  year={2026}
}