◎林彬 王正鋒
基于差分進化算法求解非線性方程組
◎林彬 王正鋒
非線性方程組在現(xiàn)實生活中的應(yīng)用非常廣泛,特別是在工程學、計算機科學、信號與信號處理、通信及航空等學科和領(lǐng)域內(nèi)經(jīng)常遇到,許多實際問題都需要轉(zhuǎn)化為方程或方程組后才能求解。然而,一些傳統(tǒng)的方法已不能很好地解決這類問題。近年來,一種新穎的方法即差分進化算法在各種算法中脫穎而出。和傳統(tǒng)算法相比,它具有實現(xiàn)簡單,穩(wěn)定性較強,求得近似解快等優(yōu)點,在非線性函數(shù)的優(yōu)化問題中得到了廣泛應(yīng)用。本文主要運用差分進化算法來求解非線性方程組,通過仿真體現(xiàn)了差分進化算法在求解非線性方程組時的高效性和通用性。
方程求根問題一直以來都是一個具有重要實踐意義的問題。在科學技術(shù)和工程應(yīng)用等領(lǐng)域中涉及的一些問題,通常需要先轉(zhuǎn)化為方程或方程組的求根問題,然后再進行求解。其中,非線性方程組的求解是比較常見的一類問題,因而其求解方法一直以來都是數(shù)學和工程應(yīng)用中的重要研究內(nèi)容。
近十幾年來,國內(nèi)外的許多專家學者對非線性方程組的求解問題作了大量的研究,提出了許多行之有效的方法,常用的有牛頓法、迭代法、梯度法和共軛方向法等。但這些方法對方程組的要求較高,在求解一些相對復(fù)雜的方程組時還存在著一些缺陷。近年來,進化算法被廣泛應(yīng)用于優(yōu)化問題的求解中。由于差分進化算法在求解非凸、多峰以及非線性函數(shù)等的優(yōu)化問題上表現(xiàn)出顯著的穩(wěn)定性,在同樣精度的要求下,差分進化算法的收斂速度更快,因而在求解優(yōu)化問題及其他領(lǐng)域中得到了廣泛的應(yīng)用。
差分進化算法 (DE) 是最近幾年流行的、比較新穎的一種進化算法,又稱為差異演化算法、微分進化算法、微分演化算法、差分演化算法等,它是由Storn等人于1996年為求解切比雪夫多項式而提出的。該算法是對生物進化進行模擬的一種隨機模型,通過一次一次的迭代,使得適應(yīng)環(huán)境的那些個體被保留了下來。
算法的基本思想及特點。DE的基本思想是從一個隨機生成的初始群體開始,從中隨機選取兩個個體,將其差向量作為第三個個體的隨機變化源,再對差向量進行加權(quán),然后按照特定的規(guī)則和第三個個體相加,從而產(chǎn)生變異個體,該過程稱為變異;然后,將變異個體與某個預(yù)先決定的目標個體進行參數(shù)混合,從而產(chǎn)生新的實驗個體,該過程稱為交叉;如果新的實驗個體的適應(yīng)度值比目標個體的適應(yīng)度值要好,則在下一代實驗個體中選取新的目標個體來替換原有的目標個體,否則保留下當前的目標個體,該過程稱為選擇。在每一代的進化過程中,每一個個體只能作一次目標個體,DE算法通過反復(fù)地迭代計算,淘汰劣質(zhì)個體,保留優(yōu)良個體,使得搜索結(jié)果向全局最優(yōu)解逼近。
DE算法是一種基于實數(shù)編碼的,用于優(yōu)化函數(shù)最小值的進化算法,變異是DE的主要操作。算法根據(jù)種群中個體間的差異向量來進行變異,從而達到修正各個體的值的目的。并且,DE采取基于種群的全局搜索策略,使遺傳操作簡單化。同時,DE會根據(jù)當前的搜索情況動態(tài)調(diào)整搜索策略,使得全局收斂能力較強,而且不需要借助問題的特征信息,因此適用于求解一些常規(guī)數(shù)學規(guī)劃方法不能求解的復(fù)雜環(huán)境下的優(yōu)化問題。
由方程組的收斂圖可以看出,差分進化算法的收斂速度極快,能夠快速的得到近似解。
本文運用差分進化算法對非線性方程組其進行求解,并將求解的結(jié)果與用擬牛頓法、粒子群優(yōu)化算法求解的結(jié)果進行了對比。實驗證明,差分進化算法更適用于求解一般型的非線性方程組及其同類型的實際問題,而且計算效果良好,簡單可行,精度高。
(作者單位:桂林理工大學 理學院)
廣西自然科學基金項目(2015GXNSFBA139005)資助; 2014年桂林理工大學應(yīng)用數(shù)學重點學科立項資助