Package de.labathome.trustconstr
Class LagrangianHessian
java.lang.Object
de.labathome.trustconstr.LagrangianHessian
Lagrangian Hessian
H_obj(x) + Sum_i v_i * H_{c_i}(x) as a
matrix-free LinearOperator-builder. Counterpart to scipy's
LagrangianHessian class
(_trustregion_constr/minimize_trustregion_constr.py:35).
Construct with the objective Hessian callable and a constraint
Hessian-of-Lagrangian callable; invoke apply(Matrix, double[], double[])
to obtain a LinearOperator that evaluates (H_obj + H_constr) * p
for a given p.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceConstraint Hessian-of-Lagrangian:Sum_i v_eq[i] * H_{eq,i}(x) + Sum_j v_ineq[j] * H_{ineq,j}(x). -
Constructor Summary
ConstructorsConstructorDescriptionLagrangianHessian(int n, Function<Matrix, Matrix> objectiveHess, LagrangianHessian.ConstraintHessian constraintsHess) Build a Lagrangian Hessian for ann-variable problem. -
Method Summary
-
Constructor Details
-
LagrangianHessian
public LagrangianHessian(int n, Function<Matrix, Matrix> objectiveHess, LagrangianHessian.ConstraintHessian constraintsHess) Build a Lagrangian Hessian for ann-variable problem.- Parameters:
n- number of decision variablesobjectiveHess- objective Hessian callablex -> H_obj(x)constraintsHess- constraint Hessian-of-Lagrangian callable(x, vEq, vIneq) -> Sum_i v_i H_{c_i}(x); may returnnullwhen no constraint contributes (the apply() result is then just the objective Hessian)
-
-
Method Details
-
apply
- Parameters:
x- current iterate (n x 1)vEq- equality multipliers (may benullor empty)vIneq- inequality multipliers (may benullor empty)- Returns:
- matrix-free linear operator that applies
(H_obj(x) + H_constr(x, vEq, vIneq)) * pto a given input vectorp
-
n
public int n()- Returns:
- number of decision variables this Hessian is sized for
-