ConstrainedMax[f, inequalities, x, y, ... ] finds the global maximum of f in the domain specified by the inequalities. The variables x, y, ... are all assumed to be non-negative.
ConstrainedMax returns a list of the form , x->, y->, ... , where is the maximum value of f in the specified domain, and , , ... give the point at which the maximum is attained.
ConstrainedMax implements linear programming. It can always get a result so long as f and the inequalities you specify depend only linearly on the variables x, y, ... . The inequalities can contain no parameters other than the explicit variables you specify. The inequalities cannot involve complex numbers.
ConstrainedMax returns unevaluated if the inequalities are inconsistent.
ConstrainedMax returns an infinite result if the value of f is unbounded in the domain specified by the inequalities.
ConstrainedMax yields exact rational number results if f and the inequalities are specified exactly.
ConstrainedMax accepts both strict inequalities of the form lhs < rhs, and non-strict ones of the form lhs <= rhs. It also accepts equalities of the form lhs == rhs.
When ConstrainedMax returns rational number results, it assumes that all inequalities are not strict. Thus, for example, ConstrainedMax may return x->1/2, even though strict inequalities allow only .
ConstrainedMax finds approximate numerical results if its input contains approximate numbers. The option Tolerance specifies the tolerance to be used for internal comparisons. The default is Tolerance->Automatic, which does exact comparisons for exact numbers, and uses tolerance for approximate numbers.
See The Mathematica Book: Section 3.9.9.
Implementation Notes: see section A.9.4.
See also: LinearProgramming, FindMinimum.
Related package: Statistics`NonlinearFit`.