# scipy.optimize.LinearConstraint

class scipy.optimize.LinearConstraint(A, lb, ub, keep_feasible=False)

  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.

scipy.optimize.NonlinearConstraint scipy.optimize.Bounds