FindArgMax
FindArgMax[f,x]
gives the position xmax of a local maximum of f.
FindArgMax[f,{x,x0}]
gives the position xmax of a local maximum of f, found by a search starting from the point x=x0.
FindArgMax[f,{{x,x0},{y,y0},…}]
gives the position {xmax,ymax,…} of a local maximum of a function of several variables.
FindArgMax[{f,cons},{{x,x0},{y,y0},…}]
gives the position of a local maximum subject to the constraints cons.
FindArgMax[{f,cons},{x,y,…}]
starts from a point within the region defined by the constraints.
Details and Options


- FindArgMax[…,{x,y,…}] is effectively equivalent to {x,y,…}/.Last[FindMaximum[…,{x,y,…},…].
- 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.
- cons can contain equations, inequalities or logical combinations of these.
- The constraints cons can be any logical combination of:
-
lhs==rhs equations lhs>rhs or lhs>=rhs inequalities {x,y,…}∈reg region specification - FindArgMax first localizes the values of all variables, then evaluates f with the variables being symbolic, and then repeatedly evaluates the result numerically.
- FindArgMax has attribute HoldAll, and effectively uses Block to localize variables.
- FindArgMax[f,{x,x0,x1}] searches for a local maximum in f using x0 and x1 as the first two values of x, avoiding the use of derivatives.
- FindArgMax[f,{x,x0,xmin,xmax}] searches for a local maximum, 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 FindArgMax may correspond only to local, but not global, maxima.
- By default, all variables are assumed to be real.
- For linear f and cons, x∈Integers can be used to specify that a variable can take on only integer values.
- FindArgMax takes the same options as FindMaximum.
List of all options

Examples
open allclose allBasic Examples (4)
Scope (12)
With different starting points, get the locations of different local maxima:
Location of a local maximum of a two-variable function starting from x=2, y=2:
Location of a local maximum constrained within a disk:
Starting point does not have to be provided:
For linear objective and constraints, integer constraints can be imposed:
Or constraints can be specified:
Find points in two regions realizing the maximum distance:
Find the maximum such that the rectangle and ellipse still intersect:
Find the maximum for which
contains the given three points:
Use to specify that
is a vector in
:
Options (7)
AccuracyGoal & PrecisionGoal (2)
This enforces convergence criteria and
:
This enforces convergence criteria and
:

Setting a high WorkingPrecision makes the process convergent:
Gradient (1)
Method (1)
In this case the default derivative-based methods have difficulties:


Direct search methods that do not require derivatives can be helpful in these cases:
NMaximize also uses a range of direct search methods:
StepMonitor (1)
Steps taken by FindArgMax in finding the maximum of a function:
WorkingPrecision (1)
Set the working precision to ; by default AccuracyGoal and PrecisionGoal are set to
:
Properties & Relations (1)
FindMaximum gives both the value of the maximum and the maximizer point:
FindArgMax gives the location of the maximum:
FindMaxValue gives the value at the maximum:
Possible Issues (4)
If the constraint region is empty, the algorithm will not converge:

If the maximum value is not finite, the algorithm will not converge:


Integer linear programming algorithm is only available for machine-number problems:

Sometimes providing a suitable starting point can help the algorithm to converge:

Text
Wolfram Research (2008), FindArgMax, Wolfram Language function, https://reference.wolfram.com/language/ref/FindArgMax.html (updated 2014).
CMS
Wolfram Language. 2008. "FindArgMax." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/FindArgMax.html.
APA
Wolfram Language. (2008). FindArgMax. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindArgMax.html