PHYS 218 - Dynamical Systems in Scientific Computing

New this year! Laptop lending program (Details)

Syllabus for Spring, '07:

Instructor: Mr. Sullivan                                              Email:
Office: RBH 206                                                        Phone: 427-5830
Lecture/Lab: TTh 9:40-11:00AM (period B)             Classroom: FSH 205
Office Hours: MWF 10:10-11:00 and WF 11:10-12:00N (or by appointment)

 Dynamical Systems in Scientific Computing focuses on using computers to simulate natural phenomena. This has become vital part of scientific inquiry in many fields and this course will draw examples from several disciplines, not just physics. One of the reasons that computer simulation has become so important is the discovery that many even very simple systems are not solvable with analytical mathematics even in principle. Another reason is that the advances in computing power has made more and more realistic simulations possible. We will learn about using the computer to solve ordinary differential equations with an examples of radioactive decay and space flight, iterative maps using an example from population dynamics in biology, percolation problems using a model of a forest fire, and (hopefully) partial differential equations from electromagnetism.

 A subtext of the course is to increase your programming skill. The prerequisite is an introductory course in programming like Math 118, or equivalent experience in some procedural programming language like C++, Java, or FORTRAN. Some of the programming you will be doing will be in C++ or C and some in a higher level language called IDL which you will be introduced to during the class. There will be six programming exercises during the semester combined with exercises designed to use the programs that you have written to discover something about the physical systems modeled. Each assignment will receive a letter grade. The final grade for the semester will simply be the average of the grades on each assignment. There will be no quizzes or exams. I have an absolute grading scale, so you are never in competition with other students in the class. So, I encourage you to cooperate and discuss the assignments. However, what you turn in to me must be your own work, never just a copy of a community solution.

 There is no required text for the course. However, students are strongly urged to retain and use their text from their C++ class. Also, I strongly recommend that you purchase the book “An Introduction to Programming with IDL” by Kenneth Bowman which I have found to be the best IDL text of the ones I have examined so far. A bonus to buying the book is a coupon in the back to obtain IDL for your own computer for about $50. For those who get really interested in scientific computing, I also recommend that you obtain a copy of “Numerical Recipes in C” by Press, et al. This is a great introduction to the most often used numerical techniques in scientific computing. Attendance is not graded, but the lack of a text makes excellent attendance nearly mandatory in practical terms.

 I am committed to making it possible for everyone to be successful in this course and I will enjoy getting to know each of you a little better. Please make good use of my office hours. Ask lots of questions when I am unclear in class. If there is something hindering your success in the course, please come talk to me in private. Potential problems might be aspects of the course I can change, problems with other students, or learning disabilities. In the latter case, you are urged to consult with Erin Salva (, 427-5453) in the Office of the Dean of Academic Advising.


Assignment #1: Radioactive Decay Chains

In this assignment you will explore the decay chains that lead to the stable isotopes of lead. These can be used to date the formation of the solar system and provide a lower bound on the age of the Universe. From a computational point of view, you will be learning about and implementing several techniques for integrating ordinary differential equations (ODEs). You will start to discover why the technique chosen matters to you.

Assignment #2:  Oscillations and Geometry

This assignment continues our exploration of  numerical solutions of ODEs. Here the context is oscillating systems, first mechanical (the simple pendulum) then nonlinear chemical oscillators that can become chaotic oscillators. We will see how geometry can be used to characterize chaotic oscillations.

Assignment #3:  Apollo 13 or the Moon Shot

In this exercise, you will construct a simulation of the ill-fated Apollo 13 mission. The moon landing was aborted when there was an explosion in an oxygen tank. The crew spent a harrowing couple of days in an orbit that had them loop around the Moon while they tried everything to conserve heat and electricity. Fortunately, the mission ended well. Here you will learn about letting others help you to program by learning about the higher level language IDL.

Assignment #4: The Forest Fire

Here we have a change of pace. We model a forest fire as a discrete dynamical system called a cellular automata. Using this system we learn some surpising results of a class of models called pecolation models.

Assignment #5: The Diffusion Equation

In this assignment we introduce the solution of partial differential equations (PDEs) in the context of heat diffusing along a bar of material. We continue use of IDL and expand our use of its graphical and animation capabilities.

Assignment #6: Individual Projects

Your final assignment is to take one of the previous assignments and expand upon it in some way. You can expand upon it either by getting deeper into the science of the model or by going further in computational techniques. You get to choose your project, though you must present a one paragraph proposal describing your project for my approval. Beware of taking on too much!