Mathematica > Mathematics and Algorithms > Optimization >

FindMinimum

FindMinimum[f, x]
searches for a local minimum in f, starting from an automatically selected point.
FindMinimum[f, {x, x0}]
searches for a local minimum in f, starting from the point x=x0.
FindMinimum[f, {{x, x0}, {y, y0}, ...}]
searches for a local minimum in a function of several variables.
FindMinimum[{f, cons}, {{x, x0}, {y, y0}, ...}]
searches for a local minimum subject to the constraints cons.
FindMinimum[{f, cons}, {x, y, ...}]
starts from a point within the region defined by the constraints.
  • FindMinimum returns a list of the form {fmin, {x->xmin}}, where fmin is the minimum value of f found, and xmin is the value of x for which it is found.
  • If the starting point for a variable is given as a list, the values of the variable are taken to be lists with the same dimensions.
  • The constraints cons can contain equations, inequalities or logical combinations of these.
  • FindMinimum first localizes the values of all variables, then evaluates f with the variables being symbolic, and then repeatedly evaluates the result numerically.
  • FindMinimum[f, {x, x0, x1}] searches for a local minimum in f using x0 and x1 as the first two values of x, avoiding the use of derivatives.
  • FindMinimum[f, {x, x0, xmin, xmax}] searches for a local minimum, stopping the search if x ever gets outside the range xmin to xmax.
  • Except when f and cons are both linear, the results found by FindMinimum may correspond only to local, but not global, minima.
  • By default, all variables are assumed to be real.
  • For linear f and cons, xElementIntegers can be used to specify that a variable can take on only integer values.
  • The following options can be given:
AccuracyGoalAutomaticthe accuracy sought
EvaluationMonitorNoneexpression to evaluate whenever f is evaluated
GradientAutomaticthe list of gradient components for f
MaxIterationsAutomaticmaximum number of iterations to use
MethodAutomaticmethod to use
PrecisionGoalAutomaticthe precision sought
StepMonitorNoneexpression to evaluate whenever a step is taken
WorkingPrecisionMachinePrecisionthe precision used in internal computations
  • The settings for AccuracyGoal and PrecisionGoal specify the number of digits to seek in both the value of the position of the minimum, and the value of the function at the minimum.
  • Possible settings for Method include "ConjugateGradient", "PrincipalAxis", "LevenbergMarquardt", "Newton", "QuasiNewton", "InteriorPoint" and "LinearProgramming", with the default being Automatic.
Find a local minimum, starting the search at x=2:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
Extract the value of x at the local minimum:
In[3]:=
Click for copyable input
Out[3]=
 
Find a local minimum, starting at x=7, subject to constraints 1<= x <= 15:
In[1]:=
Click for copyable input
Out[1]=
 
Find the minimum of a linear function, subject to linear and integer constraints:
In[1]:=
Click for copyable input
Out[1]=
New in 1 | Last modified in 6
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team