scipy.optimize.

LinearConstraint#

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

Lineare Nebenbedingung für die Variablen.

Die Nebenbedingung hat die allgemeine Ungleichungsform

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

Hier wird der Vektor der unabhängigen Variablen x als ndarray der Form (n,) übergeben und die Matrix A hat die Form (m, n).

Es ist möglich, gleiche Grenzen zu verwenden, um eine Gleichheitsnebenbedingung darzustellen, oder unendliche Grenzen, um eine einseitige Nebenbedingung darzustellen.

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

Matrix, die die Nebenbedingung definiert.

lb, ubdense array_like, optional

Untere und obere Grenzen für die Nebenbedingung. Jedes Array muss die Form (m,) haben oder ein Skalar sein. In letzterem Fall ist die Grenze für alle Komponenten der Nebenbedingung gleich. Verwenden Sie np.inf mit dem entsprechenden Vorzeichen, um eine einseitige Nebenbedingung anzugeben. Setzen Sie Komponenten von lb und ub gleich, um eine Gleichheitsnebenbedingung darzustellen. Beachten Sie, dass Sie Nebenbedingungen verschiedener Typen mischen können: Intervall-, einseitige oder Gleichheitsnebenbedingungen, indem Sie verschiedene Komponenten von lb und ub nach Bedarf festlegen. Standardmäßig lb = -np.inf und ub = np.inf (keine Grenzen).

keep_feasibledense array_like of bool, optional

Ob die Nebenbedingungskomponenten während der Iterationen machbar bleiben sollen. Ein einzelner Wert setzt diese Eigenschaft für alle Komponenten. Standard ist False. Hat keine Auswirkung auf Gleichheitsnebenbedingungen.

Methoden

residual(x)

Berechnen Sie den Rest zwischen der Nebenbedingungsfunktion und den Grenzen