Example usage for org.apache.commons.math3.linear SingularMatrixException printStackTrace

List of usage examples for org.apache.commons.math3.linear SingularMatrixException printStackTrace

Introduction

In this page you can find the example usage for org.apache.commons.math3.linear SingularMatrixException printStackTrace.

Prototype

public void printStackTrace() 

Source Link

Document

Prints this throwable and its backtrace to the standard error stream.

Usage

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 };
}