SciPy

scipy.optimize.LinearConstraint

class scipy.optimize.LinearConstraint(A, lb, ub, 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 matrix}, shape (m, n)

Matrix defining the constraint.

lb, ub : array_like

Lower and upper bounds 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.

keep_feasible : 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.