Jakarta Commons——数学计算

Lang     

使用分数

从字符串解析分数

    Fraction fraction = Fraction.getFraction( userInput );

    double value = fraction.doubleValue();

把假分数转换为真分数的能力

abs()  返回某个 Fraction 的绝对值

add(Fraction fraction)   把两个 Fraction 对象相加

subtract(Fraction fraction)   从当前 Fraction 中减去参数

multiplyBy(Fraction fraction)  将参数和当前 Fraction 相乘

divideBy(Fraction fraction)   将当前 Fraction 除以参数

reduce()  将 Fraction 化简为最小分母

negate()   返回 -1 * Fraction

invert()   交换分子和分母

getNumerator()   返回分子值

getDenominator()   返回分母值

getProperNumerator()   返回相应真分数的分子

getProperWhole()   返回相应真分数的数字

pow()   对 Fraction加幂

寻找最大最小值

NumberUtils.max()与NumberUtils.min()方法来从基本类型数组中检索出最小或最大值

Max类和Min类 统计数组的最值 

          Max maximum = new Max();

          Min minimum = new Min();

          double max = maximum.evaluate( array, 0, array.length );

          double min = minimum.evaluate( array, 0, array.length );

处理数字的范围

     为变量定义一组可接收的值,并检测变量是否落在该范围内。 还可以检验某个 Range 中是否包含另一个 Range:containsRange(),或者某个Range是否和另一个Range发生重叠:overlapsRange()

生成随机变量

     使用RandomUtils类生成int float double boolean型随机变量。相比起java的Random类,该方法更加简单

Math

提供了处理复数、计算统计量、矩阵实现、特殊函数、连分数、数值求根法、插值以及双变量回归分析等一系列实用工具。

要获取有关数学方面更权威的指南,不妨购买一本 Numerical Recipes in C++ 或者Numerical Recipes in C(Cambridge University Press)。

单变量统计量

     利用StatUtils计算 平均值、中值、方差、最小值和最大值

    其他类实现 百分点、几何平均数、标准差、偏度和峰度

求解线性方程系统

     如求解如下线性方程:

            3x + 20y + 89z = 1324

            4x + 40y + 298z = 2999

            7x - 21y + 0.42z = 2039

      可使用 Commons Math 提供的 RealMatrix和RealMatrixImpl类。它能把这个线性方程系统表示为 Ax=B 的形式,正如图 8-3 所示。首先把 A 的系数放入一个RealMatrix实例中,并把 B 置入一个double[]型数组中。然后调用RealMatrix 上的solve()方法以得到一个double[]型数组,该数组含有所有满足该线性方程系统的x、y和z值。当方程是不可解的,InvalidMatrixException异常就会被抛出,指出该矩阵是

奇异矩阵。此外,如果 B 的行数不等于 A 的列数,solve()将抛出 InvalidMatrix-Exception 异常。

求解复数

       可使用Math提供的Complex和ComplexMath类来表示复数,并执行对复数的算术操作。ComplexFormat类用于输出某个复数的实数部分和虚数部分。

在两个独立变量间建立关联

       可将异常数据点添加到一个Commons Math SimpleRegression实例中。这个类能用于计算斜率、 slope confidence 以及名为 R-square 的相关度。SimpleRegression类能对一个独立变量进行线性二乘回归分析,并通过向该模型添加异常数据点而求得方程 y =ax + b的参数。

估计剩余处理时间

       问题:你正在运行一个需很长时间的程序,并需要在结束之前向用户显示剩余时间的估计值。

       解决: 可使用 Commons Math 的 SimpleRegression以及 Commons Lang 的 StopWatch 来创建一个 ProcessEstimator类,该类可用于预测某个指定程序将在何时结束。你的程序需要处理许多条记录并将运行好几个小时,在这种情况下,你会希望提供一些反馈信息。此外,如果确信每个记录的处理时间都大致相等,你就可以使用SimpleRegression的斜度和截距方法估算出所有记录将在何时处理完毕。

你可能感兴趣的:(java,Math,Random,工具,float,数学计算)