*Computer Science 6676, Spring 1999
March 3, 1999*

**Assignment 5**

Due Wednesday, April 7

Chapter 6, problems 13, 17, 20.

**Class Project, Phase II**

Due Wednesday, April 7

- Code and debug the remaining routines required for a complete trust region method for unconstrained optimization, using finite difference gradients and Hessians. Algorithm D6.1.1 (the main driver for unconstrained optimization) should serve as the guide for the routines you need and for the driver program. You may use either the dogleg or hookstep. That is, you will need to implement either
- Verify that your program runs correctly on each of the five test functions
in the appendix. For problems 1-3, use
*n*= 2, 4, and 6 respectively (as well as larger values if you like.) You should run each of these problems from initial points*x*_0, 10(*x*_0), 100(*x*_0), where*x*_0 is the point given in the appendix. For stopping tolerances, use*gradtol*= (*macheps*)^(1/3),*steptol*= (*macheps*)^(2/3),*itnlimit*= 200. For each problem, print the termination code, final value of*x*, function value at that point, and the number of iterations taken. Also tabulate and print the total number of function evaluations taken, not counting those used for finite difference derivatives. Finally, for each problem accumulate and print out (or write by hand): the number of iterations that take the Newton step; the number of iterations where the trust region is decreased within the iteration (and how many times it was decreased in each case); and the number of iterations where the trust region is increased within the iteration (and how many times it was increased in each case).

HOOKDRIVER / HOOKSTEP / TRUSTREGUP

or

DOGDRIVER / DOGSTEP / TRUSTREGUP

as well as the stopping routines UMSTOP and UMSTOP0, and the appropriate
driver program. You do not need to implement scaling (equivalently, you
may assume *typx(i) *= *S*_*x* *(i*)= 1 for each *i*,
and *typf* = 1).