您的位置:首页 > 运维架构 > Apache

apache commons math 示例代码

2017-01-04 17:12 417 查看
apache commons Math是一组偏向科学计算为主的函数,主要是针对线性代数,数学分析,概率和统计等方面。

我虽然是数学专业毕业,当年也是抱着《数学分析》啃,但是好久不用,这些概念都开始生疏,写一点例子,仅作参考。

packagetest.ffm83.commons.math;

importorg.apache.commons.math3.linear.Array2DRowRealMatrix;

import org.apache.commons.math3.linear.LUDecomposition;

importorg.apache.commons.math3.linear.RealMatrix;

importorg.apache.commons.math3.stat.descriptive.moment.GeometricMean;

importorg.apache.commons.math3.stat.descriptive.moment.Kurtosis;

importorg.apache.commons.math3.stat.descriptive.moment.Mean;

importorg.apache.commons.math3.stat.descriptive.moment.Skewness;

importorg.apache.commons.math3.stat.descriptive.moment.StandardDeviation;

importorg.apache.commons.math3.stat.descriptive.moment.Variance;

import org.apache.commons.math3.stat.descriptive.rank.Max;

importorg.apache.commons.math3.stat.descriptive.rank.Min;

importorg.apache.commons.math3.stat.descriptive.rank.Percentile;

importorg.apache.commons.math3.stat.descriptive.summary.Product;

importorg.apache.commons.math3.stat.descriptive.summary.Sum;

importorg.apache.commons.math3.stat.descriptive.summary.SumOfSquares;

/**

* 简单使用commons Math方法

* @author 范芳铭

*/

public class MathUsage {

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

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 = newPercentile(); // 百分位数

GeometricMean geoMean = newGeometricMean(); // 几何平均数,n个正数的连乘积的n次算术根叫做这n个数的几何平均数

Skewness skewness = new Skewness(); //Skewness();

Kurtosis kurtosis = new Kurtosis(); //Kurtosis,峰度

SumOfSquares sumOfSquares = newSumOfSquares(); // 平方和

StandardDeviation StandardDeviation =new StandardDeviation();//标准差

System.out.println("80 percentilevalue: "

+ percentile.evaluate(values,80.0));

System.out.println("geometricmean: " + 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));

System.out.println("-------------------------------------");

// Create a real matrix with two rowsand three columns

double[][] matrixData = { {1d,2d,3d},{2d,5d,3d}};

RealMatrix m = newArray2DRowRealMatrix(matrixData);

System.out.println(m);

// One more with three rows, twocolumns

double[][] matrixData2 = { {1d,2d},{2d,5d}, {1d, 7d}};

RealMatrix n = newArray2DRowRealMatrix(matrixData2);

// Note: The constructor copies  the input double[][] array.

// Now multiply m by n

RealMatrix p = m.multiply(n);

System.out.println("p:"+p);

System.out.println(p.getRowDimension());    // 2

System.out.println(p.getColumnDimension()); // 2

// Invert p, using LUdecomposition

RealMatrix pInverse = newLUDecomposition(p).getSolver().getInverse();

System.out.println(pInverse);

}

}

运行结果如下:

min: 0.27333

max: 1.33

mean: 0.46269083333333333

product: 2.3429343978460972E-5

sum: 5.552289999999999

variance: 0.08757300031742428

80 percentile value: 0.5674000000000001

geometric mean: 0.4112886050879374

skewness: 2.670095445623868

kurtosis: 7.718241303328169

sumOfSquares: 3.5322966905000004

StandardDeviation: 0.2959273564870681

-------------------------------------

Array2DRowRealMatrix{{1.0,2.0,3.0},{2.0,5.0,3.0}}

p:Array2DRowRealMatrix{{8.0,33.0},{15.0,50.0}}

2

2

Array2DRowRealMatrix{{-0.5263157895,0.3473684211},{0.1578947368,-0.0842105263}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: