kangwonlee / kangwonlee/nmisp

Pedagogy: merge Duffing oscillator material to main with detailed explanations

Open
#377 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
12
Forks
76
PR merge metrics
No merged PRs in 30d

Description

Two parked branches contain extensive Duffing-oscillator simulation work that has not been merged because the *results* are not yet intuitive enough to confidently teach:

- `search-duffing` — 7 commits ahead of main
- `search-duffing-6dof` — 38 commits ahead of main

Both touch `50_ode/60_Duffing_Oscillator.ipynb`. The path forward is **merge with detailed explanatory scaffolding**, not code-only cleanup.

## Explanation scope (the deliverable)

The simulation code is largely there; the explanations are not. Author the following alongside the existing cells:

- **Linear vs nonlinear oscillators** — what the cubic stiffness term does to the restoring force vs a simple harmonic oscillator. Phase-plane intuition.
- **Driven, damped Duffing** — the role of forcing amplitude `F`, frequency `ω`, damping `δ`. Steady-state vs transient.
- **Jump phenomenon** — why the response amplitude has multiple stable branches as you sweep `ω` up vs down (hysteresis); the saddle-node bifurcation that causes the jump.
- **Period doubling and the route to chaos** — what a period-doubling cascade looks like in a Poincaré section; the parameter regimes that produce chaotic vs periodic responses.
- **How to read the bifurcation diagram** — what the axes mean, what the dense bands vs thin lines indicate.
- **Why the 6-DOF extension matters** — what the additional degrees of freedom add to the story (in `search-duffing-6dof`).

## Why this framing

Per the repo's "teach what you know" practice, advanced-topic notebooks are merged only when paired with explanations sufficient to answer student questions in class. Duffing has been parked precisely because the explanation layer is missing. Authoring it is the path to merge, not a separate concern.

## Scope is incremental

Pick a subset. A first PR might cover only the linear-vs-nonlinear and forced-response sections from `search-duffing`, leaving the chaos/bifurcation material from `search-duffing-6dof` for a follow-up.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.