This set is due **Thursday, May 8**, at the beginning of lecture. (There will be another homework set, due the scheduled day of the final exam, **Thursday May 15, at 11am**, so I recommend you try to complete this set earlier than the scheduled deadline.)

You can work on your own, or in groups of up to three members. In case you cannot find anybody to work with, and do not know how to program, let me know as soon as possible, and we will find an alternative. As usual, you can still collaborate with others not in your group, but please make sure to give appropriate credit and indicate clearly who you worked with, what references you consulted, etc.

**1.** Give an example of a matrix for which the power method fails. (Include a proof that this is indeed the case.)

**2.** Write a program that, given a square matrix (diagonalizable and) with real entries, computes approximations to its eigenvalues using the -algorithm. Ideally, the user can decide the dimensions of the matrix and, more importantly, the (tolerance) error within which the approximations will be found. Apply your method to a symmetric matrix, and check the number of iterations the process requires, as a function of the tolerance error.

Please turn in: The code (best if you email it to me), a write up explaining what your code does, the matrix you applied the method to, and the result. To help verify that your algorithm is proceeding correctly, at each step of the iteration have your program indicate clearly what the matrices and are, and what the new (output) matrix is.

Please make the algorithm as explicit as possible. Meaning: Do not use shortcuts already built into the software; most CASs already have functions that perform the Gram-Schmidt process to a given set of vectors, or functions that give the decomposition of a matrix. Instead, I want you to program these subroutines as well.

The programming language you use is up to you. Maple, Mathlab, Sage are standard choices, but if you prefer a different language, it should be fine. Let me know, just in case.

**3.** Do the same, but now for Francis’s algorithm. Apply it to the same matrix. (Here there are more matrices and some vectors the algorithm may want to display along the way. For instance, whenever a matrix is put into upper Heissenberg form, indicate what the reflectors used along the way are.)