private LeastSquareWithPenaltyResults finish( DoubleMatrix alpha, DecompositionResult decmp, double chiSqr, double penalty, DoubleMatrix jacobian, DoubleArray newTheta, DoubleArray sigma) { DoubleMatrix covariance = decmp.solve(DoubleMatrix.identity(alpha.rowCount())); DoubleMatrix bT = getBTranspose(jacobian, sigma); DoubleMatrix inverseJacobian = decmp.solve(bT); return new LeastSquareWithPenaltyResults(chiSqr, penalty, newTheta, covariance, inverseJacobian); }
@Test public void test() { double chi2 = 13.234324; double pen = 2.3445; int nParms = 12; DoubleArray parms = DoubleArray.filled(nParms, 0.5); DoubleMatrix cov = DoubleMatrix.filled(nParms, nParms); LeastSquareWithPenaltyResults res = new LeastSquareWithPenaltyResults(chi2, pen, parms, cov); assertEquals(chi2, res.getChiSq()); assertEquals(pen, res.getPenalty()); DoubleMatrix invJac = DoubleMatrix.filled(nParms, 5); res = new LeastSquareWithPenaltyResults(chi2, pen, parms, cov, invJac); assertEquals(chi2, res.getChiSq()); assertEquals(pen, res.getPenalty()); }