Example 1: Bounded Value Least Squares
The following example solves a linear least squares problem with bounds on the variables and compares the result to its unbounded solution. The normal of the residuals is 0.0 for the exact solution.
import com.imsl.math.*;
public class BoundedVariableLeastSquaresEx1 {
public static void main(String args[]) throws Exception {
double a[][] = {
{ 1, -3, 2},
{-3, 10, -5},
{ 2, -5, 6}};
double b[] = {27, -78, 64};
double xlb[] = {-1, -1, -1};
double xub[] = {5, 5, 5};
double xl_ub[] = {Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY,
Double.NEGATIVE_INFINITY};
double xu_ub[] = {Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY,
Double.POSITIVE_INFINITY};
// compute the bounded solution
BoundedVariableLeastSquares bvls =
new BoundedVariableLeastSquares(a, b, xlb, xub);
bvls.solve();
double[] x_bounded = bvls.getSolution();
new PrintMatrix("Bounded Solution").print(x_bounded);
System.out.println("Norm of the Residuals = "+bvls.getResidualNorm());
// compute the unbounded solution
bvls = new BoundedVariableLeastSquares(a, b, xl_ub, xu_ub);
bvls.solve();
double[] x_unbounded = bvls.getSolution();
new PrintMatrix("\nUnbounded Solution").print(x_unbounded);
System.out.println("Norm of the Residuals = "+bvls.getResidualNorm());
}
}
Output
Bounded Solution
0
0 5
1 -1
2 5
Norm of the Residuals = 35.0142828000232
Unbounded Solution
0
0 1
1 -4
2 7
Norm of the Residuals = 0.0
Link to Java source.