Click or drag to resize
QuadraticProgramming Class
Solves the convex quadratic programming problem subject to equality or inequality constraints.
Inheritance Hierarchy
SystemObject
  Imsl.MathQuadraticProgramming

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.2.0
Syntax
[SerializableAttribute]
public class QuadraticProgramming

The QuadraticProgramming type exposes the following members.

Constructors
  NameDescription
Public methodQuadraticProgramming
Solve a quadratic programming problem.
Top
Methods
  NameDescription
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetDualSolution
Returns the dual (Lagrange multipliers).
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetSolution
Returns the solution.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Properties
  NameDescription
Public propertyNoMoreProgress
Contains status of true or false if computer rounding error is inhibiting improvement in the objective function.
Top
Remarks

Class QuadraticProgramming is based on M.J.D. Powell's implementation of the Goldfarb and Idnani dual quadratic programming (QP) algorithm for convex QP problems subject to general linear equality/inequality constraints (Goldfarb and Idnani 1983); i.e., problems of the form

\mathop {\min }\limits_{x \in R^n } g^Tx +
            \frac{1}{2} x^THx

subject to

A_1 x = b_1

A_2 x \ge b_2

given the vectors b_1, b_2, and g, and the matrices H, A_1, and A_2. H is required to be positive definite. In this case, a unique x solves the problem or the constraints are inconsistent. If H is not positive definite, a positive definite perturbation of H is used in place of H. For more details, see Powell (1983, 1985).

If a perturbation of H, H + \alpha I, is used in the QP problem, then H + \alpha I also should be used in the definition of the Lagrange multipliers.

If the constraints are infeasible an exception is thrown. See Example 3 where the exception is caught and printed.

See Also