Programming day 1 (Processing)

1: shell program

2: displays a window with a box in it

3: a matrix class: default constructors, addition, multiplication, determinant, inverse, exponential, conversion to string, rotation matrix

4: allows box to be drawn at any given configuration (specified by a matrix)

allows user rotation of the field of view

5: rotates with constant angular velocity on user command

draws axes

6: resets viewer axes and velocity by user command

7: compute moments of inertia (not just all equal)

update reference velocity according to Euler equations

8: allow user to change the dimensions of the box (and hence the moments of inertia)

update angular velocities according to this input

9: text and lines display of angular velocities

user input of initial angular velocities

display of principal axes (red)

Programming day 2

Write a program that can:

-allow you to set the 4 entries of a 2x2 matrix graphically and dynamically, with sliders or something similar (two draggable points in an xy plane would work)

-display the images of the standard basis elements (or other user-definable basis?), and/or the transformed gridlines corresponding to the matrix,

-display the eigenvectors (if they exist) with lengths proportional to the eigenvalues

-display the complex eigenvalues in a small complex plane

-display the linear vector field corresponding to the linear transformation (say, on a 10x10 grid )

Use your program to help you classify 2x2 matrices. In terms of formulas involving the entries of the matrix:

-When is the image of the transformation just 1 line? What vector spans this line?

-When does the transformation preserve lengths? Write a parameterization of all such transformations.

-When do the eigenvalues exist (i.e. when are they real)?

-What characterizes a diagonal/lower triangular/ upper triangular/ anti-symmetric/ symmetric matrix geometrically?

-In terms of the entries of the matrix, what happens to the unit circle under the transformation?