Beruflich Dokumente
Kultur Dokumente
Kefu Liu
T
f f f
f = " =c
x1 x2 xn
For example
f ( x1 , x2 ) = 25 x12 + x22
c
c=
cT c
1 30 .96625
c= =
302 + 82 8 .2577
Property 1. The gradient vector represents a direction of maximum rate of increase for
the function f (x) at x* . For example,
f (.6, 4) = 25(.6)2 + 42 = 25
.6 .96625 1.083125
x (1) = x(0) + c = + .5 =
4 .2577 4.12885
1
f (x(1) ) = 25(1.083125)2 + (4.122885)2 = 46.327
If we move in a direction [1 0]
T
.6 1 1.1
x(1) = x(0) + c = + .5 =
4 0 4
If we move in a direction [ 0 1]
T
.6 0 .6
x (1) = x(0) + c = + .5 =
4 1 4.5
We can see that moving along the gradient direction results in the maximum increase in
the function.
dx2 25 x1 25(.6)
slope = = = = 3.75
dx1 x2 4
1
t=
3.75
2
1
cT t = [30 8] = 30 8(3.75) = 0
3.75
Property 3. The maximum rate of change of f (x) at any point x* is the magnitude of
the gradient vector given by
c = cT c
d = c or d = c
Example. Use the steepest descent direction to search for the minimum for
f ( x1 , x2 ) = 25 x12 + x22 starting at x (0) = [1 3] with a step size of = .5 . The function
T
f (x(0) ) = 25(1)2 + 32 = 34
1 .9929 .5035
x (1) = x (0) .5 c (0) = .5 =
3 .1191 2.9404
3
.0166 .1453 .0561
x(3) = x(2) .5 c (2) = .5 =
2.8267 .9894 2.332
It is noted that the function values start to oscillate, i.e., not monotonically reduce. This is
caused by the constant step size. When the search is near the minimum, a smaller step
size should be used. Otherwise, an overshoot will occur. Overshoot means that we
move along the steepest direction more than needed. As a matter of fact, we are supposed
to find the best step size at each iteration by conducting a one-D optimization in the
steepest descent direction. For example, the new point can be expressed as a function of
step size , i.e.,
1 .9929 1 .9929
x (1) = x(0) c (0) = =
3 .1191 3 .1191
df ( )
= 2(25)(1 .9929 (0) )(.9929) + 2(3 .1191 (0) )(.1191) = 0
d
4
25(.9929) + 3(.1191)
(0) = = 1.0211
25(.99292 ) + .11912
1 .9929 -.0139
x(1) = x(0) (0) c (0) = 1.0211 =
3 .1191 2.8784
Step 1. Estimate a starting design x (0) and set the iteration counter k = 0 . Select a
convergence parameter > 0 .
Step 2. Calculate the gradient of f (x) at the point x ( k ) as c( k ) = f (x ( k ) ) . Calculate
c = cT c . If c < , then stop the iteration process as x* = x(k ) is a minimum
point. Otherwise, go to Step 3.
Step 3. Let the search direction at the current point x ( k ) as d ( k ) = c( k ) .
Step 4. Calculate a step size ( k ) to minimize f (x ( k ) + ( k ) d ( k ) ) . A one-dimensional
search is used to determine ( k ) .
Step 5. Update the design as x( k +1) = x( k ) + ( k ) d( k ) . Set k = k + 1 and go to Step 2.