12 2010 档案
摘要: 我们讲到数学的计算,难免会遇到分数形式,因为实数的定义就是可以表示为一个分数的形式的数,而加入虚数的复数也是偶尔会遇到的。Commons Math包中的fraction和complex包就分别提供了方法来表示这两种数。
阅读全文
摘要: 概率分布是概率论的一个基础。
在Commons Math包中也专门有一个子包对概率分布进行了封装实现。在distribution包中,定义了一个基本接口Distribution。该接口只有两个方法,一个是double cumulativeProbability(double x),一个是double cumulativeProbability(double x0, double x1)。前者对于服从某种分布的随机变量X,返回P(X<=x);后者则返回P(x0<=X<=x1)。正如其名所示,这样也就得到了概率。
阅读全文
摘要: 函数方程求解,其实是函数的零点问题,也就是说函数的曲线与X轴的交点。对于线性方程,我们可以轻易的求解,对于线性方程组,利用前面讲过的的矩阵分解方法也可以求解。那么对于函数表达的很多非线性方程的求解。我们要依赖数值算法。Commons Math包中专门有一个analysis.solver包来解决这个问题。
阅读全文
摘要: 积分可以说是最常见的了,在函数的一节中我们讲过函数的微分和给定变量求值,这里我们讲讲通过函数求积分,具体的数值积分方法和应用。什么是数值积分?在数值分析中,数值积分是计算定积分数值的方法和理论。在数学分析中,给定函数的定积分的计算不总是可行的。许多定积分不能用已知的积分公式得到精确值。数值积分是利用黎曼积分等数学定义,用数值逼近的方法近似计算给定的定积分值。借助于电子计算设备,数值积分可以快速而有效地计算复杂的积分。Commons Math中的积分包analysis.integration提供了几种数值积分的实现,UnivariateRealIntegrator接口是积分包中的基础接口,该接口继承了math包中的ConvergingAlgorithm接口。具体定义了一系列方法,其中比较主要的有double integrate(UnivariateRealFunction f, double min, double max)方法,这个方法就是通过min和max设定积分区间,通过f设定被积函数,最后返回定积分值的方法。可以看到这个接口的实现是针对单变量实函数的。多元积分的实现,目前还没有看
阅读全文
摘要: 在Commons Math中的analysis.interpolation包中有所有的与函数插值相关的类和接口定义。这一篇主要从这个包分析,来研究一下函数插值的应用。在2.1的api doc中添加了很多新的接口和类实现,但是2.0的source code里还是只有少量的实现。这里以2.0的source code为标准,辅助以2.1的api doc(其实这都是不影响的)。
插值是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方法。给定n个离散数据点(称为节点)(xk,yk),k= 1,2,...,n。对于,求x所对应的y的值称为内插。f(x)为定义在区间[a,b]上的函数。x1,x2,x3...xn为[a,b]上n个互不相同的点,G为给定的某意函数类。若G上有函数g(x)满足: g(xi) = f(xi),k = 1,2,...n
则称g(x)为f(x)关于节点x1,x2,x3...xn在G上的插值函数
阅读全文
摘要: 在Commons Math中的analysis.polynomials包中有所有的与多项式函数相关的类和接口定义。这一篇主要从这个包分析,来研究一下多项式函数的应用。
阅读全文
摘要: 向量和矩阵可以说是线性代数的代表,那么返还到高等数学中,函数就是我们最常用到的单位了,还有各种微积分和其他应用,都是建立在变量、函数的基础上的。Commons Math库的下一个研读部分就是针对函数这一块。在Commons Math中也单独有一个analysis包完成这部分实现。
阅读全文
摘要: 补充上一次的矩阵知识,这次主要讲讲矩阵的一些分解运算——Matrix Decomposition:
矩阵分解主要有三种方式:LU分解,QR分解和奇异值分解。当然在Math的linear包中提供了对应的接口有CholeskyDecomposition、EigenDecomposition、LUDecomposition、QRDecomposition和SingularValueDecomposition这5种分解方式。
阅读全文
摘要: 今天来第二篇:矩阵——Matrix。
Math包org.apache.commons.math.linear里对矩阵的表示是有一个层次结构的。
最顶层的AnyMatrix是一个基本的interface。下面有3个sub interface:BigMatrix, FieldMatrix
, RealMatrix。而每个sub interface分别被相应的矩阵类实现。整个矩阵的层次结构也就出来了。不过其中的BigMatrix已经不用了。被Array2DRowFieldMatrix替代了。
阅读全文