This package provides classes to solve estimation problems.

The estimation problems considered here are parametric problems where a user model depends on initially unknown scalar parameters and several measurements made on values that depend on the model are available. As an example, one can consider the flow rate of a river given rain data on its vicinity, or the center and radius of a circle given points on a ring.

One important class of estimation problems is weighted least squares problems. They basically consist in finding the values for some parameters pk such that a cost function J = sum(wi ri2) is minimized. The various ri terms represent the deviation ri = mesi - modi between the measurements and the parameterized models. The wi factors are the measurements weights, they are often chosen either all equal to 1.0 or proportional to the inverse of the variance of the measurement type. The solver adjusts the values of the estimated parameters pk which are not bound. It does not touch the parameters which have been put in a bound state by the user.

This package provides the {@link org.apache.commons.math.estimation.EstimatedParameter EstimatedParameter} class to represent each estimated parameter, and the {@link org.apache.commons.math.estimation.WeightedMeasurement WeightedMeasurement} abstract class the user can extend to define its measurements. All parameters and measurements are then provided to some {@link org.apache.commons.math.estimation.Estimator Estimator} packed together in an {@link org.apache.commons.math.estimation.EstimationProblem EstimationProblem} instance which acts only as a container. The package provides two common estimators for weighted least squares problems, one based on the {@link org.apache.commons.math.estimation.GaussNewtonEstimator Gauss-Newton} method and the other one based on the {@link org.apache.commons.math.estimation.LevenbergMarquardtEstimator Levenberg-Marquardt} method.