◎林彬 王正锋
基于差分进化算法求解非线性方程组
◎林彬 王正锋
非线性方程组在现实生活中的应用非常广泛,特别是在工程学、计算机科学、信号与信号处理、通信及航空等学科和领域内经常遇到,许多实际问题都需要转化为方程或方程组后才能求解。然而,一些传统的方法已不能很好地解决这类问题。近年来,一种新颖的方法即差分进化算法在各种算法中脱颖而出。和传统算法相比,它具有实现简单,稳定性较强,求得近似解快等优点,在非线性函数的优化问题中得到了广泛应用。本文主要运用差分进化算法来求解非线性方程组,通过仿真体现了差分进化算法在求解非线性方程组时的高效性和通用性。
方程求根问题一直以来都是一个具有重要实践意义的问题。在科学技术和工程应用等领域中涉及的一些问题,通常需要先转化为方程或方程组的求根问题,然后再进行求解。其中,非线性方程组的求解是比较常见的一类问题,因而其求解方法一直以来都是数学和工程应用中的重要研究内容。
近十几年来,国内外的许多专家学者对非线性方程组的求解问题作了大量的研究,提出了许多行之有效的方法,常用的有牛顿法、迭代法、梯度法和共轭方向法等。但这些方法对方程组的要求较高,在求解一些相对复杂的方程组时还存在着一些缺陷。近年来,进化算法被广泛应用于优化问题的求解中。由于差分进化算法在求解非凸、多峰以及非线性函数等的优化问题上表现出显著的稳定性,在同样精度的要求下,差分进化算法的收敛速度更快,因而在求解优化问题及其他领域中得到了广泛的应用。
差分进化算法 (DE) 是最近几年流行的、比较新颖的一种进化算法,又称为差异演化算法、微分进化算法、微分演化算法、差分演化算法等,它是由Storn等人于1996年为求解切比雪夫多项式而提出的。该算法是对生物进化进行模拟的一种随机模型,通过一次一次的迭代,使得适应环境的那些个体被保留了下来。
算法的基本思想及特点。DE的基本思想是从一个随机生成的初始群体开始,从中随机选取两个个体,将其差向量作为第三个个体的随机变化源,再对差向量进行加权,然后按照特定的规则和第三个个体相加,从而产生变异个体,该过程称为变异;然后,将变异个体与某个预先决定的目标个体进行参数混合,从而产生新的实验个体,该过程称为交叉;如果新的实验个体的适应度值比目标个体的适应度值要好,则在下一代实验个体中选取新的目标个体来替换原有的目标个体,否则保留下当前的目标个体,该过程称为选择。在每一代的进化过程中,每一个个体只能作一次目标个体,DE算法通过反复地迭代计算,淘汰劣质个体,保留优良个体,使得搜索结果向全局最优解逼近。
DE算法是一种基于实数编码的,用于优化函数最小值的进化算法,变异是DE的主要操作。算法根据种群中个体间的差异向量来进行变异,从而达到修正各个体的值的目的。并且,DE采取基于种群的全局搜索策略,使遗传操作简单化。同时,DE会根据当前的搜索情况动态调整搜索策略,使得全局收敛能力较强,而且不需要借助问题的特征信息,因此适用于求解一些常规数学规划方法不能求解的复杂环境下的优化问题。
由方程组的收敛图可以看出,差分进化算法的收敛速度极快,能够快速的得到近似解。
本文运用差分进化算法对非线性方程组其进行求解,并将求解的结果与用拟牛顿法、粒子群优化算法求解的结果进行了对比。实验证明,差分进化算法更适用于求解一般型的非线性方程组及其同类型的实际问题,而且计算效果良好,简单可行,精度高。
(作者单位:桂林理工大学 理学院)
广西自然科学基金项目(2015GXNSFBA139005)资助; 2014年桂林理工大学应用数学重点学科立项资助