Nonlinear Physics:
Modeling Chaos and Complexity
Spring 2008
Syllabus
Instructor: Prof. Jim Crutchfield (chaos@cse.ucdavis.edu; http://cse.ucdavis.edu/~chaos)
Assistant: Benny Brown (brown@cse.ucdavis.edu)
Time: 3:10 - 4:30 AM TuTh
Location: 158 Roesller Hall (Tu) and 2118 Mathematical Sciences (Th)
WWW: http://cse.ucdavis.edu/~chaos/courses/nlp/
Parallel Theme I: Forms of Randomness, Order, and Intrinsic Instability
- Qualitative Dynamics
- Continuous-time ODEs and discrete-time maps
- Bifurcations
- Stability, Instability, and Chaos
- Quantifying (In)Stability
Parallel Theme II: Tools for Exploring Chaos and Complexity
- Modeling methods
- Graphics
- Simulation
- Interaction
- Programming
Prerequisites:
- Interest in modeling some dynamical phenomenon
- Vector calculus
- Linear algebra
- Lower division Math, Physics, or CS courses
- Programming: C/C++, Java, or Python (We will use Python.)
- Laptop with Python version 2.5 running
Readings:
- NDAC textbook: Nonlinear Dynamics and Chaos, Strogatz, 2001 Printing
- Python textbook: Learning Python, Lutz & Ascher, Third Edition, 2008
- Course Lecture Notes (available via course website).
Contents
First Lecture (1 April, Tuesday): Overview
Readings:
- Chaos, JP Crutchfield, JD Farmer, NH Packard, RS Shaw, Scientific American 255 (1986)
46–57.
- Odds, Stanislaw Lem, New Yorker 54 (1978) 38–54.
Topics:
- Introduction and motivations
- Three parts: Dynamics, Bifurcations, Chaos
- Survey interests, background, and abilities
- Course logistics
- Exams and projects
- Software and program development
Homework Week 0: Everyday unpredictability; see website. Write-up due one week from Thursday, but
be prepared to discuss at next Tuesday meeting.
Programming Lab 1 (3 April, Thursday): Python and Its Environment
Reading: Python Part I (Chapters 1-5).
Topics:
- Modeling: Simulation, interaction, and graphics programming
- Python language (Ch. 1)
- Python and scientific computing packages installed and running (Ch. 2)
- Developing and running Python using iPython (Ch. 3)
- Python as a calculator (WWW)
1 Qualitative Dynamics
Theory Lecture 1 (8 April, Tuesday): The Big Picture
Reading: NDAC, Chapters 1 and 2.
Topics:
- Pendulum demo
- Discuss Chaos and Odds readings and homework
- Qualitative Dynamics: A geometric view of behavior
- State space
- Flows
- Attractors
- Basins
- Submanifolds
- Concrete, but simple example: One-dimensional flows
Programming Lab 2 (10 April, Thursday): Python, the Language
Reading: Python Part II (Chapters 6-9).
Topics:
- Objects and Assignments (Ch. 8 & 9)
- Text files (Chs. 6 & 7)
Homework: Collect Week 0’s, assign Week 1’s.
Theory Lecture 2 (15 April): Example Dynamical Systems
Reading: NDAC, Sections 6.0-6.7, 7.0-7.3, and 9.0-9.4.
Topics: Continuous-time ODEs
- 2D Flows: Fixed points (Sec. 6.0-6.4)
- 2D Flows: Limit cycles (Sec. 7.0-7.3)
- 3D Flows: Chaos in Lorenz (Sec. 9.0-9.4)
- Simulation demo
- From continuous to discrete time (Sec. 9.4)
- Poincaré Maps and Sections
- Lorenz ODE to cusp map
- Rössler ODE to logistic map (pp. 376–379)
- Discrete-time maps
- Dimensional classification of behavior
- Example dynamical systems
Programming Lab 3 (17 April): Arrays, Functions, and Modularity
Reading: Python Part II (12, 13, and 15) & course website.
Topics:
- Arrays and Functions (Chs. 12 & 13)
- Modules (Ch. 15)
- Command line control
Homework: Collect Week 1’s, assign Week 2’s.
2 Bifurcations
Theory Lecture 3 (22 April): The Big, Big Picture (Catastrophes)
Reading: NDAC, Chapter 3.
Topics:
- Qualitative Dynamics: Space of all dynamical systems
- Example: Bifurcations of one-dimensional flows
- Saddle Node
- Transcritical
- Pitchfork
- Catastrophes: Fixed point to fixed point bifurcation
- Example: Cusp Catastrophe
- Catastrophe theory classification of fixed point bifurcations
Programming Lab 4 (24 April): Higher Python & Graphical Python
Reading: WWW & Python Chapters 19-21 and 24-26.
Topics:
- Statistics (WWW)
- Linear Algebra (WWW)
- Plotting (WWW)
- Data Types
- OOP (Ch. 19)
- Classes (Chs. 20 & 21) & Attributes
- Error Handling (Chs. 24-26).
- Visual Python 3D graphics
Homework: Collect Week 2’s, assign this week’s (3).
Theory Lecture 4 (29 April): The Big, Big Picture (Bifurcations)
Reading: NDAC, Chapter 8 and Sec. 10.0-10.4.
Topics:
- Logistic map
- Fixed point to limit cycle
- Phenomenon and calculation
- Limit cycle to limit cycle
- Phenomenon and calculation
- Routes to chaos: Period-doubling cascade
- Phenomenon and calculation
- Band-merging
- Periodic windows and intermittency
- Simulation demo
- Bifurcations in ODEs:
- Hopf bifurcation
- Limit cycle to torus
- Torus to chaos
- Chaos to chaos
Programming Lab 5 (1 May): Simulation Methods, Fixed Points and their Stability
Reading: WWW & Python Chapter 28.
Topics:
- Graphical Users Interfaces (WWW & Ch. 28)
- Euler method for ODEs
- Runge-Kutta method for ODEs
- Discrete-time maps
- 1D: 1D state v. time
- 2D phase portrait and 2D v. time
- Stable & unstable manifolds of fixed points
- Bifurcations
Homework: Collect Week 3’s, assign this week’s (4).
Project: Pick project. Write up project proposal.
3 Visualizing and Quantifying Unpredictability
Theory Lecture 5 (6 May): Mechanism of Chaos
Reading: NDAC, Sec. 12.0-12.3, 9.3, and 10.5.
Topics:
- Chaotic mechanisms: Stretch and fold
- Baker’s map
- Cat map (and stretch demo)
- Henon map: stretch-fold and self-similarity
- Roessler attractor branched manifold
Programming Lab 6 (8 May): Limit Cycles
Topics:
- 2D phase portrait and 2D v. time
- Stable & unstable manifolds of fixed points
- Bifurcations: Hopf bifurcation
- Limit cycle to torus
Homework: Collect Week 4’s, assign this week’s (5).
Project: Project should be chosen and designed.
Theory Lecture 6 (13 May): Quantifying Chaos
Reading: NDAC, Sec. 12.0-12.3, 9.3, and 10.5.
Topics:
- Dot spreading: Roessler and Lorenz ODEs
- Lyapunov characteristic exponents (LCEs)
- Time to unpredictability
- Dissipation rate
- Attractor LCE classification
- Chaos defined
Programming Lab 7 (15 May): Chaos
Topics:
- ODE Examples: Lorenz, Roessler, Pendulum, and more
- Map Examples: Baker’s map, Henon map, Standard Map, and more
- Exponential separation: Dot-spreading
- Fractal attractors: Dissipative Baker’s map and Henon map
- Multiple basins of attraction: Simple and fractal separatrices
Homework: Collect Week 5’s, assign this week’s (6).
Theory Lecture 7 (20 May): Analyzing Chaotic Maps & Routes to Chaos
Reading: NDAC, Chapter 10.
Topics:
- Shift Map
- LCEs for Maps
- Tent Map
- Logistic Map
- LCE view of period-doubling route to chaos
- Period-doubling self-similarity
- Renormalization group analysis of scaling
Programming Lab 8 (22 May): Measuring Chaos
Topics:
- Lyapunov Characteristic Exponents
- For 1D Maps
- For 2D Maps
- For 3D Flows
Homework: Collect Week 6’s, assign this week’s (7).
Programming Lab 9 (27 May): Immersive Visualization
Tour of KeckCAVES sensory immersive environment: keckcaves.org.
4 Finish Projects and Present
- Class, 29 May: Projects; collect Week 7’s homework.
- Class, 3 June: Projects
- Class, 5 June: Projects
Note: Project write-ups due at the end of the last week of classes, which is Friday 6
June.