Computational Methods for Nonlinear Systems
Physics 7682 / Computing & Information Sciences 6229 - Fall 2011
Mondays & Fridays 1:30-3:30, Rockefeller B3
(directions)
http://www.physics.cornell.edu/~myers/teaching/ComputationalMethods/
Computational science and engineering involves the synthesis of data
structures, algorithms, numerical analysis, programming methodologies,
simulation, visualization, data analysis, and performance
optimization, all applied to the study of complex problems in science
and engineering. Physics 7682 / CIS 6229 is a graduate computational
science laboratory course, emphasizing hands-on programming to address
a number of interesting problems arising in physics, biology,
engineering, applied mathematics, and computer science. The course is
largely self-paced, allowing students to choose from among a variety
of topics, and explore new problems of particular interest.
This is not an algorithms course. [Though students will learn and develop algortithms.] Rather it is a course on how computers are used in a modern research environment.
Topics
Course modules are drawn from a number of different fields. The course originally was a core element in the curriculum of Cornell's
IGERT Program in Nonlinear Systems, which was organized broadly around
the themes of complex networks, biolocomotion and manipulation, gene
regulation, and pattern formation. Topics have evolved organically from that starting point. Modules are designed to expose
students to techniques and methods from a variety of disciplines, not
normally encompassed in a single course. Computational methods
include solution of ordinary and partial differential equations,
graph traversal, Monte Carlo, search trees,
and various techniques in data analysis.
- Complex networks, small worlds, and percolation
- Human locomotion and models of walking
- Dynamical systems, chaos, and iterated maps
- Pattern formation and spiral waves in cardiac tissue
- Chemical kinetics and gene regulatory networks
- Random matrix theory
- Random walks, extremal statistics, and stock fluctuations
- Lattice Monte Carlo and the Ising model
- Satisfiability and phase transitions in NP-complete problems
- Molecular dynamics and the emergence of thermodynamics
Texts & Articles
There are no required texts, but there are a number of optional books which may help you develop mastery. There are lots of on-line resources for learning Python, but it is sometimes very useful to have a book.
- A Primer on Scientific Programming with Python Hans Petter Langtangen. This is a text which really gets down to the basics: if this is your first programming course then I'd highly recommend this book. It is also useful to experienced programmers.
-
Entropy, Order Parameters, and
Complexity, James P. Sethna, Oxford University Press, 2006. Much of the science in the course is discussed in this book
- Statistical Mechanics: Algorithms and Computations
, Werner Krauth. This also discusses many of the subjects covered in the course, and takes a very computational viewpoint.
- Learning Python (3rd edition), Mark Lutz -- the fourth edition of this book is out. I haven't looked at it, but the Amazon reviews make it sound like it is not as useful as the 3rd edition. I found the 3rd edition to be a great introduction to Python.
Here are some online resources which nicely introduce the key concepts of the course
-
The approach to scientific computing used in this course is very well documented in this online article. It also provides great information about syntax, computing strategies, and python.
- Python: Batteries Included, May/June 2007 issue of Computing in Science and Engineering
Information and Links
Python resources
Local Python material
Web resources for Python