5903 Intro Scientific Prog:
Steepest Descent: Specification
- Write a subroutine to print (on stdout) the value of a scalar
function of a vector argument (dimension n) for a list of arguments.
The function needs to be passed as a "pointer to a function".
- Write a subroutine to print (on stdout) the value of a vector function
(dimension n) of a vector (dimension n) argument for an array of arguments. The function needs to
be passed as a "pointer to a function".
- Write a linesearch algorithm (ref for example Numerical
Optimization Nocedahl and Wright chpt 3.) using the Steepest Descent
direction and a backtracking (start with alpha =1 and replace alpha by
rho alpha until it satisfies the Wolfe conditions with c1=0.001 and c2
= 0.5) stepsize selection routine. There should be a procedure that
completes a single iteration within an overall controlling procedure.
The overall controlling procedure should quit out when the gradient is
les than some specified tolerance. The procedure needs to be generic
with f and gradf being passed as pointers to functions. The following wikipedia
articles may be useful.
- http://en.wikipedia.org/wiki/Wolfe_condition
- http://en.wikipedia.org/wiki/Linesearch
- http://en.wikipedia.org/wiki/Backtracking_linesearch
- There is a test file and an overall header file in the SteepestDescent directory
- You must organize your code into seperate files and
make the "makefile" reasonably compact.
Additions and changes are in red.