This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)
 Documentation / Mathematica / Built-in Functions / Numerical Computation / Optimization  /
FindMinimum

  • FindMinimum[ f , x , ] searches for a local minimum in f, starting from the point x = .
  • FindMinimum returns a list of the form , x -> , where is the minimum value of f found, and is the value of x for which it is found.
  • FindMinimum[ f , x , , ] searches for a local minimum in f using and as the first two values of x. This form must be used if symbolic derivatives of f cannot be found.
  • FindMinimum[ f , x , xstart , xmin , xmax ] searches for a local minimum, stopping the search if x ever gets outside the range xmin to xmax.
  • FindMinimum[ f , x , , y , , ... ] searches for a local minimum in a function of several variables.
  • FindMinimum has attribute HoldAll.
  • FindMinimum works by following the path of steepest descent from each point that it reaches. The minima it finds are local, but not necessarily global, ones.
  • The following options can be given:
  • The default settings for AccuracyGoal and PrecisionGoal are 10 digits less than WorkingPrecision.
  • FindMinimum continues until either of the goals specified by AccuracyGoal or PrecisionGoal is achieved.
  • See the Mathematica book: Section 1.6.5Section 3.9.8.
  • See also Implementation NotesA.9.44.23MainBookLinkOldButtonDataA.9.44.23.
  • See also: ConstrainedMin, LinearProgramming, D, Fit.
  • Related package: Statistics`NonlinearFit`.

    Further Examples

    This finds the value of x which minimizes , starting from x = 2.

    In[1]:=

    Out[1]=

    Here is a function with many local minima.

    Evaluate the cell to see the graphic.

    In[2]:=

    FindMinimum finds the local minimum closest to x = 1. This is not the global minimum for the function.

    In[3]:=

    Out[3]=

    This finds the local minimum of a function of two variables. As in FindRoot, it is a good idea to choose starting values that are not too special.

    In[4]:=

    Out[4]=

    This finds a minimum, explicitly specifying a gradient to use.

    In[5]:=

    Out[5]=

    Using the default setting, a different local minimum is found.

    In[6]:=

    Out[6]=