variable metric method automatic gradient yields Indeterminate

• To: mathgroup at smc.vnet.net
• Subject: [mg70397] variable metric method automatic gradient yields Indeterminate
• From: "Chris Chiasson" <chris at chiasson.name>
• Date: Sun, 15 Oct 2006 00:19:39 -0400 (EDT)

```A user-defined augmented lagrange multiplier method for NMinimize
drives a (user defined) variable metric method for FindMinimum. The
NMinimize routine ends up creating penalty functions that have
"discontinuous" first order derivatives due to the presence of
functions like Max. At the points of discontinuity in the derivative,
the Indeterminate result usually ends up multiplied by zero. The limit
of the derivative exists.

for example, the function passed to FindMinimum is
func=Max[0,-X[1]]^2+Max[0,-1+X[1]+X[2]]^2+(-1+X[1])^2+(-1+X[2])^2

its derivative with respect to X[1] is
2*(-1+Max[0,-1+X[1]+X[2]]*Piecewise[{{1,X[1]+X[2]>1}},0]+
Max[0,-X[1]]*Piecewise[{{-1,X[1]<0},{0,X[1]>0}},Indeterminate]+X[1])

Notice that when X[1] is zero, the Piecewise returns Indeterminate,
which is multiplied by zero from the nearby Max function. However,
0*Indeterminate is still Indeterminate in Mathematica. When the
derivative is evaluated at X[1]=zero, the answer returned is
Indeterminate. This totally messes up the numerical routine.

the limit of D[func,X[1]] as X[1]->0 is
Piecewise[{{-2,X[2]<1}},2*(-2 +X[2])]

I am tempted to check the gradient vector for Indeterminate results,
look up the "corresponding" variable (heh, how do I really know which
one is responsible?), and take the limit as that variable approaches
the value I wanted to evaluate at. I don't know how well that will
work in practice.

So, does anyone have any suggestions?
--
http://chris.chiasson.name/

```

• Prev by Date: Re: how to sum lists of unequal length?
• Next by Date: Re: FindRoot
• Previous by thread: Trace and Wolfram Workbench and Print
• Next by thread: Re: variable metric method automatic gradient yields Indeterminate