粒子群算法在曲线拟合中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

粒子群算法在曲线拟合中的应用

摘要:分析了粒子群算法在曲线拟合中的应用,同时对个别不理想的实验数据进行了淘汰,能进行有效的数据处理。通过具体实例表明该方法实现简单,易于理解,并且还具有很高的可靠性;分析了该算法与最小二乘法的优缺点,证实该算法是曲线拟合的一种有效方法。

关键词:粒子群算法;曲线拟合

曲线拟合是用连续曲线近似地刻画或比拟平面上离散点组函数关系的一种数据处理方法。传统的曲线拟合方法是用解析表达式逼近离散数据。随着近几年智能计算等一些非线性理论的发展,曲线拟合已不再局限于解析表达式的拟合理论之内,将非线性理论用于曲线拟合,使传统的方法得到了发展与改进。

在科学研究中,人们经常要进行数据处理,而在处理数据中,人们的兴趣往往不是单个数据,而是全部数据的变化趋势,也就是与数据的背景资料规律相适应的解析表达式约束的曲线拟合。例如,我们通过对静态吸附实验数据的简单换算得到如表1所示一组数据的。

表1静态吸附实验数据yi(lnk) 2.422.182.051.821.571.430.93 xi(1T)0.002 00.002 20.002 40.002 60.002 80.003 00.003 2在理论上,应得到斜率为m,截距为b的一条线性方程:lnk=m(1/T)+b

(1)以往一般通过手工作图求斜率和截距,但这种方法即不准确也不科学,后来随着科学技术的发展人们逐渐采用最小二乘法和单纯行法来求解,则所求斜率和截距能避免手工作图造成的误差,可信度更高。但是这两种方法也有其不足之处,例如在用最小二乘法在求解相应问题时,需要求解问题函数的导数。而在实际问题中,有时候由于问题函数过于复杂,一般很难具体表达其导数,从而影响了最小二乘法在实际中的应用。而单纯形法虽然没有最小二乘法的缺点但是由于其计算量大,导致在解决大规模问题时效果并不是非常显著。本文应用粒子群算法来解决这类曲线拟合的一些问题。1粒子群算法

粒子群算法就是对一个CAS(Complex Adaptive System )系统——鸟群社会系统的研究得出的,粒子群优化算法(Particle Swarm Optimization)最早是在1995年由美国社会心理学家James Kennedy和电气工程师Russell Eberhart共同提出的,其基本思想是受他们早期对许多鸟类的群体行为进行建模与仿真研究结果的启发。在仿真中,采用了下列3条简单的规则:①飞离最近的个体,以避免碰撞;②飞向目标;③飞向群体的中心。

粒子群算法与其他进化类算法相类似,也采用群体与进化的概念,同样也是依据个体(粒子)的适应度来进行操作。所不同的是粒子群算法不像其他的进化算法那样对于个体使用进化算子,而是将每个个体看作是在n维搜索空间中的一个没有重量和体积的粒子,并在搜索空间中以一定的速度飞行。其中飞行速度

由个体的飞行经验和群体的飞行经验共同进行动态调整。

我们可以假设这样的一个场景:一群鸟在随机的搜索食物。在这个区域中只有一块食物,并且所有的鸟都不知道食物在那里,但是他们知道当前那只鸟距离食物最近,所以找到食物的最简单有效的策略应该是搜索目前距离食物最近的鸟的周围区域。所以基本粒子群算法的进化方程可以描述为:Vij(t+1)=wvij(t)+c1r1j(t)

-xij(t)+c2r2j(t)pgj(t)-xij(t) (2)

xij(t+1)=xij(t)+vij(t+1) (3)其中:下标j表示粒子的第j维,i表示第i个粒子,t表示第t代,w表示惯性权重,c1、c2为加速常数,通常在0和2之间取值,r1、r2为0和1之间的两个相互独立的随机数,cij表示相应粒子的当前飞行速率,pij 表示相应粒子的历史最佳位置,xij表示相应粒子的当前位置,pgj表示所有粒子所经历的最好位置。

从上述粒子群进化方程公式(2)可以看出,c1调节粒子飞向自身最好位置方向的步长,c2调节粒子飞向全局最好位置方向的步长。经典的粒子群优化算法的流程如图1所示。

2曲线拟合

在科学实验中,一般能够获得x与y的一组数据对(xI,ri)(i=1,2,…,n),其中各个x1是彼此不相同的,而我们希望由此得到与该组数据对相适应的解析表达式y=f(x,c)来反映x与y之间的相互依赖关系,其中c=(c1,c2,…,cm)为待定参数。由于实

验条件的限制或者其他客观因素的影响导致每次实验数据与理论值存在着一定程度的误差,为了尽量减少这些误差对实验结果的影响,一般采用曲线拟合的方法。

假设t实验(即i)为实验数据,r理论为理论数据(即根据实验条件给定的参数xi计算得到的数据),目标函数F为所有相应数据的误差之和,如式(4)所示。F=∑(y理论-y实验)2 (4)当F的值达到最小时,实验数据r实验与理论数据y理论之间的误差之和最小,得到的回归参数值c1,c2,…,cm也是最理想的,但是由于操作失误或者其他原因可能导致个别实验的数据严重偏离绝大部分实验数据的变化趋势,因此需要在曲线拟合时,合理的处理这些不符合变化趋势的数据。

本文利用粒子群优化算法来对实验结果进行曲线拟合,同时在拟合过程中不考虑不符合整体变化趋势的个别实验数据,整个流程如图2所示。

图1粒子群算法的流程图2曲线拟合的流程

在流程图中,在进行曲线拟合中同时对实验数据经行检测,若发现实验数据与理论数据偏差太大,则将该实验数据在曲线拟合时不考虑。

3实验

通过对静态吸附实验数据的简单换算得到如表1所示的一组数据。在理论上,应得到斜率为m,截距为b的一条线性方程,但是由于每次实验数据与理论值存在着一定程度的误差,为了尽

量使斜率m和截距b与客观值相符合,我们可以通过粒子群算法来拟合这条线性方程,即使式(5)中的值达到最小。F=∑((mxi+b)-yi)2 (5)也就是使拟合的线性方程与理论的线性方程尽可能的相近,可以将(5)式看作是关于变量m和b的一个函数。同时也就将原来的曲线拟合问题转化为在一定的区间内求出使F达到最小时的变量和的值的问题。

在Matlab上根据上述方法通过编程可以得到如表2和图3所示的结果,并且处理后的数据不考虑最后一组数据,由图3可以看出其严重偏离整体数据的变化趋势。

表2静态吸附实验结果表yi(lnk) 2.422.182.051.821.571.430.93 xi(1/T) 0.002 00.002 20.002 40.002 60.002 80.003 00.003 2图3在Matlab上运行得到的结果

4结束语

粒子群算法的特点是分散式搜寻(每一个体(称为一个粒子) 都被赋予了一个随机速度并在整个问题空间中移动)、具有记忆性、参数少,易于调整实现,并且个体的进化主要是通过个体之间的合作实现的。其优点是简单容易实现,没有许多参数需要调整,PSO 可用于求解大量非线性、不可微和多峰值的复杂优化问题,收敛速度快。但也存在着一定的缺陷,即局部最优性问题,精度不高,容易产生早熟收敛(尤其是在处理复杂的多峰搜索问题中)、局部寻优能力较差等。

本文采用粒子群优化的方法既可以进行曲线拟合,同时也可

相关文档
最新文档