Nonlinear Physics:
Modeling Chaos and Complexity
Spring 2010
Syllabus
Instructor: Prof. Jim Crutchfield (chaos@cse.ucdavis.edu; http://cse.ucdavis.edu/~chaos)
Assistant: Benny Brown (brown@cse.ucdavis.edu)
Time: 2:10 - 3:30 PM TuTh
Locations: 185 Physics (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.6 running
Readings:
- NDAC textbook: Nonlinear Dynamics and Chaos, Strogatz, 2001 Printing (Important!)
- Python textbook: Learning Python, Lutz & Ascher, Fourth Edition, 2009
- Course Lecture Notes (available via course website).
Contents
First Lecture (30 March, 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
- Homeworks 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 A (1 April, Thursday): Python and Its Environment
Reading: Python Part I (Chapters 1-3) and Part II (Chapter 4, pp. 75-78, and Chapter 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 Data Types (Chapters 4 and 5)
- Python as a calculator (WWW)
1 Qualitative Dynamics
Dynamics Lecture 2 (6 April, Tuesday): The Big Picture
Reading: NDAC, Chapters 1 and 2.
Topics:
- Discuss Chaos and Odds readings and homework
- Pendulum demo
- Qualitative Dynamics: A geometric view of behavior
- State space
- Flows
- Attractors
- Basins
- Submanifolds
- Concrete, but simple example: One-dimensional flows
Programming Lab B (8 April, Thursday): Python, the Language
Reading: Python Part II (Chapters 4 and 7-9) and Part III (Chapters 11-13).
Topics:
- Sequence Objects
- Lists (Chapter 4, pp. 86-89, and Chapter 8, pp. 197-206)
- Tuples (Chapter 4, pp. 96-97, and Chapter 9, pp. 225-228)
- Loops (Chapter 13)
- Expressions and conditionals (Chapters 11 and 12)
- Text files (Chapter 4, pp. 229-238)
- String operations (Chapter 7)
Homework: Collect Week 0’s, assign Week 1’s.
Dynamics Lecture 3 (13 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
Programming Lab C (17 April): Arrays, Dictionaries, Functions, and Modularity
Reading: Python Part III (Chapters 4, 8, and 15), Part IV (Chapters 16-18), and Part V (Chapters
21-22) & course website (WWW).
Topics:
- Dictionaries (Chapter 4, pp. 90-95, and Chapter 8, pp. 207-232)
- Arrays (WWW)
- Functions (Chapters 16-18)
- Modules (Chapters 21-22)
- Command line control (WWW)
- Scripting (WWW)
- Documenting code (Chapter 15)
Homework: Collect Week 1’s, assign Week 2’s.
2 Bifurcations
Dynamics Lecture 4 (20 April): The Big, Big Picture (Bifurcations & 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 B (22 April): Statistics, Linear Algebra, and Plotting
Reading: WWW.
Topics:
- Statistics (WWW)
- Fourier Transforms
- Functions on a grid
- Random numbers
- Linear Algebra (WWW)
- Vectors and matrices
- Eigensystems
- Root finding
- Plotting (WWW)
Homework: Collect Week 2’s, assign this week’s (3).
Dynamics Lecture 5 (27 April): The Big, Big Picture (Bifurcations II)
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 E (29 April): Plotting and One-Dimensional Dynamics
Reading: WWW.
Topics:
- Plotting
- Saving results
- One-dimensional dynamics
Homework: Collect Week 3’s, assign this week’s (4).
Project: Pick project. Write up project proposal.
3 Visualizing and Quantifying Unpredictability
Dynamics Lecture 6 (4 May): Mechanisms 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
- Rössler attractor branched manifold
Programming Lab F (6 May): Objects, Classes, and Error Handling
Reading: Python Part II (Chapters 4 and 6), Part VI (Chapters 25-31), and Part VII, Chapters
32-35)
Topics:
- Data Types (Chapter 4)
- Designing data types (Chapter 6)
- Object-oriented programming (Chapters 25 and 30)
- Architecture of simulation tools
- Classes (Chapters 25-27)
- Class attributes (Chapter 28)
- Specializing Classes (Chapters 28 and 29)
- Expending Classes (Chapter 31)
- Error handling (Chapters 32-35)
Homework: Collect Week 4’s, assign this week’s (5).
Project: Project should be chosen and designed.
Dynamics Lecture 7 (11 May): Quantifying Chaos
Reading: NDAC, Sec. 12.0-12.3, 9.3, and 10.5.
Topics:
- Dot spreading: Rössler and Lorenz ODEs
- Lyapunov characteristic exponents (LCEs)
- Time to unpredictability
- Dissipation rate
- Attractor LCE classification
- Chaos defined
Programming Lab G (13 May): Numerical Integration and Visualization
Reading: WWW.
Topics:
- Visualizing two-dimensional maps
- Numerically integrating ODEs
- Euler Integrator
- Runge-Kutta Integrator
- Three-dimensional visualization
Homework: Collect Week 5’s, assign this week’s (6).
Dynamics Lecture 8 (18 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 H (20 May): Quantifying Chaos
Reading: WWW.
Topics:
- Lyapunov Characteristic Exponents
- For 1D Maps
- For 2D Maps
- For 3D Flows
- 3D visualization
Homework: Collect Week 6’s, assign this week’s (7).
Dynamics Lecture 9 (25 May): From Determinism to Stochasticity—Probability Theory of Dynamical
Systems
Reading: Lecture Notes.
Topics:
- Probability theory review
- Dynamical evolution of distributions
- Invariant measures
- Examples
Programming Lab I (27 May): Graphical User Interfaces
Topics:
- TkInter
- Widgets
- WxPython
Homework: Collect Week 7’s.
Dynamics Lecture 10 (1 June): Immersive visualization
Tour of KeckCAVES sensory immersive environment: keckcaves.org.
Programming Lab J (3 June): Spatially Extended Dynamical Systems
Topics:
- Cellular automata in 1D and 2D
- Lattice dynamical systems in 1D and 2D
4 Finish Projects and Present
- Projects presented in class (fewer lectures)?
- Projects presented in a one-day “workshop”?
Note: Project write-ups due at the end of the last week of classes, which is Friday 4
June.