日期:2012-10-12  浏览次数:20608 次

如果你具有数学知识背景,你可能已经意识到PHP中并不具备处理高等数学概念——复杂数字、分数、多项式、统计数据和矩阵——的特殊函数。

但是,这种缺陷可以由PEAR,PHP扩展和应用库来填补,它提供大量处理复杂数学单位的现成数据包。这些数据包为应用程序开发者提供一个稳健、经过良好测试的代码库,同时帮助你节省构造出你自己的数学算法所需的时间和精力。

本文列出开发者在其项目中处理复杂数学问题时特别感兴趣的10个PEAR数据包(表A)。查看并尝试一下——你可能不会知道,你也许会为你当前面对的问题找到解决办法。不过有一个警告:如果你上学时不喜欢数学课,下面的内容可能会让你恢复一些令人不快的回忆。

:你可以按这里提供的指示,直接从网络上安装PEAR数据包。 

表A

类名称

说明

Math_Complex

这个类让你对复杂的数(包含实数和虚数的数)执行基本的高级算术运算。它包含一个面向对象的界面,支持对这些数的三角和对数运算。

在对复杂数执行三角、双曲线或指数运算时使用这个类。

Math_Fraction

这个类允许你把分数的分子和分母当作类的自变量,从而生成“分数对象”。它包含分数的加、减、乘、除和计算倒数的方法,还可以比较两个或两个以上的分数,从中找出最大值。

在PHP中需要处理分数值时使用这个类。

Math_Derivative

导数是指某个指定的函数相应其自变量的变化率,它是微积分中最重要的概念之一。这个类提供一个面向对象的框架,找出任何数学表达式在指定水平下的导数。它支持基本运算法则(加、减、乘、除)和一个加速推导的高速缓存。

处理导数时使用这个类。

Math_Polynomial

多项式由几个表达式组成,每个自变量的指数各不相同。这个类提供解决多项式等式所需的各种工具,包括对多项式执行基本算术运算、计算多项式的导数和次数、以及求多项式在自变量取特定值时的值。

使用这个类来简化复杂的多项式等式。

Math_Matrix

这个类提供一个面向对象的框架来完成包含矩阵的算术运算。这时,矩阵由一系列数组表示;这个类对这些数组进行加、减、乘、除;确定数组是否为平方;并计算重要的矩阵值,如行列式和模子。

当你需要处理数字矩阵时使用这个类。

Math_Fibonacci

斐波纳奇序列是一个连接的序列数字,它由一位意大利数学最早发现。这个类提供计算一个或几个序列成员的方法,伪随机数字生成器、视觉艺术和音乐这样的应用程序通常需要完成此类操作。它还可以用来检测某个整数是否属于斐波纳奇序列。

当你需要计算和处理斐波纳奇数字时可使用这个类

Math_Vector

这个类提供一个处理向量的面向对象的框架。它支持重要的向量计算,如计算向量间的距离(卡笛尔、曼哈顿和棋盘);逆转、转变、缩放和常化向量;以及计算向量的长度和量值。

在二维或三维空间需要执行向量计算时使用这个类。

Math_BinaryUtils

这个类提供一个处理二进制数据的框架,包括在大字节序、小字节序、十进制、整数和十六进制格式之间进行转换;包装和打开选项;以及轻松加减二进制数字的能力。

需要执行二进制数字时使用这个类。

Math_Stats

这个类提供一组变化多样的实用函数,对一个数据集进行统计分析。其功能包括计算平均值(标准、内四分位、调和、几何)、中值和众数;找出标准、绝对和内四分位差;计算变差系数、原始矩以及计算分布的偏斜和峰态。

当你需要对一个数据集进行快速的基本统计分析时使用这个类。

Math_Histogram

这个类通过对一个数字数据集合进行分类并描绘一个图形化的频率分布图,从而对其进行统计分析。它的作用包括定义“箱”,给箱分配数据点,以及在二维或三维空间中以数字或图形方式生成一个柱状数据集分布图。

使用这个类了解一个数据集的分布频率。