# COMPLEXA C343 — reproducción del oscilador amortiguado con SINDy

**Tipo de datos:** simulaciones matemáticas deterministas, no mediciones. Se reproducen los parámetros físicos, condiciones iniciales y tolerancias publicados en C343: `x'=v`, `v'=-x-0.2v-0.5x^3`, DOP853 (rtol=1e-12, atol=1e-14), intervalo 0–20, paso de salida 0.02.

## Requisitos y ejecución

Instalar NumPy y SciPy (la comprobación inicial se hizo con NumPy 2.3.5 y SciPy 1.17.0):

```sh
python3 -m pip install -r requirements.txt
python3 reproduce.py --out output
```

La reproducción usa dos trayectorias de entrenamiento, 1.994 filas útiles de derivadas de cinco puntos, biblioteca polinómica de 10 términos, normalización RMS y mínimos cuadrados con umbral secuencial (0, 10^-5, 0.02, 0.1, 0.4). Reserva trayectorias completas para selección y prueba externa. El umbral 0.02 conserva cuatro coeficientes y alcanza error relativo de prueba ~2.53 × 10^-7. Se incluye además el control con biblioteca lineal y la convergencia al reducir la malla.

El programa escribe `thresholds.csv`, `coefficients.csv`, `test_trajectory.csv` y `results.json`. Figuras 343.1 y 343.2 se generan desde esos CSV usando `make_figures.py` (matplotlib), que no interviene en la recuperación de coeficientes.

**Alcance:** solo verifica la construcción sin ruido declarada. No es evidencia de identificación correcta a partir de una serie empírica ruidosa.
