Feasible sequential quadratic programming algorithms are methods for solving nonlinearly constrained optimization problems or nonlinear programming problems. As the name suggests, feasible SQP methods constrain all of the iterates to be feasible. As a result, they are more expensive than standard SQP algorithms, but they are useful when the objective function $$f$$ is difficult or impossible to calculate outside the feasible set or when termination of the algorithm at an infeasible point is undesirable. The code FSQP solves problems of the form
$\min \{ f(x) : c(x) \leq 0, Ax=b \}$ In this algorithm, the step is defined as a combination of the SQP direction, a strictly feasible direction (which points into the interior of the feasible set) and, possibly, a second-order correction direction. This mix of directions is adjusted to ensure feasibility while retaining fast local convergence properties. Feasible algorithms have the additional advantage that the objective function $$f$$ can be used as a merit function, since, by definition, the constraints are always satisfied. FSQP also solves problems in which $$f$$ is not itself smooth but instead is the maximum of a finite set of smooth functions
$f_i : \mathbb{R}^n \rightarrow \mathbb{R}.$