22.01.2014 Views

download searchable PDF of Circuit Design book - IEEE Global ...

download searchable PDF of Circuit Design book - IEEE Global ...

download searchable PDF of Circuit Design book - IEEE Global ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The netcher- Reeves Optimizer 145<br />

convergence is obtained in exactly N linear searches. Because the objective<br />

function is seldom quadratic in practice, (5.80) is restarted in the steepest<br />

descent direction (/30=0) after every N iterations (linear searches).<br />

An important program feature is the criteria for stopping the iterative<br />

search for a minimum. This implementation by Fletcher stops when the<br />

changes being made in every component <strong>of</strong> the x variable vector are less than<br />

0.00001, or when 100 iterations (linear searches) have been performed. The<br />

running time <strong>of</strong> the algorithm increases dramatically for even smaller changes;<br />

engineering problems <strong>of</strong>ten allow even earlier termination. Perhaps a better<br />

stopping criterion is the relative changes <strong>of</strong> variables. One advantage <strong>of</strong><br />

real-time computing is the ability <strong>of</strong> the user to manually intervene whenever<br />

appropriate.<br />

5.4.2. The BASIC Language Computer Program. Appendix Program B5-1<br />

is a listing <strong>of</strong> Fletcher's program VA08A as translated into BASIC from<br />

FORTRAN. These 114 lines require only 1849 bytes in the Commodore PET<br />

computer, and only IS additional bytes are required for each optimization<br />

variable. The program requires the user to define the objective function as<br />

subroutine 1000. The particular objective function and the gradient defined in<br />

lines 1000-1060 will be discussed in the next section. Unused BASIC mimes<br />

are given in line 60. Each execution <strong>of</strong> the program requires the user to state<br />

the number <strong>of</strong> variables, which should be consistent with the defined objective<br />

function. Then the starting values <strong>of</strong> the variables are requested. That runtime<br />

input is coded in lines 70-145.<br />

Some program control constants are set in lines 150-170; this is less flexible<br />

than originally provided by Fletcher (\972b). The number <strong>of</strong> iterations is<br />

limited to 100, the absolute change in each variable must be less than 0.00001<br />

for convergence, and the first step length in each iteration is based on an<br />

expected 10% decrease in function value.<br />

The flowchart in Appendix D for a single-variable linear search is very<br />

nearly applicable to the entire B5-1 program; the reader should generalize it<br />

by reference to the complete program listing. The initial and subsequent<br />

setting <strong>of</strong> search direction to steepest descent is made by lines 230-240. The<br />

FOR-NEXT loop, to accomplish N searches before resetting to steepest<br />

descent, spans lines 260-850. These directions are calculated in lines 330-400<br />

according to (5.80) and (5.81). Having chosen a search direction, the slope in<br />

that direction is computed by lines 410-440 according to (5.57). The linear<br />

search occurs as discussed in Section 5.3, except that each variable is increased<br />

by line 535 according to (5.78), and lines 850 and 860 implement<br />

repeated sequences <strong>of</strong> N linear searches.<br />

5.4.3. The Rosenbrock Example. Lootsma (\972, pp. 29, 67, 68, 74-88, 101,<br />

120, 185) gives many standard nonlinear programming (NLP) test problems,<br />

perhaps the most popular being the so-called Rosenbrock banana function,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!