雍龍泉,賈 偉
(1.陜西理工大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院, 陜西 漢中 723001;2.陜西省工業(yè)自動(dòng)化重點(diǎn)實(shí)驗(yàn)室, 陜西 漢中 723001)
(1)
記向量x=(x1,x2,…,xn),向量函數(shù)F(x)=(f1(x),f2(x),…,fn(x))T,則方程組(1)等價(jià)于F(x)=0。求解非線性方程組的常見(jiàn)方法是牛頓法以及各類改進(jìn)的牛頓法[1-11]。近年來(lái),相繼出現(xiàn)了五階牛頓法[12-16]、七階牛頓法[17-19]、八階牛頓法[20-21]、九階牛頓法等[22-23]。當(dāng)然,收斂階數(shù)越高,(從xn到xn+1每迭代一次的)計(jì)算量也就越大。因此,在構(gòu)造高階牛頓迭代法求解非線性方程時(shí),既需要考慮收斂階,更需要考慮計(jì)算效率[24]。牛頓型算法依賴于初始點(diǎn)的選取和函數(shù) 的性態(tài),事實(shí)上初始點(diǎn)的選取本身也是一個(gè)比較困難的問(wèn)題;牛頓型算法在實(shí)際計(jì)算過(guò)程中,若其雅克比矩陣存在奇異點(diǎn),即det(F’(x))=0有解,則不能直接應(yīng)用牛頓型算法。
本文假設(shè)問(wèn)題(1)的解存在,建立了求解非線性方程組的梯度下降神經(jīng)網(wǎng)絡(luò),通過(guò)求解唯一解、多個(gè)解的非線性方程組,結(jié)果表明該方法不依賴初始點(diǎn)。鑒于該方法無(wú)需考慮F(x)的雅克比矩陣,因此對(duì)雅克比矩陣存在奇異點(diǎn)的非線性方程組也適用,且該方法通過(guò)改變初始點(diǎn),能找到多個(gè)解。
為了避免計(jì)算F(x)的雅克比矩陣,定義函數(shù)
(2)
稱E(x)為能量函數(shù)。于是,求解非線性方程組就轉(zhuǎn)化為求解連續(xù)可微的優(yōu)化問(wèn)題min E(x)。
梯度神經(jīng)網(wǎng)絡(luò)是基于求解問(wèn)題(2)的最速下降模型的連續(xù)化形式,近年來(lái)已廣泛應(yīng)用于求解非線性互補(bǔ)、二階錐規(guī)劃等問(wèn)題[25-29]。梯度下降神經(jīng)網(wǎng)絡(luò)模型如下:
(3)
參數(shù)τ表示梯度下降算法的步長(zhǎng),E(x)表示能量函數(shù)E(x)的梯度。該神經(jīng)網(wǎng)絡(luò)的收斂性證明詳見(jiàn)文獻(xiàn)[30-31]。下面來(lái)計(jì)算一些常見(jiàn)的非線性方程組,以驗(yàn)證算法的有效性。
給出4個(gè)非線性方程組問(wèn)題(前3個(gè)具有唯一解,第4個(gè)具有2個(gè)解),通過(guò)將其轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)(3),采用四階Runge-Kutta法求解微分方程組,程序采用Matlab R2009a(內(nèi)置函數(shù)ode45)編寫(xiě)。設(shè)置E(x)≤1×10-10為終止條件。
問(wèn)題3的初始點(diǎn)取為x(0)=1×rand(n,1),這里rand表示0~1之間的隨機(jī)數(shù);其余問(wèn)題的初始點(diǎn)取為x(0)=1×rand(n,1)-1×rand(n,1),即初始點(diǎn)在任一象(卦)限隨機(jī)選取,這對(duì)于具有多個(gè)解的非線性方程組,(多次運(yùn)行)就有可能找到盡可能多的解。
算例1 考慮非線性方程組
其解為x*=(0,0)T。表1給出了參數(shù)τ取不同值的計(jì)算結(jié)果;圖1和圖2分別給出了τ=10時(shí)近似解隨時(shí)間的變化(軌線)及能量函數(shù)隨時(shí)間的變化曲線。
圖1 近似解隨時(shí)間的變化曲線
圖2 能量函數(shù)隨時(shí)間的變化曲線
算例2 非線性方程組
其解為x*=(0.068978,0.246442,0.076929)T。表1給出了參數(shù)τ取不同值的計(jì)算結(jié)果;圖3和圖4分別給出了τ=10時(shí)近似解隨時(shí)間的變化(軌線)及能量函數(shù)隨時(shí)間的變化曲線。
圖3 近似解隨時(shí)間的變化曲線
圖4 能量函數(shù)隨時(shí)間的變化曲線
算例3 考慮非線性方程組
其解為x*=(0,0,0,0)T。該方程雖形式簡(jiǎn)單(第1個(gè)方程僅反映了x1與x2的關(guān)系,第2個(gè)方程僅反映了x1與x3的關(guān)系,第3個(gè)方程僅反映了x2與x3的關(guān)系,第4個(gè)方程僅反映了x1與x4的關(guān)系,變量之間的相互關(guān)聯(lián)性較弱),但是求出精確解卻不易。計(jì)算可得雅克比矩陣為
圖5 近似解隨時(shí)間的變化曲線
圖6 能量函數(shù)隨時(shí)間的變化曲線
表1 參數(shù)τ取不同值的計(jì)算結(jié)果
算例4 考慮非線性方程組
其解為x*=(3,0.5)T及x*=(81/32,-1/3)T,計(jì)算可得雅克比矩陣為
雅克比矩陣的奇異點(diǎn)分布在四條直線x1=0,x2=1,x2=0,x2=-2上。這里雅克比矩陣存在奇異點(diǎn),故牛頓法不再適用。采用梯度下降神經(jīng)網(wǎng)絡(luò)求解,圖7和圖8分別給出了τ=10時(shí),初始點(diǎn)在不同象限時(shí)的近似解隨時(shí)間的變化曲線及能量函數(shù)隨時(shí)間的變化曲線。
本文計(jì)算過(guò)程表明:針對(duì)唯一解的非線性方程組,該方法能夠收斂到其唯一解;針對(duì)具有多個(gè)解的非線性方程組,該方法能夠找到盡可能多的解;且該算法無(wú)需考慮其雅克比矩陣,因此對(duì)雅克比矩陣是否存在奇異點(diǎn)都適用。由于線性兩點(diǎn)邊值問(wèn)題離散化后得到線性方程組,非線性兩點(diǎn)邊值問(wèn)題離散化后所得到的非線性方程組[32-34],下一步可以利用上面方法求解非線性兩點(diǎn)邊值問(wèn)題。
(a) 近似解隨時(shí)間的變化曲線