Page 189 - Compact Numerical Methods For Computers
P. 189

178               Compact numerical methods for computers
                             Algorithm 19. A Nelder-Mead minimisation procedure (cont.)
                                               end;{else shrink failed}
                                            end; {if VR>=VH -- shrink}
                                          end; {reduction}
                                       end; {if VH>VL+...}
                                       {STEP 29 -- end of major cycle of method}
                                    until ((VH<=VL+convtol) or shrinkfail );
                                    {STEP 30: if progress made, or polytope shrunk successfully, try
                                               another major cycle from STEP 10}
                                 end; {begin minimisation}
                                 {STEP 31} {save best parameters and function value found}
                                 writeln(‘Exiting from Alg19.pas Nelder Mead polytope minimiser’);
                                 writeIn(‘‘,funcount,’ function evaluations used’);
                                 Fmin := P[nl,L]; {save best value found}
                                 for i := 1 to n do X[i] := P[i,L];
                                 if shrinkfail then fail := true;
                                 {STEP 32} {exit}
                              end; {alg19.pas == nmmin}






                                           14.3. AN AXIAL SEARCH PROCEDURE
                             The following procedure is a device designed primarily to generate information
                             concerning the shape of the surface S(b) near the minimum, which will be labelled
                             b*. In some instances, where a minimisation algorithm has converged prema-
                             turely, the axial search may reveal a point having a lower function value than that
                             at the supposed minimum. The step taken along each axis is somewhat arbitrary.
                             O’Neill (1971), for instance, in applying the axial search after a Nelder-Mead
                             program, uses ±0·1001 times the initial steps used to generate the simplex.
                             However, these latter increments must be supplied by the program user. I prefer
                             to adjust the parameter b i  by an increment
                                                           s=e( |b i | +e)                    (13.17)
                             where e is some small number such as the square root of the machine precision.
                             Section 18.2 gives a discussion of this choice. Its principal advantage is that the
                             increment always adjusts the parameter. Alternatively. I have employed the
                             assignment
                                                            := b i (1±0·001)                  (14.18)
                                                         b i
                             unless these fail to change the parameter, in which case I use
                                                             := ±0·001.                       (14.19)
                                                           b i
                             The latter axial search was used in the set of tests used to compare algorithms for
                             function minimisation which were included in the first edition and reported in §18.4
                             of both editions. What follows below reflects our current usage. including some
                             measures of the curvature and symmetry of the functional surface near the presumed
                             minimum.
   184   185   186   187   188   189   190   191   192   193   194