About the Convenor

Jonathan Shock

I’m Jonathan Shock, an Associate Professor in the Department of Mathematics and Applied Mathematics at the University of Cape Town. My research moves between theoretical physics, complex systems, and the application of machine learning to problems across the sciences and humanities. I wear a number of hats at UCT:

Get in touch

For corrections, questions, or to suggest improvements: jon.shock@gmail.com. More about me at shocklab.net.

About This Course

MAM2046W: Second Year Nonlinear Dynamics is an undergraduate course at the University of Cape Town. It builds on the first-year course MAM1043H (where one-dimensional dynamical systems were introduced) and extends those ideas to two- and three-dimensional systems where genuinely new phenomena — limit cycles, bifurcations, and chaos — emerge.

The course follows the structure of Steven Strogatz’s Nonlinear Dynamics and Chaos, covering phase portraits, fixed points and linearisation, conservative and reversible systems, index theory, limit cycles, the Poincaré–Bendixson theorem, Liénard systems, relaxation and weakly nonlinear oscillators, saddle-node, transcritical, pitchfork and Hopf bifurcations, oscillating chemical reactions, global bifurcations, coupled oscillators, Poincaré maps, and the Lorenz equations as our gateway into chaos.

These notes have evolved through several years of teaching the course. The original lecture material was written in Wolfram Mathematica and has been converted to this web format so that the figures, animations, and equations can be browsed without needing Mathematica installed.

Who This Is For

The materials are designed first for UCT students enrolled in MAM2046W, but they are openly available for self-learners anywhere in the world. The mathematical prerequisites are modest — calculus, linear algebra, and a first course in differential equations are sufficient. If you have worked through Strogatz’s textbook (or are working through it now), you should find these notes a useful complement, with worked examples, phase portraits, and animated bifurcations.

Licence

These materials are released under a Creative Commons Attribution 4.0 International licence (CC BY 4.0). You are free to share and adapt them for any purpose, including commercially, provided you give appropriate credit, link to the licence, and indicate if changes were made.

This release is authorised under clauses 8.2 and 9.2.1 of the UCT Intellectual Property Policy (2011), which assigns course-material copyright to the academic author and explicitly permits Creative Commons distribution. UCT retains a perpetual royalty-free non-exclusive internal-use licence (clause 8.2).

How to Cite

If you use, adapt, or reference these materials in your own teaching or writing, please cite them as:

Shock, J. (2026). MAM2046W: Second Year Nonlinear Dynamics [Course materials]. University of Cape Town. https://shocklab.github.io/nonlinear-dynamics-course/

Contributing & Reporting Errors

The source for everything you see here lives on GitHub at shocklab/nonlinear-dynamics-course. If you spot an error — a broken link, a misattributed citation, a confusing explanation, a wrong sign in an equation — the most useful thing you can do is open an issue or a pull request.

You can also email jon.shock@gmail.com directly. Corrections from outside readers have already meaningfully improved several pages.

A Note on AI Assistance

The web conversion of these materials — the parsing of the original Mathematica notebooks, the layout, the animation export, the navigation, and many of the formatting refinements — was carried out with substantial assistance from AI tools, primarily Claude (Anthropic). The mathematical content itself comes from the original lecture notes; the presentation has been reviewed and audited by a human, but errors will still occasionally slip through. If you spot one, please get in touch.