微型机与应用
WEIXINGJI YU YINGYONG
2000　Vol.19　No.5　P.16-17




利用Excel软件进行非线性拟合的非编程方法
余亮
摘 要：一种在Excel软件中进行非线性拟合的方法，并通过实例说明了该方法的有效性和实用性。
关键词：数据分析 非线性曲线拟合 非线性规划
　　曲线拟合是数据分析和数据处理的重要工作之一。在利用数据对系统的物理和化学现象进行深入研究时，往往需要利用机理数学模型和试验数据拟合。另外由于机理数学模型是在一定的物理化学理论基础上建立的，所以各个参数以及不同数据的性质也是各不相同的。因此在进行数据分析的时候，不同的数据往往需要根据它在模型中的地位和特性进行特殊的处理。
　　微软公司Office套件中的Excel已经成为许多场合下的数据台帐工具。作为一种标准的数据记录和管理工具，它具有大多数数据分析时所需的基本工具，包括图形和线性回归等。为了能够利用Excel进行更多的数据分析工作，一些人提出了利用其内嵌BASIC（VBA）进行编程处理的方法。但是由于要求进行程序编制，所以并不是一般工程技术人员可以容易掌握的一种途径。
　　对于非线性拟合这个特殊的问题，经过适当转换，可以将它转换为一个非线性规则问题，从而利用Excel附属的规划求解工具能很容易地进行处理。
1 拟合和规划的等价关系及Excel中的规划求解工具
　　（1）拟合问题的数学表示
　　不失一般性，以最小二乘法为例，拟合问题的数学表示如下：
　　有数据x和y各为以列向量，假定它们具有关系y＝f（x，a，b），其中：a为已知常数共n个、b为待定参数共m个。
　　定义最小二乘误差为：

　　问题为：求b使得E为最小。
　　（2）规划问题的数学表示目标函数：f（b0）
　　限制条件：G（b0）＜0
　　其中：b0为待定参数。
　　不失一般性，假定需要得到目标函数的最小值。
　　问题为：在满足限制条件的前提下求解目标函数的最小值以及相应的参数b0。
　　（3）拟合与规划之间的等价关系
　　显然，令拟合问题中的待定参数b为规划问题中的参数b0，令拟合问题中的最小二乘误差函数E为规划问题中的目标函数，令规划问题中的限制条件为空，则求解该规划问题就可以得到拟合问题的解。显然，因为拟合问题中的E函数为非线性函数，在这里需要规划问题也是一个非线性规划问题。
　　（4）Excel中的规划求解工具
　　当安装Office套件选择了规划求解工具时，在软件菜单的工具菜单中会出现规划求解项目，选中该项目，填写对话框以后，工具会根据对话框中的定义自动进行规划求解。
　　Microsoft Excel的“规划求解”取自德克萨斯大学奥斯汀分校的Leon Lasdon和克里夫兰州立大学的Allan Waren共同开发的Generalized Reduced Gradient（GRG2）非线性最优化代码。线性和整数规划取自Frontline Systems公司的John Watson和Dan Fylstra提供的有界变量单纯形法和分支边界法。Microsoft Excel Solver程序代码是以宏的方式提供调用的。使用时不需要关心其具体的实现方法，只需要和它的对话框进行交互就可以了。
2 一个实例
　　下面是液相吸附平衡式的实例。
　　往DBS水溶液中投入活性炭，在等温下放置到达吸附平衡．DBS的平衡浓度C与投入活性炭的吸附量q之间的关系列于表1中。
表1　待拟合原始数据
C1.604.526.808.1611.512.718.229.038.957.3
q170.7228.1258.0283.7321.3335.4378.6434.6401.3429.0

　　应用非线性最小二乘法估计下式中的参数：
q＝bC／（1＋aCβ）
　　显然这个非线性函数是无法直接将它线性化的，必须进行非线性拟合求解。根据经验将初始参数指定为：a＝0．3，b＝100，β＝0．8。表2为在Excel中进行求解的数据准备情况。
表2　数据准备
因变量自变量因变量的估计值误差平方
170.71.6111.34808083522.650312
228.14.52225.67944295.859096867
2586.8284.4755518700.9548418
283.78.16312.8002249846.8230885
321.311.5368.96834552272.271162
335.412.7385.81487812541.659938
378.618.2448.69847534913.796239
434.629533.43227049767.817679
401.338.9588.366487934993.87089
42957.3662.449980754498.8935
误差平方和->114064.5968

　　表格从左到右各列分别为：因变量的原始数据、自变量的原始数据、根据参数计算的估计因变量数据、单个样本点的误差平方。将待定参数的初始值填写存储在准备用于计算的单元格区域F1：F3，并使单元格F4的数值等于由误差平方累计的误差平方和数值。
　　设定规划求解对话框使目标单元为误差平方和数值对应的单元格F4，并设目标为求极小值，设定可变单元为待定参数数值对应的3个单元格（F1：F3），约束条件为空。经过计算可得对应的3个参数分别为：a＝0．654，b＝185．100，β＝0．878。此时对应的因变量估计值以及误差数据如表3。图1为数据点和拟合线的对照。

图1　数据点和拟合线对照
表3 计算结果
因变量自变量因变量的估计值误差平方
170.71.6148.9687391472.2476993
228.14.52241.8820534189.9449969
2586.8278.5091076420.6234954
283.78.16294.4132802114.7743716
321.311.5323.40220014.419245341
335.412.7331.548215314.83624515
378.618.2360.1970036338.6702774
434.629395.47094831531.082687
401.338.9416.8885563243.003089
42957.3444.4917783239.9951964
误差平方和->114064.5968

3 方法讨论和结论
　　从以上实例可以看出，在求解过程中没有使用任何程序的概念。求解过程准备阶段的工作为Excel表格的公式计算，求解过程中人工操作的仅仅是对话框填充。所以本方法在使用上是非常简便的。
　　由于问题的定义对使用者透明，所以使用者能很方便地根据实际要求进行修正。比如根据已知参数的物理化学意义设定参数的变化范围（利用规划问题的约束条件）；或者指定某参数为整数（利用规划求解中的整数规划或者混合规划求解器）。
　　另外，由于问题的定义是直接在Excel表上构造的，所以可以方便地改变问题的构造方法，从而引入其它的拟合计算方法。比如在表格的误差列中，将原来的计算方法由误差平方更改为误差和原值的比值，则可以按照相对误差的最小重新求得参数的估计值。这种改变对于数值变化范围比较大的情况具有很实用的意义，而在求解时则只需要像书写公式一样更改表格中的计算公式，没有增加任何多余的操作。
余亮（安徽华东冶金学院计算机科学系243002）
参考文献
［1］张治文，何磊．中文Excel 7．0 for Windows 95教程．北 京：科学出版社，1997
［2］朱中南，戴迎春．化工数据处理与实验设计．烃加工出版 社，1989
［3］邓乃洋．无约束最优化方法．北京：科学出版社，1982
［4］Jonathan，Bard．Nonlinear Parameter Estimation．New York：Academic Press，1974
收稿日期：1999－12－20
