Add Javadoc to LeastSquaresBuilder.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1569348 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9444e28967
commit
4cdfc143ea
|
@ -6,58 +6,124 @@ import org.apache.commons.math3.linear.RealMatrix;
|
||||||
import org.apache.commons.math3.optim.ConvergenceChecker;
|
import org.apache.commons.math3.optim.ConvergenceChecker;
|
||||||
import org.apache.commons.math3.optim.PointVectorValuePair;
|
import org.apache.commons.math3.optim.PointVectorValuePair;
|
||||||
|
|
||||||
/** @author Evan Ward */
|
/**
|
||||||
|
* A mutable builder for {@link LeastSquaresProblem}s.
|
||||||
|
*
|
||||||
|
* @version $Id$
|
||||||
|
* @see LeastSquaresFactory
|
||||||
|
*/
|
||||||
public class LeastSquaresBuilder {
|
public class LeastSquaresBuilder {
|
||||||
|
|
||||||
|
/** max evaluations */
|
||||||
private int maxEvaluations;
|
private int maxEvaluations;
|
||||||
|
/** max iterations */
|
||||||
private int maxIterations;
|
private int maxIterations;
|
||||||
|
/** convergence checker */
|
||||||
private ConvergenceChecker<PointVectorValuePair> checker;
|
private ConvergenceChecker<PointVectorValuePair> checker;
|
||||||
|
/** model function */
|
||||||
private MultivariateVectorFunction model;
|
private MultivariateVectorFunction model;
|
||||||
|
/** Jacobian function */
|
||||||
private MultivariateMatrixFunction jacobian;
|
private MultivariateMatrixFunction jacobian;
|
||||||
|
/** observed values */
|
||||||
private double[] target;
|
private double[] target;
|
||||||
|
/** initial guess */
|
||||||
private double[] start;
|
private double[] start;
|
||||||
|
/** weight matrix */
|
||||||
private RealMatrix weight;
|
private RealMatrix weight;
|
||||||
|
|
||||||
|
|
||||||
public LeastSquaresProblem build(){
|
/**
|
||||||
|
* Construct a {@link LeastSquaresProblem} from the data in this builder.
|
||||||
|
*
|
||||||
|
* @return a new {@link LeastSquaresProblem}.
|
||||||
|
*/
|
||||||
|
public LeastSquaresProblem build() {
|
||||||
return LeastSquaresFactory.create(model, jacobian, target, start, weight, checker, maxEvaluations, maxIterations);
|
return LeastSquaresFactory.create(model, jacobian, target, start, weight, checker, maxEvaluations, maxIterations);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the max evaluations.
|
||||||
|
*
|
||||||
|
* @param maxEvaluations the maximum number of evaluations permitted.
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder maxEvaluations(final int maxEvaluations) {
|
public LeastSquaresBuilder maxEvaluations(final int maxEvaluations) {
|
||||||
this.maxEvaluations = maxEvaluations;
|
this.maxEvaluations = maxEvaluations;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the max iterations.
|
||||||
|
*
|
||||||
|
* @param maxIterations the maximum number of iterations permitted.
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder maxIterations(final int maxIterations) {
|
public LeastSquaresBuilder maxIterations(final int maxIterations) {
|
||||||
this.maxIterations = maxIterations;
|
this.maxIterations = maxIterations;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the convergence checker.
|
||||||
|
*
|
||||||
|
* @param checker the convergence checker.
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder checker(final ConvergenceChecker<PointVectorValuePair> checker) {
|
public LeastSquaresBuilder checker(final ConvergenceChecker<PointVectorValuePair> checker) {
|
||||||
this.checker = checker;
|
this.checker = checker;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the model function.
|
||||||
|
*
|
||||||
|
* @param model the model function
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder model(final MultivariateVectorFunction model) {
|
public LeastSquaresBuilder model(final MultivariateVectorFunction model) {
|
||||||
this.model = model;
|
this.model = model;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the Jacobian function.
|
||||||
|
*
|
||||||
|
* @param jacobian the Jacobian function
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder jacobian(final MultivariateMatrixFunction jacobian) {
|
public LeastSquaresBuilder jacobian(final MultivariateMatrixFunction jacobian) {
|
||||||
this.jacobian = jacobian;
|
this.jacobian = jacobian;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the observed data.
|
||||||
|
*
|
||||||
|
* @param target the observed data.
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder target(final double[] target) {
|
public LeastSquaresBuilder target(final double[] target) {
|
||||||
this.target = target;
|
this.target = target;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the initial guess.
|
||||||
|
*
|
||||||
|
* @param start the initial guess.
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder start(final double[] start) {
|
public LeastSquaresBuilder start(final double[] start) {
|
||||||
this.start = start;
|
this.start = start;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the weight matrix.
|
||||||
|
*
|
||||||
|
* @param weight the weight matrix
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
public LeastSquaresBuilder weight(final RealMatrix weight) {
|
public LeastSquaresBuilder weight(final RealMatrix weight) {
|
||||||
this.weight = weight;
|
this.weight = weight;
|
||||||
return this;
|
return this;
|
||||||
|
|
Loading…
Reference in New Issue