一般的程序设计语言中都提供基本的数学函数库,程序员可以利用这些函数库,完成简单的数学运算,然而,对于构建某些复杂的数学计算程序而言,仅调用这些基本的函数库就无法满足要求。本文介绍利用COM组件MatrixVB扩展Visual Basic(以下简称VB)计算功能的开发过程与发布方法。
功能概述 MatrixVB是一个COM组件,它提供了大量的有效算法,可以加强VB内建数学运算与图形展示功能。函数库的功能大致可分为8大类,本文仅重点讨论其中常用的4类,有关更详细的资料请参考“http://www.mathworks.com/”。
1. 矩阵运算 矩阵是用于表示一组数据关系的组合,在数学与工程领域有着广泛的应用。一些重大问题的许多特性在求解前就可通过分析矩阵的特性获得,目前已经研究并设计了许多数值计算方法用于大型矩阵的处理。在MatrixVB中包含了许多矩阵分析函数,为在VB中直接应用这些高效的计算方法,一般将VB中的数组当成矩阵进行处理。 例如,既可以使用函数mabs(A)将VB中的数组A转换为矩阵,也可以使用MatrixVB中的特殊函数(如zeros()、ones()、magic()等)直接生成矩阵。对于已经创建的矩阵,可以通过园括号或函数rN()或iN()访问矩阵中的每个元素; 利用函数rows、cols、dims和dimension获取矩阵的属性; 使用vbsave()、vbload()读写矩阵数据文件。
2. 运算符重载 VB不支持运算符的重载,例如“+”只能用于标量的加法运算,但在MatrixVB组件包中提供了一组函数用于扩展VB本身的运算符的适用范围,可以像使用MatrixVB组件包中其他函数一样对这些函数进行调用。表2显示了MatrixVB组件包扩展的运算符函数与标准运算符间的对应关系。 使用这些运算符函数不仅可以对标量(在MatrixVB中,将其作为特殊的矩阵)进行运算,也可用于矩阵或数组运算,减少了编程工作量。
3. 图形、图像处理 MatrixVB组件包提供了一整套二维或三维作图函数、颜色处理函数、图像处理函数、句柄处理函数和用户界面对话框等工具。例如,在MatrixVB组件包中包含了用于生成圆饼图、直方图、频率图、等高线图、极坐标图、散点图等函数,可以基本满足图形应用需求,同时也提供了能读取多种格式图像的处理函数。
4. 最优化运算 MatrixVB组件包中提供了用于求解最小二乘法、函数最小值、函数最大值、线性规划、非线性最优化等函数,简化了在VB中进行复杂数学优化问题的求解过程。