The WebSVD tool, which is similar to those previously discussed, was originally written in MATLAB as part of the ATLAST project (Leon, Herman, & Faulkenberry, 1996), but the MATLAB platform has been frustrating from cross-platform and availability points of view. The web-based tool development presented here has breathed new life into that effort.
Specifically, WebSVD contains components similar to those of Transformer2D, but, given its purpose, it has different elements. The yellow box still controls the column vectors defining the matrix of transformation. In particular, the green vector is the first column, and the blue vector is the second column. By grabbing the ends of these two vectors, you can construct any 2x2 matrix. Below the yellow box is a box that controls the vector x, restricted to the unit circle. As you move x (the red vector) about the unit circle in the domain of the transformation, you can observe the image T(x) (the magenta vector) change in the large area depicting the codomain of the transformation. In addition, the vector x can be moved automatically about the unit circle. In order to further explore, a variety of buttons are provided in the codomain portion containing T(x). For instance, you can turn on or turn off a tracing feature that marks out the path of the transformed vector T(x) or show/hide the orbit of T(x). Also, you can superimpose x onto the codomain, as well as create a separate vector p in the domain and its transformation T(p). Each of these elements helps support exploration into the singular value decomposition of a matrix of transformation.
Open WebSVD in new window
Note: The "?" at the bottom right-hand corner of the workspace is a link to Key Curriculum Press and its About JavaSketchpad web page.
Sample Exploratory Activity:
Consider the transformation T(x) = Ax with matrix
A = .
Using WebSVD, grab the red vector x (hold down mouse button) in the yellow box and move it completely around the unit circle. What shape do you seem to be getting?
To get a better look, click the "Turn Trace ON" button at the bottom of the right box, and move the red arrow around the unit circle. What shape so you seem to be getting? If you want, you can click on one of the "Animate x" buttons to have the vector x move automatically. If you want the animation to stop, click the button again.
To clean things up a little, click on the "Turn Trace OFF" button, and click the red X in the lower right hand corner of the screen. You can still view the image shape by clicking on "Show Orbit of T(x)" at the top of the right box. You can keep one of the "Animate x" buttons on if you wish (but not both).
0. Experiment time
- With "Show Orbit of T(x)" selected, change the matrix of transformation and observe the image of the unit circle. Do we still get the same shape?
- Can you change the matrix to get a circle?
- Can you make the matrix symmetric? Orthogonal?
- Can you make the T(x) vector move in the opposite direction as x?
Play for a while.
1. What is it?
Experimentation should have led you to a feeling that the image of the unit circle appears elliptical. So, is it really an ellipse or not? If it is an ellipse, what are its axes?
A reasonable guess would be a set of eigenvectors from the matrix of transformation, A. Let's investigate that . . .
- Reload WebSVD to reset the matrix to the one we started with.
- Select the "Superimpose x" button at the top of the right-hand box, and select the "Show Orbit of T(x)" as well.
- Now, try to line up the x and T(x) vectors to find the eigenvectors.
Now consider the following questions:
- So, are these the axes?
- Do the axes of the supposed ellipse appear orthogonal?
- Do the eigenvectors appear orthogonal?
- Are the axes in the same directions as the eigenvectors?
Note: Since this is a triangular matrix, its eigenvalues are the diagonal elements: l1 = 1 and l2 = 1.5. Corresponding unit eigenvectors are x1 = (1,0) and x2 = 1/sqrt(10) (3,1) = (.9487, .3162). These are shown in the following figure with Ax1 = x1 and Ax2 = 1.5 x2 in the image.
2. Using the Geometry to find the SVD
We've eliminated eigenvectors as the axes of the ellipse, perhaps there is another way to find the axes.
Once again, consider the transformation T(x) = Ax with matrix
A = .
- Grab the red vector x (hold down mouse button) and move it around until the T(x) vector matches the major axis of the image ellipse. Record the vectors x and T(x), which are shown in the red bordered box. Also, record also the length of the vector T(x) -- it is at the bottom.
- Now select the "Show vectors p and T(p)" button. Move the x vector until the T(x) vector matches the minor axis. For comparison, move the vector p until T(p) matches the major axis of the ellipse. [We do this because the T(p) vector is not printed, only T(x).] You can use the angle measure that prints in the lower left corner to ensure that the axes are orthogonal. Record the same information about these vectors. Notice that the x and p vectors that correspond to the T(x) and T(p) vectors are also orthogonal.
- Use this information to write down the SVD of the matrix A.
If you need a hint, recall that x and p are eigenvectors of ATA, and T(x) and T(p) are the corresponding eigenvectors of AAT. The lengths of the vectors T(x) and T (p) are the square roots of the eigenvalues of ATA. Note: You can check your answer by asking Matlab: Enter A, then type "[Q1,Sigma,Q2]=svd(A)".
- Enter a new matrix that has rank one, and repeat Problem 1.
Hern & Long SVD Tool