Example usage for org.apache.commons.math3.fitting SimpleCurveFitter fit

List of usage examples for org.apache.commons.math3.fitting SimpleCurveFitter fit

Introduction

In this page you can find the example usage for org.apache.commons.math3.fitting SimpleCurveFitter fit.

Prototype

public double[] fit(Collection<WeightedObservedPoint> points) 

Source Link

Document

Fits a curve.

Usage

From source file:heizung.Heizkurve.java

public static PolynomialFunction getPolynomialFit(List<Point> pList) {
    PolynomialFunction result = null;/*from w  ww  .j a  va  2 s . co  m*/
    if (pList == null) {
        return result;
    }
    try {

        final WeightedObservedPoints obs = new WeightedObservedPoints();
        for (Point p : pList) {
            obs.add(p.getX(), p.getY());
        }

        final ParametricUnivariateFunction function = new PolynomialFunction.Parametric();
        // Start fit from initial guesses that are far from the optimal
        // values.
        // final SimpleCurveFitter fitter =
        // SimpleCurveFitter.create(function,
        // new double[] { -1e20, 3e15, -5e25 });
        final SimpleCurveFitter fitter = SimpleCurveFitter.create(function,
                new double[] { -2e20, 1e15, -1e25 });
        // 2e2 ist 2*10^2 = 2*100
        final double[] best = fitter.fit(obs.toList());
        // System.out.println("Parameters: " + best.length);
        // funktion ausgeben
        result = new PolynomialFunction(best);
    } catch (Exception e) {
        // e.printStackTrace();
        System.out.println("PolynomialFunction: " + e);
    }
    return result;
}