List of usage examples for org.apache.commons.math3.linear SingularMatrixException printStackTrace
public void printStackTrace()
From source file:com.itemanalysis.psychometrics.irt.estimation.ItemLogLikelihood.java
/** * Computes the standard errors of the item parameter estimates. * * @param x array of item parameter estimates * @return array of item parameter standard errors *//* ww w . j a v a 2 s . co m*/ public double[] stdError(double[] x, double[][] hessian) { double[] se = new double[x.length]; try { // RealMatrix m = new Array2DRowRealMatrix(numericHessian(x)); RealMatrix m = new Array2DRowRealMatrix(hessian); RealMatrix info = new LUDecomposition(m).getSolver().getInverse(); for (int i = 0; i < info.getRowDimension(); i++) { se[i] = Math.sqrt(info.getEntry(i, i)); } } catch (SingularMatrixException ex) { for (int i = 0; i < se.length; i++) { se[i] = Double.NaN; } ex.printStackTrace(); } return se; }
From source file:org.mcisb.kinetics.KineticsCalculator.java
/** * /*from w ww .jav a 2 s.co m*/ * @param substrateConcentrations * @param initialRates * @param n * @return double[] */ private static double[] hillFit(final double[] substrateConcentrations, final double[] initialRates) { final double[] eadieHofstee = eadieHofstee(substrateConcentrations, initialRates); double vMax = eadieHofstee[MathUtils.INTERSECTION]; double kM = Math.max(0, -eadieHofstee[MathUtils.GRADIENT]); double vMaxError = 0; double kMError = 0; try { final double[] levenbergMarquardt = levenbergMarquardt(substrateConcentrations, initialRates, vMax, kM); vMax = levenbergMarquardt[0]; kM = levenbergMarquardt[1]; vMaxError = levenbergMarquardt[2]; kMError = levenbergMarquardt[3]; } catch (SingularMatrixException e) { e.printStackTrace(); } final double[] substrateConcentrationsPlusKm = Arrays.copyOf(substrateConcentrations, substrateConcentrations.length); MathUtils.add(substrateConcentrationsPlusKm, kM); final double[] initialRatesNew = MathUtils .ebeDivide(MathUtils.scalarMultiply(substrateConcentrations, vMax), substrateConcentrationsPlusKm); final double[] subtracted = MathUtils.subtract(initialRates, initialRatesNew); final double residues = MathUtils.norm(subtracted); return new double[] { residues, vMax, kM, vMaxError, kMError }; }