/** * Configure the maximum number of iterations. * @param newMaxIter maximum number of iterations * @return a new instance. */ public PolynomialCurveFitter withMaxIterations(int newMaxIter) { return new PolynomialCurveFitter(initialGuess, newMaxIter); }
/** * Fits sampled data to a polynomial function and keeps the fit in memory. * * @param degree * Degree of the polynomial to be fitted * @throws NullArgumentException * if the computed polynomial coefficients were null * @throws NoDataException * if the computed polynomial coefficients were empty */ public void fitPolynomial(final int degree) { final PolynomialCurveFitter fitter = PolynomialCurveFitter.create(degree); final ArrayList<WeightedObservedPoint> points = new ArrayList<>(); for (int i = 0; i < nPoints; i++) { points.add(new WeightedObservedPoint(1, inputRadii[i], inputCounts[i])); } pFunction = new PolynomialFunction(fitter.fit(points)); fCounts = new double[nPoints]; for (int i = 0; i < nPoints; i++) { fCounts[i] = pFunction.value(inputRadii[i]); } }
final PolynomialCurveFitter fitter = PolynomialCurveFitter.create(1); final double[] coeff = fitter.fit(obs.toList()); approxFunction = new PolynomialFunction(coeff); return; final PolynomialCurveFitter fitter = PolynomialCurveFitter.create(2); final double[] coeff = fitter.fit(obs.toList()); approxFunction = new PolynomialFunction(coeff);
PolynomialCurveFitter curveFitter = PolynomialCurveFitter.create(degree); WeightedObservedPoints points = new WeightedObservedPoints(); for(int i=0; i<x.length; i++) { double[] coef = curveFitter.fit(points.toList()); PolynomialFunction pf = new PolynomialFunction(coef); UnivariateFunction univariateFunction = pf.derivative();
/** * Creates a default curve fitter. * Zero will be used as initial guess for the coefficients, and the maximum * number of iterations of the optimization algorithm is set to * {@link Integer#MAX_VALUE}. * * @param degree Degree of the polynomial to be fitted. * @return a curve fitter. * * @see #withStartPoint(double[]) * @see #withMaxIterations(int) */ public static PolynomialCurveFitter create(int degree) { return new PolynomialCurveFitter(new double[degree + 1], Integer.MAX_VALUE); }
/** * Configure the start point (initial guess). * @param newStart new start point (initial guess) * @return a new instance. */ public PolynomialCurveFitter withStartPoint(double[] newStart) { return new PolynomialCurveFitter(newStart.clone(), maxIter); }
/** * Configure the maximum number of iterations. * @param newMaxIter maximum number of iterations * @return a new instance. */ public PolynomialCurveFitter withMaxIterations(int newMaxIter) { return new PolynomialCurveFitter(initialGuess, newMaxIter); }
/** * Creates a default curve fitter. * Zero will be used as initial guess for the coefficients, and the maximum * number of iterations of the optimization algorithm is set to * {@link Integer#MAX_VALUE}. * * @param degree Degree of the polynomial to be fitted. * @return a curve fitter. * * @see #withStartPoint(double[]) * @see #withMaxIterations(int) */ public static PolynomialCurveFitter create(int degree) { return new PolynomialCurveFitter(new double[degree + 1], Integer.MAX_VALUE); }
/** * Creates a default curve fitter. * Zero will be used as initial guess for the coefficients, and the maximum * number of iterations of the optimization algorithm is set to * {@link Integer#MAX_VALUE}. * * @param degree Degree of the polynomial to be fitted. * @return a curve fitter. * * @see #withStartPoint(double[]) * @see #withMaxIterations(int) */ public static PolynomialCurveFitter create(int degree) { return new PolynomialCurveFitter(new double[degree + 1], Integer.MAX_VALUE); }
/** * Configure the maximum number of iterations. * @param newMaxIter maximum number of iterations * @return a new instance. */ public PolynomialCurveFitter withMaxIterations(int newMaxIter) { return new PolynomialCurveFitter(initialGuess, newMaxIter); }
/** * Configure the start point (initial guess). * @param newStart new start point (initial guess) * @return a new instance. */ public PolynomialCurveFitter withStartPoint(double[] newStart) { return new PolynomialCurveFitter(Cloner.clone(newStart), maxIter); }
/** * Configure the start point (initial guess). * @param newStart new start point (initial guess) * @return a new instance. */ public PolynomialCurveFitter withStartPoint(double[] newStart) { return new PolynomialCurveFitter(newStart.clone(), maxIter); }