Department Personnel
Joyce Chair Professor Scott T. Milner  Teaching
Mathematica lectures
These two onehour lectures introduce the capabilities of Mathematica relevant to advanced undergraduate or graduate students in science and engineering. The lectures present the main analytical, numerical, graphical, and programming features of Mathematica, in the form of two Mathematica documents or "notebooks".
The notebooks corresponding to the lectures can be downloaded, so that a student can follow along with the examples in the lectures, and experiment on her own.
Mathematica Examples
The following are examples of problemsolving in Mathematica, which demonstrate various techniques that are generally useful for advanced undergraduates and graduate students in science and engineering. Each consists of a video and a corresponding Mathematica notebook.

View the Cloud tutorial video
Generate a "cloud" of fake data points; rotate randomly in space; then analyze, to find the principal axes of the cloud, and characteristic widths in each direction. Draw in 3D and in projection; construct histograms.  Cloud.nb.zip

View the Newton tutorial video
Code Newton's method for rootfinding, using traditional "procedural" programming style, and then more compact "functional" programming style of Mathematica using NestList[ ] and FixedPoint[ ].  Newton.nb.zip

View the Permutation tutorial video
Generate a random permutation of n integers, using the technique of sorting a list of random numbers.  Permutation.nb.zip

View the Lorenz tutorial video
Solve the Lorenz equations, three coupled nonlinear ODEs that give rise to chaotic motion and sensitive dependence on initial conditions; an example of how to solve ODEs using NDSolve[ ].  Lorenz.nb.zip

View the Soliton tutorial video
Find the optimum shape of an extended object (here, a chain of beads connected by springs, crossing over a potential "hill"), using FindMinimum[ ] to minimize the potential energy. Show how to create a set of variables that act like "phi sub i".  Soliton.nb.zip

View the Coexistence tutorial video
Compute the coexistence curve for the van der Waals equation of state by numerically solving the Maxwell construction using FindRoot[ ]. Show how to "walk along" a system of equations as a parameter changes, with the previous solution as the next initial guess, using FoldList[ ].  Coexistence.nb.zip

View the Ising tutorial video
Simulate the 2d Ising model using the Metropolis method for Monte Carlo simulations. A simple programming example with If[ ] statements.  Ising.nb.zip

View the Pivot tutorial video
Simulate the motion of a freely jointed polymer chain in solution using the local pivot algorithm. Demonstrates generation of random unit vectors, multiway if statements using Which[ ], and animation of images using ListAnimate[ ].  Pivot.nb.zip

view the Percolation tutorial video
Find the connected clusters of sites in a randomly filled square lattice, with an algorithm that "spreads out" over a cluster by adding neighboring sites to a list for processing, and marking the sites visited. Demonstrates procedural programming using lists.  Percolation.nb.zip