利用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 待拟合原始数据
C | 1.60 | 4.52 | 6.80 | 8.16 | 11.5 | 12.7 | 18.2 | 29.0 | 38.9 | 57.3 |
q | 170.7 | 228.1 | 258.0 | 283.7 | 321.3 | 335.4 | 378.6 | 434.6 | 401.3 | 429.0 |
vba编程技巧 |
应用非线性最小二乘法估计下式中的参数:
q=bC/(1+aCβ)
显然这个非线性函数是无法直接将它线性化的,必须进行非线性拟合求解。根据经验将初始参数指定为:a=0.3,b=100,β=0.8。表2为在Excel中进行求解的数据准备情况。
表2 数据准备
因变量 | 自变量 | 因变量的估计值 | 误差平方 |
170.7 | 1.6 | 111.3480808 | 3522.650312 |
228.1 | 4.52 | 225.6794429 | 5.859096867 |
258 | 6.8 | 284.4755518 | 700.9548418 |
283.7 | 8.16 | 312.8002249 | 846.8230885 |
321.3 | 11.5 | 368.9683455 | 2272.271162 |
335.4 | 12.7 | 385.8148781 | 2541.659938 |
378.6 | 18.2 | 448.6984753 | 4913.796239 |
434.6 | 29 | 533.4322704 | 9767.817679 |
401.3 | 38.9 | 588.3664879 | 34993.87089 |
429 | 57.3 | 662.4499807 | 54498.8935 |
误差平方和->114064.5968 | |||
表格从左到右各列分别为:因变量的原始数据、自变量的原始数据、根据参数计算的估计因变量数据、单个样本点的误差平方。将待定参数的初始值填写存储在准备用于计算的单元格区域F1:F3,并使单元格F4的数值等于由误差平方累计的误差平方和数值。
设定规划求解对话框使目标单元为误差平方和数值对应的单元格F4,并设目标为求极小值,设定可变单元为待定参数数值对应的3个单元格(F1:F3),约束条件为空。经过计算可得对应的3个参数分别为:a=0.654,b=185.100,β=0.878。此时对应的因变量估计值以及误差数据如表3。图1为数据点和拟合线的对照。
图1 数据点和拟合线对照
表3 计算结果
因变量 | 自变量 | 因变量的估计值 | 误差平方 |
170.7 | 1.6 | 148.9687391 | 472.2476993 |
228.1 | 4.52 | 241.8820534 | 189.9449969 |
258 | 6.8 | 278.5091076 | 420.6234954 |
283.7 | 8.16 | 294.4132802 | 114.7743716 |
321.3 | 11.5 | 323.4022001 | 4.419245341 |
335.4 | 12.7 | 331.5482153 | 14.83624515 |
378.6 | 18.2 | 360.1970036 | 338.6702774 |
434.6 | 29 | 395.4709483 | 1531.082687 |
401.3 | 38.9 | 416.8885563 | 243.003089 |
429 | 57.3 | 444.4917783 | 239.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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论