Math 21a, Fall 2007
Mathematica project Math 21a, Multivariable Calculus
Course head: Oliver Knill
Office: SciCtr 434

We had a Mathematica workshop on Wednesday, December 5 in Hall D from 7-8 PM. This is open to all students. Even if you have worked with Mathematica already, you might get something out of this workshop. We will however start from scratch. We will cover:
  • Installation of Mathematica.
  • Getting started with Mathematica, the interface.
  • The assignment, what do we expect?
  • Some tips and tricks to work with Mathematica.
Whether you have Mathematica installed already or not, it is best to bring your laptop, so that we can work try things out simultaneously or solve issues on the spot.

Mathematica You can install Mathematica 6 on your own computer. Get it here.
Installation Start up the application and follow the instructions. Have ready the Harvard Licence number L2482-2405. You will get a Machine ID which will have to be entered into the Mathematica Registration page. In return, you will be sent a password by email. This is what you see during installation in Send email to math21a, if you plan to use Mathematica on a Linux system. I can provide you with the program.
Getting the notebook
Click on the link and save it on your computer.
The mathematica assignmentIf you open the notebook with Mathematica, you will see all the instructions which are needed. The actual assignment is at the end of the notebook. It consists of 5 problems.
A notebook on quadrics
Running mathematica Mathematica is started up like any other application on Macintoshs or PC's. On Linux, just type "mathematica" to start the notebook version, or "math" to start the terminal version.
Some frequently used commands: ( See more what you can do with Mathematica)
Example how to check homework: change the function and get an analysis about its critical points:
 (* Mathematica code to classify critical points, O. knill, 2000 *)
 f[x_,y_]:=4 x y - x^3 y - x y^3;
 a[x_,y_]:=D[f[u,v],u] /. {u->x,v->y}; b[x_,y_]:=D[f[u,v],v] /. {u->x,v->y};
 H[{x_,y_}]:={{D[f[u,v],{u,2}],D[D[f[u,v],v],u]},{D[D[f[u,v],u],v],D[f[u,v],{v,2}]}} /. {u->x,v->y};
 F[A_]:=A[[1,1]]; Discriminant=Map[Det,Map[H,CriticalPoints]]
 Analysis=Map[Decide, Map[H,CriticalPoints]];
Here is a slicker code, doing the same and even presenting it as a nice table (credit: Matt Leingang, 2006)
ClassifyCriticalPoints[f_,{x_,y_}] := Module[{X,P,H,g,d,S},
X={x,y}; P=Solve[Thread[D[f,#] & /@ X==0],X];H=Outer[D[f,#1,#2]&,X,X];g=H[[1,1]];d=Det[H];
TableForm[{x,y,d,g,S[d,g],f} /. Sort[P],TableHeadings->{None,{x,y,"D","f_xx","Type","f"}}]]
ClassifyCriticalPoints[4 x y - x^3 y - x y^3,{x,y}]
Here is an example on how to solve a Lagrange problem for functions of 2 variables:
F[x_,y_]:=2x^2+4 x y
G[x_,y_]:=x^2 y
Solve[{D[F[x,y],x]== L*D[G[x,y],x],D[F[x,y],y]==L*D[G[x,y],y],G[x,y]==1},{x,y,L}]
and here an example with functions of 3 variables:
Solve[{D[F[x,y,z],x]== L*D[G[x,y,z],x],
       D[F[x,y,z],y]== L*D[G[x,y,z],y],
       D[F[x,y,z],z]== L*D[G[x,y,z],z],
or with two constraints:
F[x_, y_, z_] := x^2 + y^2 + z^2;
G[x_, y_, z_] := x - y^2 + z;
H[x_, y_, z_] := x + y - 2;
  D[F[x, y, z], x] == L*D[G[x, y, z], x] + M*D[H[x, y, z], x],
  D[F[x, y, z], y] == L*D[G[x, y, z], y] + M*D[H[x, y, z], y],
  D[F[x, y, z], z] == L*D[G[x, y, z], z] + M*D[H[x, y, z], z],
  G[x, y, z] == 1, H[x, y, z] == 1}, {x, y, z, L, M}]
Here is an example how to check that a function solves a PDE:
f[t_,x_]:=(x/t)*Sqrt[1/t]*Exp[-x^2/(4 t)]/(1+ Sqrt[1/t] Exp[-x^2/(4 t)]);
Simplify[%] Chop[%]

Plot[ x Sin[x],{x,-10,10}] Graph function of one variable
Plot3D[ Sin[x y],{x,-2,2},{y,-2,2}] Graph function of two variables
ParametricPlot[ {Cos[3 t],Sin[5 t]} ,{t,0,2Pi}] Plot planar curve
ParametricPlot3D[ {Cos[t],Sin[t],t} ,{t,0,4Pi},AspectRatio->1] Plot space curve
ParametricPlot3D[ {Cos[t] Sin[s],Sin[t] Sin[s],Cos[s]},{t,0,2Pi},{s,0,Pi}] Parametric Surface
ContourPlot[ Sin[x y],{x,-2,2},{y,-2,2} ] Contour lines (traces)
Integrate[ x Sin[x], x] Integrate symbolically
NIntegrate[ Exp[-x^2],{x,0,10}] Integrate numerically
D[ Cos^5[x],x ] Differentiate symbolically
Series[Exp[x],{x,0,3} ] Taylor series
DSolve[ x''[t]==-x[t],x,t ] Solution to ODE
Implicit surface
SetCoordinates[Cartesian[x, y, z]]
Curl[{x y,x z, y z}]
Div[{x y,x z,y z}]
Grad[x y z]

Questions and comments to
Math21b | Math 21a | Fall 2007 | Department of Mathematics | Faculty of Art and Sciences | Harvard University