public class OLSSolver extends OLSSolverByQR
Supply a full-column-rank design matrix with at least as many rows as columns and a right-hand side with one entry per row. The returned vector has one coefficient per column. The solver does not insert an intercept; include a column of ones yourself, or use the regression API.
import dev.nm.algebra.linear.matrix.doubles.matrixtype.dense.DenseMatrix;
import dev.nm.algebra.linear.matrix.doubles.linearsystem.LSProblem;
import dev.nm.algebra.linear.matrix.doubles.linearsystem.OLSSolver;
import dev.nm.algebra.linear.vector.doubles.Vector;
import dev.nm.algebra.linear.vector.doubles.dense.DenseVector;
DenseMatrix a = new DenseMatrix(new double[][]{{1, 0}, {1, 1}, {1, 2}});
DenseVector b = new DenseVector(1.0, 3.0, 5.0);
Vector coefficients = new OLSSolver(1e-12).solve(new LSProblem(a, b));
assert Math.abs(coefficients.get(1) - 1.0) < 1e-10;
assert Math.abs(coefficients.get(2) - 2.0) < 1e-10;
assert a.multiply(coefficients).minus(b).norm() < 1e-10;
| Constructor and Description |
|---|
OLSSolver(double epsilon)
Construct an OLS solver for an over-determined system of linear
equations.
|
Copyright © 2010-2026 NM Group. All Rights Reserved.