/** * Fits a straight line to a set of (x, y) data, returning the slope and * intercept. * * @param xData the x-data (<code>null</code> not permitted). * @param yData the y-data (<code>null</code> not permitted). * * @return A double array with the intercept in [0] and the slope in [1]. */ public static double[] getLinearFit(Number[] xData, Number[] yData) { if (xData == null) { throw new IllegalArgumentException("Null 'xData' argument."); } if (yData == null) { throw new IllegalArgumentException("Null 'yData' argument."); } if (xData.length != yData.length) { throw new IllegalArgumentException( "Statistics.getLinearFit(): array lengths must be equal."); } double[] result = new double[2]; // slope result[1] = getSlope(xData, yData); // intercept result[0] = calculateMean(yData) - result[1] * calculateMean(xData); return result; }
/** * Fits a straight line to a set of (x, y) data, returning the slope and * intercept. * * @param xData the x-data ({@code null} not permitted). * @param yData the y-data ({@code null} not permitted). * * @return A double array with the intercept in [0] and the slope in [1]. */ public static double[] getLinearFit(Number[] xData, Number[] yData) { Args.nullNotPermitted(xData, "xData"); Args.nullNotPermitted(yData, "yData"); if (xData.length != yData.length) { throw new IllegalArgumentException( "Statistics.getLinearFit(): array lengths must be equal."); } double[] result = new double[2]; // slope result[1] = getSlope(xData, yData); // intercept result[0] = calculateMean(yData) - result[1] * calculateMean(xData); return result; }