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:

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.