scipy.optimize.

LinearConstraint#

class scipy.optimize.LinearConstraint(A, lb=-inf, ub=inf, keep_feasible=False)[source]#

Linear constraint on the variables.

The constraint has the general inequality form:

lb <= A.dot(x) <= ub

Here the vector of independent variables x is passed as ndarray of shape (n,) and the matrix A has shape (m, n).

It is possible to use equal bounds to represent an equality constraint or infinite bounds to represent a one-sided constraint.

Parameters:
A{array_like, sparse array}, shape (m, n)

Matrix defining the constraint.

lb, ubdense array_like, optional

Lower and upper limits on the constraint. Each array must have the shape (m,) or be a scalar, in the latter case a bound will be the same for all components of the constraint. Use np.inf with an appropriate sign to specify a one-sided constraint. Set components of lb and ub equal to represent an equality constraint. Note that you can mix constraints of different types: interval, one-sided or equality, by setting different components of lb and ub as necessary. Defaults to lb = -np.inf and ub = np.inf (no limits).

keep_feasibledense array_like of bool, optional

Whether to keep the constraint components feasible throughout iterations. A single value set this property for all components. Default is False. Has no effect for equality constraints.

Methods

residual(x)

Calculate the residual between the constraint function and the limits