Page 371 - Applied Numerical Methods Using MATLAB
P. 371
360 OPTIMIZATION
Table P7.2.2 Points Reached by Several Optimization Routines
Initial Point Reached Point
x 0 Nelder Steepest Newton fminunc fminsearch SA GA
(0, 0) (5)/m
(1, 0) (3)/G
(1, 1) (9)/m
(0, 1) (3)/G
(−1, 1) (5)/m
(−1, 0) ≈(3)/G
(−1, −1) (3)/G
(0, −1) (9)/m
(1, −1) (9)/m
(2, 2) (3)/G
(−2, −2) (7)/m
(c) Overall, the point reached by each minimization algorithm depends on
the starting point—that is, the initial value of the independent variable
as well as the characteristic of the algorithm. Fill in the blanks in
the following sentences. Most algorithms succeed to find the global
minimum if only they start from the initial point ( , ), ( , ), ( , ), or ( , ).
An algorithm most possibly goes to the closest local minimum (5) if
launched from ( , ) or ( , ), and it may go to the closest local minimum
(7) if launched from ( , ) or ( , ). If launched from ( , ), it may go to
one of the two closest local minima (7) and (9) and if launched from
( , ), it most possibly goes to the closest local minimum (9). But, the
global optimization techniques SA and GA seem to work fine almost
regardless of the starting point, although not always.
7.3 Minimization of an Objective Function Having Many Local Minima/
Maxima
Consider the problem of minimizing the following objective function
2
Min f(x) = sin(1/x)/((x − 0.2) + 0.1) (P7.3.1)
which is depicted in Fig. P7.3. The graph shows that this function has
infinitely many local minima/maxima around x = 0 and the global mini-
mum about x = 0.2.
(a) Find the solution by using the MATLAB built-in routine “fminbnd()”.
Is it plausible?
(b) With nine different values of the initial guess x 0 = 0.1, 0.2,... , 0.9, use
the four MATLAB routines “opt_Nelder()”, “opt_steep()”, “fmin-
unc()”, and “fminsearch()” to solve the problem. Among those 36
tryouts, how many times have you got the right solution?