{ } Raw JSON

bundles / scipy latest / scipy / optimize / _trustregion_constr / qp_subproblem / modified_dogleg

function

scipy.optimize._trustregion_constr.qp_subproblem:modified_dogleg

source: /scipy/optimize/_trustregion_constr/qp_subproblem.py :315

Signature

def   modified_dogleg ( A Y b trust_radius lb ub )

Summary

Approximately minimize 1/2*|| A x + b ||^2 inside trust-region.

Extended Summary

Approximately solve the problem of minimizing 1/2*|| A x + b ||^2 subject to ||x|| < Delta and lb <= x <= ub using a modification of the classical dogleg approach.

Parameters

A : LinearOperator (or sparse array or ndarray), shape (m, n)

Matrix A in the minimization problem. It should have dimension (m, n) such that m < n.

Y : LinearOperator (or sparse array or ndarray), shape (n, m)

LinearOperator that apply the projection matrix Q = A.T inv(A A.T) to the vector. The obtained vector y = Q x being the minimum norm solution of A y = x.

b : array_like, shape (m,)

Vector ``b``in the minimization problem.

trust_radius: float

Trust radius to be considered. Delimits a sphere boundary to the problem.

lb : array_like, shape (n,)

Lower bounds to each one of the components of x. It is expected that lb <= 0, otherwise the algorithm may fail. If lb[i] = -Inf, the lower bound for the ith component is just ignored.

ub : array_like, shape (n, )

Upper bounds to each one of the components of x. It is expected that ub >= 0, otherwise the algorithm may fail. If ub[i] = Inf, the upper bound for the ith component is just ignored.

Returns

x : array_like, shape (n,)

Solution to the problem.

Notes

Based on implementations described in pp. 885-886 from [1].

Aliases

  • scipy.optimize._trustregion_constr.equality_constrained_sqp.modified_dogleg