Computation in Classical Mechanics
Overview
Note: I no longer use these materials in my courses, so I am not maintaining or updating these files. I have switched from Mathematica to the open-source Maxima program for teaching computation, and my courses have been restructured. You can find out more about how I use Maxima to teach computation in classical mechanics by reading my book (co-authored with Wilson Mixon) on that subject.
This website is intended to supplement a article, co-authored with Javier Hasbun and published in the American Journal of Physics (v. 76, pp. 334-339, April/May 2008), as well as a
poster that I presented at the Computational Physics for Upper Level Courses conference in July 2007. The poster and parts of the paper describe the ways that computational physics has been integrated into the physics curriculum at Berry College. The key piece of this integration has been the development of a series of computational projects that are assigned as part of Berry’s two-semester sequence in classical mechanics. The primary purpose of this website is to make my notes and the computational projects publicly available in the form of Mathematica notebooks. All of these materials are bundled into a zip archive which you can download using the link below.
Resources for download:
- AJP article: TimberlakeHasbun
- Poster: CompPhysAtBerry
- Mathematica Notebooks and other files (zip archive): CompPhys
A description of the Mathematica notebooks and other files contained in the zip archive is given below. To view the PDF files listed on this page you will need the free Adobe Reader program (or another PDF display program such as Apple’s “Preview”). To view (but not edit) the Mathematica (MMA or .nb.zip) files you will need the free Mathematica Player program. To take full advantage of the Mathematica files you will need Mathematica (which is not free). All of the Mathematica notebooks should be fully compatible with Mathematica 6 or later, but may not be compatible with earlier versions of Mathematica.
Notes and Handouts
The table below provides a brief description of the files contained in the Notes folder in the zip archive. These files are the notes and other related files I have used to teach this material.
File | Description of File Contents | Format/Size |
---|---|---|
Syllabus302.pdf | This is the syllabus for the Classical Mechanics I (PHY 302) course. It provides a schedule of topics as well as some information about how the computational projects are used in the course. | PDF/61KB |
Syllabus402I.pdf | This is the syllabus for the Classical Mechanics II (PHY 402) course. It provides a schedule of topics as well as some information about how the computational projects are used in the course. Note that this course is part of Berry’s Writing-Across-the-Curriculum program and therefore the computational projects are used as the basis for formal writing assignments | PDF/64KB |
MathematicaTutorial.nb | This is an introduction to Mathematica designed to get students familiar with the basic features of the software so that they can start using it right away. | MMA/100KB |
TimeOfFall.nb | Code to determine the time of fall for an object falling to Earth from a great height in the absence of air resistance (but with changing gravitational force due to distance from Earth). | MMA/6KB |
ODEalgorithms.nb | Tutorial with exercises on two simple algorithms for computing numerical solutions to systems of ODEs: the Euler algorithm and the Euler-Cromer algorithm. Uses the simple harmonic oscillator as an example. | MMA/142KB |
RootFindingAlgorithms.nb | Tutorial with exercises on two simple algorithms for finding roots of a function: the Newton-Raphson method and the bisection method. | MMA/32KB |
3DHO.nb | Plots of the motion of 2D and 3D harmonic oscillators, with code. | MMA/124KB |
DrivenHO.nb | Plots and notes related to the driven harmonic oscillator, with code. | MMA/343KB |
VanDerPol.nb | Plots and notes related to the undriven and driven Van der Pol oscillator, with code. | MMA/718KB |
DrivenPendulum.nb | Plots and notes related to chaos in the driven pendulum, without code. | MMA/587KB |
NewDrivenPendulum.nb | More plots and notes related to chaos in the driven pendulum, without code. | MMA/863KB |
DrivenPendulum.nb | Code for creating driven pendulum plots. | MMA/706KB |
mapnotes.nb | Plots and notes related to the Logistic Map, without code. | MMA/278KB |
mapping.nb | Code for generating Logistic Map plots. | MMA/1.2MB |
fpnotes.nb | Notes on the stability of fixed points in the Logistic Map, without code. | MMA/263KB |
fixedpts.nb | Code for generating some of the plots related to the fixed points of the Logsitic Map. | MMA/43KB |
BeadOnParabolicWire.nb | Animation of a bead moving on a rotating parabola-shaped wire. | MMA/73KB |
EffectivePotential.nb | 3D surface plot of the effective potential for the 2-body Kepler problem, with code. | MMA/407KB |
CoupledOscillators.nb | Plots illustrating normal modes and beats in coupled oscillator systems, with code. | MMA/67KB |
LiouvillePlots.nb | Notes and plots illustrating Liouville’s Theorem, without code. | MMA/812KB |
Liouville.nb | Code for generating plots related to Liouville’s Theorem. | MMA/741KB |
Computational Projects
The table below contains a brief description of the files contained in the Projects folder of the zip archive. These files are the handouts for the project assignments.
File Link | Description of File Contents | Format/Size |
---|---|---|
CP1.nb | Finding fixed points of an iterated map and evaluating their stability. | MMA/2KB |
CP2.nb | Projectile motion with quadratic air resistance. | MMA/16KB |
CP3.nb | Motion of the harmonic oscillator with linear and quadratic damping. Students use Euler and Euler-Cromer algorithms discussed in ODEalgorithms.nb.zip above. | MMA/3KB |
CP4.nb | The periodically-driven harmonic oscillator, including transient and steady-state motion. | MMA/2KB |
CP5.nb | The periodically-driven Duffing oscillator, including limit cycles and chaos. | MMA/2KB |
CP6.nb | An investigation of the tent map (an iterated function system), including bifurcations, chaos, and Lyapunov exponents. | MMA/2KB |
CP7.nb | Application of Lagrangian mechanics to the double pendulum, and animation of the resulting motion. Foreshadows a discussion of normal modes in coupled oscillators. | MMA/60KB |
CP8.nb | Determining the radius and stability of a circular orbit given a central-force law. | MMA/622KB |
Project1.nb | Projectile motion on Earth with inertial forces (but without air resistance). | MMA/70KB |
Project2.nb | Rigid body motion, including principal axes and moments of inertia, angular momentum, kinetic energy, and the parallel-axis theorem. | MMA/5KB |
Project3.nb | Analyzing the normal modes of a chain of oscillators to illustrate standing waves on a string. | MMA/6KB |
Project4.nb | Illustrating Liouville’s Theorem for integrable systems. | MMA/160KB |
LongPaperA.nb | An extensive investigation of an area-preserving map on the unit 2-torus to illustrate several aspects of Hamiltonian chaos. Note: I generally assign each student or group a slightly different (but closely related) version of the map to study. | MMA/3KB |
Hamiltonian Chaos
The last computational project listed in the previous section deals with Hamiltonian Chaos, a topic not usually taught in undergraduate classical mechanics courses. If you are interested in including this topic in your course please take a look at this web page, which is designed to accompany an article that I wrote for the American Journal of Physics on a computation-based approach to teaching Hamiltonian Chaos.