This part of the project comprises 4 tasks: 1a, 1b, 2a , 2b. Task 2a counts as much as the three other tasks together.

General performance of the groups:

Task 1a: this task has been performed correctly by most of the groups. Many did directly a general code as required in task 1b, and used it to give the output of part 1b. Either way this is OK for me.

Task 1b: also this was mostly solved correctly, there was no problem abstracting from the case 4 x 4 in 1a, to the case n x n. Much more surprising was the amount of wrong answers in counting the number of operations necessary for reducing the Hessember matrix to triangular form in task 1b. Many groups did not realize that applying a Givens rotation to a matrix requires O(n) operations. One does not need to make a matrix-matrix multiplication costing O(n^3). It was not so important to implement this in the codes (as other Matlab issues will influence the performance), but rather to realize that you can save operations because you have important information about the structure of your matrices. Anyway, those who did not relize this, got only a very minor penalty in the marking (so do not worry). Another comment is that at least half of the groups managed to explain the operation count precisely and orderly, even if they did mistakes and wrong assumptions on the way. This is very important, because it makes it much easier to correct your mistakes.

Task 2a: This part was more difficult. Here it was necessary for the students to use their judgment and take decisions about how to present the results. You had the paper by Nick Higham as a precious source of information and a good example of how to present the numerical results. Many groups red this article carefully; made numerical experiments as required in the exercise text (and inspired by Higham's article); gave an appropriate summary of what they had learned from their own numerical experimens; and drew appropriate and sound conclusions using the theory as a background. Few of the groups did not discuss properly their results, I had to run their codes (when they were attached) to understand what they had done. When you describe your numerical results I try to understand from your comments if you have done the implementation properly and if you understand what you get out of your numerical results. If you do not describe anything I can not evaluate this aspect of your work. Some of you are, anyway, very good at documending their codes, this helps a lot. The vector-max norm of a matrix was used to measure the error, this was computed in various ways, some times using for and if loops and without exploiting the inbuild Matlab functions. In general, not all the groups explored Matlab capabilities to make short and elegant Matlab code.

In the evaluation of part three of the project I will judge more strictly those reports which do include clear and proper comments on the results, on the tables and on the experiments!! I do not want to be forced to run your codes and make sure that they are correct. You are the ones who guarantee for this, but if you make a wrong or strange comment in the report, I'll know I should check more thorughly your code and see how serious your mistake is. Your reports are your responsibility: if you write something wrong, it remains wrong even if I don't spot your mistake!

Task 2b: this was a relatively simple mathematical exercise that most of you solved correctly.

2012-11-12, Elena Celledoni