calc: Minimization

 
 11.7.2 Minimization
 -------------------
 
 The ‘a N’ (‘calc-find-minimum’) [‘minimize’] command finds a minimum
 value for a formula.  It is very similar in operation to ‘a R’
 (‘calc-find-root’): You give the formula and an initial guess on the
 stack, and are prompted for the name of a variable.  The guess may be
 either a number near the desired minimum, or an interval enclosing the
 desired minimum.  The function returns a vector containing the value of
 the variable which minimizes the formula’s value, along with the minimum
 value itself.
 
    Note that this command looks for a _local_ minimum.  Many functions
 have more than one minimum; some, like ‘x sin(x)’, have infinitely many.
 In fact, there is no easy way to define the “global” minimum of ‘x
 sin(x)’ but Calc can still locate any particular local minimum for you.
 Calc basically goes downhill from the initial guess until it finds a
 point at which the function’s value is greater both to the left and to
 the right.  Calc does not use derivatives when minimizing a function.
 
    If your initial guess is an interval and it looks like the minimum
 occurs at one or the other endpoint of the interval, Calc will return
 that endpoint only if that endpoint is closed; thus, minimizing ‘17 x’
 over ‘[2..3]’ will return ‘[2, 38]’, but minimizing over ‘(2..3]’ would
 report no minimum found.  In general, you should use closed intervals to
 find literally the minimum value in that range of ‘x’, or open intervals
 to find the local minimum, if any, that happens to lie in that range.
 
    Most functions are smooth and flat near their minimum values.
 Because of this flatness, if the current precision is, say, 12 digits,
 the variable can only be determined meaningfully to about six digits.
 Thus you should set the precision to twice as many digits as you need in
 your answer.
 
    The ‘H a N’ [‘wminimize’] command, analogously to ‘H a R’, expands
 the guess interval to enclose a minimum rather than requiring that the
 minimum lie inside the interval you supply.
 
    The ‘a X’ (‘calc-find-maximum’) [‘maximize’] and ‘H a X’
 [‘wmaximize’] commands effectively minimize the negative of the formula
 you supply.
 
    The formula must evaluate to a real number at all points inside the
 interval (or near the initial guess if the guess is a number).  If the
 initial guess is a complex number the variable will be minimized over
 the complex numbers; if it is real or an interval it will be minimized
 over the reals.