Programming day 1 (Processing)
displays a window with a box in it
a matrix class: default constructors, addition, multiplication, determinant, inverse, exponential, conversion to string, rotation matrix
allows box to be drawn at any given configuration (specified by a matrix)
allows user rotation of the field of view
rotates with constant angular velocity on user command
resets viewer axes and velocity by user command
compute moments of inertia (not just all equal)
update reference velocity according to Euler equations
allow user to change the dimensions of the box (and hence the moments of inertia)
update angular velocities according to this input
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?