*Computer Science 6676, Spring 1999
April 21, 1999*

**Class Project, Phase IV**

Due at project meetings on May 6 or 7 (see below)

- Modify your trust region code for unconstrained optimization into a
Truncated-Newton method, as detailed in the attached pseudo-code. As stated
on the first page, this involves eliminating the calls to the Hessian evaluation
or secant approximation and the calls to MODELHESS and CHOLSOLVE, and modifying
the trust region driver into TNDRIVER, modifying the trust region update
module into TNTRUPDATE, and writing the new Truncated-Newton module TNSTEP
which also calls the small new modules HESSPROD and QUAD. (For HESSPROD,
*analgrad*will be false unless you have coded analytic gradients.) - Each
*group*will schedule a half hour meeting with the instructor to discuss the project. To this meeting, please bring tables of the results of your Newton/trust region, secant/trust region, and Truncated-Newton codes on each of the test problems and starting points that have been assigned in Phases II, III, and IV. Please arrange these by problem so that we can easily compare the performance of the three methods for a given problem. For each problem and method, the table should show: the starting point (denoted by*x*_0, 10 (*x*_0), 100 (*x*_0); the termination code; the function value at the final point; the total number of iterations; the total number of function evaluations not counting those used for finite differences; and the total number of function evaluations counting those used for finite differences. In addition, please bring along (in a format that one can refer to easily) the additional information that was requested for Phase II (you only need to do this for the Newton/trust region code): 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). Finally, please bring the additional information requested above for the Truncated-Newton code, in a format that one can refer to easily.

Test your Truncated-Newton code on the following problems: Extended
Rosenbrock and Extended Powell with *n *= 100, and Variable Dimension
and Penalty 1 (attached) with *n* = 100. Run each from the standard
starting point *x_*0 and from 10 (*x*_0 ). In addition to the
information requested below for all problems, please report the following
for each run of the truncated-Newton method: 1) the number of times the
truncated-Newton step terminated due to each of the four stopping conditions
(*omega* < 0, ||* stemp* || >= *delta*, *gnorm*
<= tolerance, or *k*>*n*, respectively); 2) the average
number of inner iterations (ie the average value of* k* upon termination
of the inner loop) per outer iteration. Also run the Newton and secant
codes on these same problems if this is not a problem with your computing
resources and include these runs in the tables requested below.

At the meeting, we will discuss your experiences with the project and what you have learned about the methods, including: the comparisons in efficiency between the three methods, and the performance of the trust region updating strategy and the truncated-Newton inner iterations.