ParametricNLPModels

Parametric sensitivity interface for NLPModels.jl.

\[\begin{aligned} \min_{x} \; & f(x, θ) \\ \text{subject to} \quad & c^ℓ(θ) \leq c(x, θ) \leq c^u(θ) \\ & x^ℓ(θ) \leq x \leq x^u(θ) \end{aligned}\]

  • $∂f/∂θ$, the objective gradient with respect to the parameters, npar
  • $∂c/∂θ$, the constraints Jacobian with respect to the parameters, ncon × npar
  • $∂²L/∂x∂θ$, the Lagrangian Hessian with respect to the variables and the parameters, nvar × npar
  • $∂x^ℓ/∂θ$, $∂x^u/∂θ$, $∂c^ℓ/∂θ$, $∂c^u/∂θ$, the bounds with respect to the parameters, nvar × npar and ncon × npar

Dimensions and availability come from ParametricNLPModelMeta, returned by get_par_meta.

Reference guide

The naming follows NLPModels.jl conventions:

  • ! means in place
  • _par means with respect to the parameters
  • _coord means coordinate format
  • _dense means dense format
  • prod means matrix-vector product, tprod the transposed product
FunctionParametricNLPModels function
$θ$get_npar, get_par, set_par!
$∂f/∂θ$get_nnzo_par, grad_par, grad_par!
$∂c/∂θ$get_nnzj_par, jac_par, jac_par_structure, jac_par_structure!, jac_par_coord, jac_par_coord!, jac_par_dense!, jprod_par, jprod_par!, jtprod_par, jtprod_par!
$∂²L/∂x∂θ$get_nnzh_par, hess_par, hess_par_structure, hess_par_structure!, hess_par_coord, hess_par_coord!, hess_par_dense!, hprod_par, hprod_par!, htprod_par, htprod_par!
$∂x^ℓ/∂θ$get_nnzj_lvar_par, lvar_jac_par, lvar_jac_par_structure, lvar_jac_par_structure!, lvar_jac_par_coord, lvar_jac_par_coord!, lvar_jac_par_dense!, lvar_jprod_par, lvar_jprod_par!, lvar_jtprod_par, lvar_jtprod_par!
$∂x^u/∂θ$get_nnzj_uvar_par, uvar_jac_par, uvar_jac_par_structure, uvar_jac_par_structure!, uvar_jac_par_coord, uvar_jac_par_coord!, uvar_jac_par_dense!, uvar_jprod_par, uvar_jprod_par!, uvar_jtprod_par, uvar_jtprod_par!
$∂c^ℓ/∂θ$get_nnzj_lcon_par, lcon_jac_par, lcon_jac_par_structure, lcon_jac_par_structure!, lcon_jac_par_coord, lcon_jac_par_coord!, lcon_jac_par_dense!, lcon_jprod_par, lcon_jprod_par!, lcon_jtprod_par, lcon_jtprod_par!
$∂c^u/∂θ$get_nnzj_ucon_par, ucon_jac_par, ucon_jac_par_structure, ucon_jac_par_structure!, ucon_jac_par_coord, ucon_jac_par_coord!, ucon_jac_par_dense!, ucon_jprod_par, ucon_jprod_par!, ucon_jtprod_par, ucon_jtprod_par!