Written Part Due: Tuesday, March
4, 2003, 11AM
Programming Part Due: Thursday, March 6, 2003
1. Written problems chapter 5, Heath text. 5.1, 5.2, 5.3, 5.4, 5.10, 5.13.
2. Written problems chapter 6, Heath text. 6.3, 6.4, 6.8.
3. Programming Assignment.
This assignment is to write a program to minimize a function of more than one variable. We will again experiment with making robust software, and testing each module separately. It is important to design testers that exercise all features of the code, including test cases that lead the program to (graceful) failure.
(a) Write a program that performs unsafeguarded Newton's method to find the minimum of the function
(b) Add two safeguards to the program in part (a). First check that the Newton step is a descent direction (in other words, ensure that the Hessian is positive definite. If not, use the modified Cholesky decomposition. (If you have extra time you could also experiment with using the Identity matrix Hessian, which gives a method called steepest descent.) Second, you should do a line search to make sure the step you make is not crazy. You can do this as in the notes -that is, given a direction p, and a current iterate x, find a real number t so that x+t p gives a lower function value.The value t=1 is the Newton step, but far from the solution, this might be too large or too small. The algorithm for this is in the supplementary notes p. 4. Try your program on the more difficult function with a=30, b=1 and c=6, starting from the initial guess (x,y) = (3,1). Make a contour plot of the objective function showing the minimization iterates.
To Hand In:
email: code to firstname.lastname@example.org. Put all email in one tar or zip file, with all codes. Make sure your name is on top of file, even if your tar file is named using your actual name.
hand in: copy of code, written analysis and explanation and sample output (for grader to use for comparison), including graphs.