public void testExactFitOddStart() { double[] start = new double[] {0.01, 0.99, 0.9, 0.4}; LeastSquareResultsWithTransform results = _fitter.solve(DoubleArray.copyOf(start)); double[] res = results.getModelParameters().toArray(); double eps = 1e-6; assertEquals(ALPHA, res[0], eps); assertEquals(BETA, res[1], eps); assertEquals(RHO, res[2], eps); assertEquals(NU, res[3], eps); assertEquals(0.0, results.getChiSq(), eps); }
public void testExactFitWithTransform() { double[] start = new double[] {0.01, 0.99, 0.9, 0.4}; NonLinearParameterTransforms transf = _fitter.getTransform(DoubleArray.copyOf(start)); LeastSquareResultsWithTransform results = _fitter.solve(DoubleArray.copyOf(start), transf); double[] res = results.getModelParameters().toArray(); double eps = 1e-6; assertEquals(ALPHA, res[0], eps); assertEquals(BETA, res[1], eps); assertEquals(RHO, res[2], eps); assertEquals(NU, res[3], eps); assertEquals(0.0, results.getChiSq(), eps); }
@Override public String toString() { return "LeastSquareResults [chiSq=" + getChiSq() + ", fit parameters=" + getFitParameters().toString() + ", model parameters= " + getModelParameters().toString() + ", covariance=" + getCovariance().toString() + "]"; }
@SuppressWarnings("unused") public void testExactFit() { double[][] start = getStartValues(); BitSet[] fixed = getFixedValues(); int nStartPoints = start.length; ArgChecker.isTrue(fixed.length == nStartPoints); for (int trys = 0; trys < nStartPoints; trys++) { LeastSquareResultsWithTransform results = _fitter.solve(DoubleArray.copyOf(start[trys]), fixed[trys]); DoubleArray res = results.getModelParameters(); assertEquals(0.0, results.getChiSq(), _chiSqEps); int n = res.size(); T data = getModelData(); assertEquals(data.getNumberOfParameters(), n); for (int i = 0; i < n; i++) { assertEquals(data.getParameter(i), res.get(i), _paramValueEps); } } }
public void testNoisyFit() { double[][] start = getStartValues(); BitSet[] fixed = getFixedValues(); int nStartPoints = start.length; ArgChecker.isTrue(fixed.length == nStartPoints); for (int trys = 0; trys < nStartPoints; trys++) { LeastSquareResultsWithTransform results = _nosiyFitter.solve(DoubleArray.copyOf(start[trys]), fixed[trys]); DoubleArray res = results.getModelParameters(); double eps = 1e-2; assertTrue(results.getChiSq() < 7); int n = res.size(); T data = getModelData(); assertEquals(data.getNumberOfParameters(), n); for (int i = 0; i < n; i++) { assertEquals(data.getParameter(i), res.get(i), eps); } } }
assertEquals(RHO, res[2], eps); assertEquals(NU, res[3], eps); assertEquals(0.0, results.getChiSq(), 10.0d);
assertEquals(RHO, res[2], eps); assertEquals(NU, res[3], eps); assertEquals(0.0, results.getChiSq(), eps);