|
JMSLTM Numerical Library 4.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.imsl.math.QuadraticProgramming
Solves the convex quadratic programming problem subject to equality or inequality constraints.
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
subject to
given the vectors , , and g, and the matrices H, , and . 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, , is used in the QP problem, then also should be used in the definition of the Lagrange multipliers.
Nested Class Summary | |
static class |
QuadraticProgramming.InconsistentSystemException
Inconsistent system. |
Field Summary | |
static double |
EPSILON_SMALL
The smallest relative spacing for doubles. |
Constructor Summary | |
QuadraticProgramming(double[][] h,
double[] g,
double[][] aEquality,
double[] bEquality,
double[][] aInequality,
double[] bInequality)
Solve a quadratic programming problem. |
Method Summary | |
double[] |
getDual()
Returns the dual (Lagrange multipliers). |
double[] |
getSolution()
Returns the solution. |
boolean |
isNoMoreProgress()
Returns true if due to computer rounding error, a change in the variables fail to improve the objective function. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final double EPSILON_SMALL
Constructor Detail |
public QuadraticProgramming(double[][] h, double[] g, double[][] aEquality, double[] bEquality, double[][] aInequality, double[] bInequality) throws QuadraticProgramming.InconsistentSystemException
h
- is square array containing the Hessian. It must be positive definite.g
- contains the coefficients of the linear term of the objective function.aEquality
- is a rectangular matrix containing the equality constraints.
It can be null if there are no equality constraints.bEquality
- contains the right-side of the equality constraints.
It can be null if there are no equality constraints.aInequality
- is a rectangular matrix containing the inequality constraints.
It can be null if there are no inequality constraints.bInequality
- contains the right-side of the inequality constraints.
It can be null if there are no inequality constraints.Method Detail |
public double[] getDual()
public double[] getSolution()
public boolean isNoMoreProgress()
|
JMSLTM Numerical Library 4.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |