apache的math组件,尽管不常用,我今天也整理出来。
下载地址: http://commons.apache.org/math/
示例代码:
package demo;import org.apache.commons.math.stat.descriptive.moment.GeometricMean;import org.apache.commons.math.stat.descriptive.moment.Kurtosis;import org.apache.commons.math.stat.descriptive.moment.Mean;import org.apache.commons.math.stat.descriptive.moment.Skewness;import org.apache.commons.math.stat.descriptive.moment.StandardDeviation;import org.apache.commons.math.stat.descriptive.moment.Variance;import org.apache.commons.math.stat.descriptive.rank.Max;import org.apache.commons.math.stat.descriptive.rank.Min;import org.apache.commons.math.stat.descriptive.rank.Percentile;import org.apache.commons.math.stat.descriptive.summary.Product;import org.apache.commons.math.stat.descriptive.summary.Sum;import org.apache.commons.math.stat.descriptive.summary.SumOfSquares;public class TestMathUserage ...{ public static void main(String[] args) ...{ double[] values = new double[] ...{ 0.33, 1.33, 0.27333, 0.3, 0.501, 0.444, 0.44, 0.34496, 0.33, 0.3, 0.292, 0.667 }; /**//* * System.out.println( "min: " + StatUtils.min( values ) ); * System.out.println( "max: " + StatUtils.max( values ) ); * System.out.println( "mean: " + StatUtils.mean( values ) ); // Returns * the arithmetic mean of the entries in the input array, or Double.NaN * if the array is empty System.out.println( "product: " + * StatUtils.product( values ) ); //Returns the product of the entries * in the input array, or Double.NaN if the array is empty. * System.out.println( "sum: " + StatUtils.sum( values ) ); //Returns * the sum of the values in the input array, or Double.NaN if the array * is empty. System.out.println( "variance: " + StatUtils.variance( * values ) ); // Returns the variance of the entries in the input * array, or Double.NaN if the array is empty. */ Min min = new Min(); Max max = new Max(); Mean mean = new Mean(); // 算术平均值 Product product = new Product(); Sum sum = new Sum(); Variance variance = new Variance(); System.out.println("min: " + min.evaluate(values)); System.out.println("max: " + max.evaluate(values)); System.out.println("mean: " + mean.evaluate(values)); System.out.println("product: " + product.evaluate(values)); System.out.println("sum: " + sum.evaluate(values)); System.out.println("variance: " + variance.evaluate(values)); Percentile percentile = new Percentile(); // 百分位数 GeometricMean geoMean = new GeometricMean(); // 几何平均数,n个正数的连乘积的n次算术根叫做这n个数的几何平均数 Skewness skewness = new Skewness(); // Skewness(); Kurtosis kurtosis = new Kurtosis(); // Kurtosis,峰度 SumOfSquares sumOfSquares = new SumOfSquares(); // 平方和 StandardDeviation StandardDeviation = new StandardDeviation(); System.out.println("80 percentile value: " + percentile.evaluate(values, 80.0)); System.out.println("geometric mean: " + geoMean.evaluate(values)); System.out.println("skewness: " + skewness.evaluate(values)); System.out.println("kurtosis: " + kurtosis.evaluate(values)); System.out.println("sumOfSquares: " + sumOfSquares.evaluate(values)); // 就是标准方差 System.out.println("StandardDeviation: " + StandardDeviation.evaluate(values)); }}
几个主要功能类:
A.RandomData类:
package demo;import org.apache.commons.math.random.RandomData;import org.apache.commons.math.random.RandomDataImpl;public class MathDemo ...{ public static void main(String[] args) ...{ RandomData randomData = new RandomDataImpl(); for (int i = 0; i < 10; i++) ...{ long value = randomData.nextLong(1, 100); System.out.println(value); } System.out.println("==============="); for (int i = 0; i < 10; i++) ...{ randomData = new RandomDataImpl(); long value = randomData.nextLong(1, 100); System.out.println(value); } }}
B.RealMatrix类,求解方程
2x + 3y - 2z = 1-x + 7y + 6x = -24x - 3y - 5z = 1package demo;import java.io.IOException;import org.apache.commons.math.linear.RealMatrix;import org.apache.commons.math.linear.RealMatrixImpl;public class MathDemo ...{ public static void main(String[] args) throws IOException ...{ double[][] coefficientsData = ...{...{2, 3, -2}, ...{-1, 7, 6}, ...{4, -3, -5}}; RealMatrix coefficients = new RealMatrixImpl(coefficientsData); double[] constants = ...{1, -2, 1}; double[] solution = coefficients.solve(constants); System.out.println(solution[0]); System.out.println(solution[1]); System.out.println(solution[2]); }}
每一天都不可追回,所以更要珍惜每一寸光阴,