Page 337 - Applied Numerical Methods Using MATLAB
P. 337
326 OPTIMIZATION
NELDER–MEAD ALGORITHM
Step 1. Let the initial three estimated solution points be a, b and c,where
f(a) < f (b) < f(c).
Step 2. If the three points or their function values are sufficiently close to each
other, then declare a to be the minimum and terminate the procedure.
Step 3. Otherwise, expecting that the minimum we are looking for may be at
the opposite side of the worst point c over the line ab (see Fig. 7.3),
take
e = m + 2(m − c), where m = (a + b)/2
and if f(e) < f (b),take e as the new c; otherwise, take
r = (m + e)/2 = 2m − c
and if f(r) < f (c),take r as the new c;if f(r) ≥ f(b),take
s = (c + m)/2
and if f(s) < f (c),take s as the new c; otherwise, give up the two points
b,c and take m and c 1 = (a + c)/2 as the new b and c, reflecting our
expectation that the minimum would be around a.
Step 4. Go back to Step 1.
a m = (a + b)/2
c 1 c 2 r = m + (m − c)
e = m + 2(m − c)
s 2 r
c s 1 e
m s = (c + m)/2
1
s = (m + r)/2
2
c = (c + a)/2
1
b c = (r + a)/2
2
Figure 7.3 Notation used in the Nelder–Mead method.