# 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, xIntegers can be used to specify that a variable can take on only integer values.
• FindArgMax takes the same options as FindMaximum.

# Examples

open allclose all

## Basic Examples(4)

Find a point {x} at which the univariate function -2x^2-3x+5 has a maximum:

Find a point {x,y} at which the function Sin[x]Sin[2y] has a maximum:

Find a point at which a function is a maximum subject to constraints:

Find a maximizer point for a function over a geometric region:

Plot it:

## 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 a maximum in a region:

Plot it:

Find points in two regions realizing the maximum distance:

Plot it:

Find the maximum such that the rectangle and ellipse still intersect:

Plot it:

Find the maximum for which contains the given three points:

Plot it:

Use to specify that is a vector in :

Find points in two regions realizing the maximum distance:

Plot it:

## Options(7)

### AccuracyGoal & PrecisionGoal(2)

This enforces convergence criteria and :

This enforces convergence criteria and : Setting a high WorkingPrecision makes the process convergent:

### EvaluationMonitor(1)

Plot convergence to the local maximum:

Use a given gradient; the Hessian is computed automatically:

### 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: 