非线性方程组的求解(汇编)
- 格式:doc
- 大小:177.00 KB
- 文档页数:10
非线性方程组的求解方法及其应用非线性方程组是数学中一类非常重要的问题,其中每个方程都不是线性的。
与线性方程组不同,非线性方程组的求解通常需要借助于数值方法。
本文将讨论一些常见的非线性方程组求解方法,并介绍它们在实际应用中的一些应用。
1. 牛顿法牛顿法是一种非常常见的非线性方程组求解方法。
该方法基于牛顿迭代法原理,将非线性方程组转化为一系列的线性问题。
牛顿法的基本思想是:通过不断地使用一阶导数和二阶导数的信息来逼近方程组的解。
具体地说,在每一轮迭代中,求解一个方程组:$$F(x^{k})+J(x^{k})\Delta x^{k} =0$$其中$F(x)$表示非线性方程组,$x^k$表示第$k$轮迭代的解,$J(x^k)$表示$F(x)$在$x^k$处的雅可比矩阵,$\Delta x^k$表示下降方向,满足$\|\Delta x^k\|\rightarrow 0$。
值得注意的是,牛顿法在每轮迭代中都需要求解一次雅可比矩阵,这需要大量的计算资源。
因此,在实际应用中,牛顿法通常只适用于相对较小的方程组。
2. 信赖域方法相比于牛顿法,信赖域方法更具有通用性。
信赖域方法的基本思想是:在每轮迭代中,通过构造二次模型来逼近目标函数,并在一个信赖域内搜索下降方向。
具体地说,我们在每轮迭代中将非线性方程组$F(x)$在$x^k$处转化为二次模型:$$m_k(\Delta x)=F(x^k)+\nabla F(x^k)^\top \Deltax+\frac{1}{2}\Delta x^\top B_k\Delta x$$其中,$\nabla F(x^k)$是$F(x)$在$x^k$处的梯度,$B_k$是二阶导数信息。
在这里我们假设$B_k$为正定矩阵。
显然,我们希望在$m_k(\Delta x)$的取值范围内找到一个适当的$\Delta x$,使得$m_k(\Delta x)$最小。
因此,我们需要设定一个信赖域半径$\Delta_k$,并在$B_k$所定义的椭圆范围内查找最优的$\Delta x$。
非线性方程组的解法
非线性方程组的解法包括:
(1)近似法。
近似法是根据所给非线性方程组,使用一定的数值方法,建立非线性方程组结果的拟合曲线,以此求解非线性方程组的常用方法,目前有贝塔、拉格朗日近似法和微分近似法等。
(2)多元分割法。
多元分割法根据非线性方程组的参数和变量空间,
将整个运算范围分割成多余小区间,利用各区间中只含有一个未知变
量的简单方程组,将非线性方程组转换成多个一元方程组,再用一次法、弦截法和二分法等算法求解,最终得出整个非线性方程组的解。
(3)迭代映射法。
迭代映射法是通过给定一个初始值,然后利用迭代,反复运算,最终达到收敛点的一种方法,主要包括牛顿法、收敛法、
弦截法、松弛法和隐函数法等。
(4)最小二乘法。
最小二乘法是将非线性方程组表示为残差函数,然
后求解残差函数最小值,获得未知变量的最优解,常用于数值分析中。
(5)特征法。
特征法是采用将非线性方程组表示为线性方程组特征值
和它们关于某一特征量的关系式,利用梯度下降法,最小化残差函数,求解非线性方程组的方法。
以上是非线性方程组的解法的简单综述,它们在一定程度上增加了解决非线性方程组的效率,但并非所有情况都能使用以上求解方法。
正确使用相应的求解方法就可以有效的求解非线性方程组,以便更好的解决实际问题。
在科学与工程计算中,经常遇到求解非线性方程组的问题;非线性方程组在收敛速度及收敛性比线性方程组要差,特别对于非凸的非线性方程组,其求解更是困难。
下面简要介绍非线性方程组的三种解法——牛顿法、拟牛顿法、同伦算法,分析三种解法的适用性,并附Matlab 原程序。
(一)、牛顿迭代法迭代公式为:x k+1=x k-f(x k)/f'(x k);牛顿迭代法是解非线性方程组比较经典的方法,在局部收敛点附近是平方收敛的;但其解依赖于初始解,且迭代每一步都要计算f'(x k),不仅计算量大而且有时会发生计算困难。
(二)、拟牛顿迭代法拟牛顿法是为了解决求Jacobi矩阵时带来的困难,现已成为解决非线性方程组和最优化问题的最有效方法之一。
其迭代格式为:x(k+1)=x(k)-A k-1F(x(k))A k+1=A k+[(y k-A k s k)(y k-A k s k)T]/[(y k-A k s k)T s k]在一定条件下,计算H的序列是超收敛的,但稳定性较差,有时迭代效果不理想。
(三)、同伦算法同伦算法基本思想是从容易求解的方程组开始,逐步过渡到原方程组的求解,从而得到问题的解。
非线性方程组为:F(x)=0,其解为X*。
构造泛函 G:[0,1]XR n->R nG定义为:G(λ,x)=λ F(x)+(1-λ)[F(x)-F(x(0))]=F(x)+(λ-1)F(x(0))(其中:x(0)为任意给的初值,假定为λ函数(λ=0))对于λ的方程G(λ,x)=0,当λ=0时,0=G(0,x)=F(x)-F(x(0));x(0)是方程的解;当λ=1时,0=G(1,x)=F(x);x*是方程的解,即x(1)=x*基于这个思想我们最后可以得到如下关系式:x'(λ)=-[J(x(λ))]-1F(x(0)) ( 0<=λ<=1,对初始值x(0) )J为雅可比矩阵,由上面的式子,对λ在[0,1]上积分,就可得到x*=x(1)上面的非线性方程组问题就转化为数值积分问题。
非线性方程组的求解摘要:非线性方程组求解是数学教学中,数值分析课程的一个重要组成部分,作为一门学科,其研究对象是非线性方程组。
求解非线性方程组主要有两种方法:一种是传统的数学方法,如牛顿法、梯度法、共轭方向法、混沌法、BFGS 法、单纯形法等。
传统数值方法的优点是计算精度高,缺点是对初始迭代值具有敏感性,同时传统数值方法还会遇到计算函数的导数和矩阵求逆的问题,对于某些导数不存在或是导数难求的方程,传统数值方法具有一定局限性。
另一种方法是进化算法,如遗传算法、粒子群算法、人工鱼群算法、差分进化算法等。
进化算法的优点是对函数本身没有要求,不需求导,计算速度快,但是精度不高。
关键字:非线性方程组、牛顿法、BFGS 法、记忆梯度法、Memetic 算法1: 三种牛顿法:Newton 法、简化Newton 法、修改的Newton 法【1-3】求解非线性方程组的Newton 法是一个最基本而且十分重要的方法, 目前使用的很多有效的迭代法都是以Newton 法为基础, 或由它派生而来。
n 个变量n 个方程的非线性方程组, 其一般形式如下:⎪⎪⎩⎪⎪⎨⎧===0),...,(...0),...,(0),...,(21212211n n n n x x x f x x x f x x x f (1)式(1)中,),...,(21n i x x x f ( i=1, ⋯, n) 是定义在n 维Euclid 空间Rn 中开域 D 上 的实值函数。
若用向量记号,令:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n x x x ...X 21,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡====)(...)()(0),...,(...0),..,(0)...,()(2121212,211X f X f X f x x x f x x x f x x x f X F nn n n n则方程组(1)也可表示为:0)(=X F(2) 其中:X ∈R n ,F ∶R n →R 0, F(X) ∈R n , R n 为赋值空间。
一般地, 若在包含的某邻域D 内, 按某种近似意义,用线性函数:k k k b X A +=)X (l (3)近似地代替向量值函数F(X),此处A k 是n 阶矩阵,则可将线性方程组:k k k b X A +=)X (l (4)的解作为非线性方程组( 2) 的近似解。
1.1 Newton 法[1]Newton 法的迭代公式为:,...2,1,0k )-F(X )X )((X F'X X X k k k k k 1k =⎩⎨⎧=∆∆+=+ (5)其中k 1k k X -X X +=∆.1.2 简化Newton 法[1]尽管Newton 法具有较高的收敛速度,但在每一步迭代中,要计算n 个函数值f ,以及n 2个导数值f ′形成Jacobi 矩阵)('k X f ,而且要求)('k X f 的逆阵或者解一个n 阶线性方程组,计算量很大。
为了减少计算量,在上述Newton 法中对一切k=0,1,2,...,取)('k X f 为.)('X f ,于是迭代公式修改为:[]...2,1,0),X ()X ('X X k 1k k 1k =-=-+k f f (6) 式( 5) 即为简化的Newton 法。
该方法能使计算量大为减少,但却大大降低了收敛速度。
简化的Newton 法的算法与Newton 法的算法区别就在于只由给定的初始近似值计算一次)('X f ,以后在每一次迭代过程中不再计算)('k X f ,保持初始计算值。
1.3 修正的Newton 法[2]吸取Newton 法收敛快与简化的Newton 法工作量省的优点,文献【2】把m 步简化的Newton 步合并成一次Newton 步。
则可以得到下列迭代程序:⎪⎭⎪⎬⎫=-==+--m ,k 1k 1j ,k 1k j ,k j k ,k k ,0X X )X (f )X ('f X X X X (7)式中: j=1, 2, ⋯, m, k=0, 1, 2, ⋯, 该式称为修正的Newton 法。
通过分析Newton 法、简化的Newton 法和修正Newton 法的原理, 并通过对算例的分析比较,我们可知: Newton 法(5)式具有较高的收敛速度,但计算量大,在每一步迭代中,要计算n 个函数值f ,以及n2个导数值f'形成Jacobi 矩阵)('k X f ,而且要求)('k X f 的逆阵或者解一个n 阶线性方程组;简化的Newton 法( 6) 式,它用迭代初值X 0来计算)('k X f ,并在每个迭代步中保持不变,它能使每步迭代过程的计算量大为减少,但大大降低了收敛速度。
修正Newton 法(7)与Newton 法(5)相比,在每步迭代过程中增加计算n 个函数值,并不增加求逆次数,然而收敛速度提高了。
2: BFGS 法【4-6】非线性方程组一般形式为:方程组(1)将其转化为一个全局优化问题。
构造能量函数:)()(n ni i x x x X X f X ,...,),(2112==Φ∑=求非线性方程组解的问题就转化为求解能量函数极小值的问题。
即给定一个充分小的实常数ε,搜索)(**2*1*,...,X n x x x =使得εφ<)(*X 则X *即是非线性方程组(1)对应的近似解。
2.1 BFGS 查分算法【4】文献【4】将传统的BFGS 算法和查分算法有机融合,用来求解非线性方程组,效果显著,可以较为广泛地应用于非线性方程组的求解。
BFGS 方法是由Broyden 、Fletcher 、Goldfarb 和Shanno 等人在1970年提出的。
它是一个拟牛顿方法,具有二次终止性、整体收敛性和超线性收敛性,且算法所产生的搜索方向是共轭的。
BFGS 方法是一个有效的局部算法,用来求解极小值的。
例如方程组⎪⎪⎩⎪⎪⎨⎧===nn n n n A x x x f A x x x f A x x x f ),...,(...),...,(),...,(2122121211 (8) 可将它够着适应度函数∑=-=n i i i A x f X F 1|)(|)( (9)那么求非线性方程组(8)的根问题就转化成了求适应度函数)(X F 最小值的优化问题。
这就是它最基本的思想。
DE 算法(差分进化算法)(文献【5】)具有良好的全局搜索能力,并具有对初始值、参数选择不敏感、鲁棒性强、原理简单、容易操作等优点,是一种较好的全局优化方法。
但在优化后期DE 算法的收敛速度明显变慢,而且搜索结果仅获得满意解域而不是精确解。
为了克服这些缺点,该文在DE 算法的进化后期阶段引入BFGS 方法,利用BFGS 方法的整体收敛性和超收敛性来加快收敛速度。
BFGS 方法属于局部算法,其优化结果的优劣在很大程度上取决于初始值的选取,为此可以利用具有全局搜索能力的DE 算法提供给BFGS 方法良好的初始值。
2.2 改进的BFGS 变尺度法【4】对于高维的大型问题(维数大于100),变尺度法由于收敛快、效果好,被认为是最好的优化方法之一。
其中BFGS 法的数值稳定性较好,是最成功的一种变尺度法。
BFGS 法中有2个非常关键的环节:求函数的偏导数和一维探索。
这2个环节的算法精度对最后结果的精度影响很大。
2.2.1 改进的遗传算法【7】遗传算法的优越性主要表现在:算法具有固有的并行性,通过对种群的遗传处理可处理大量的模式,并且容易并行实现。
(a) 选择复制操作采用保优操作与比例复制相结合, 即最优秀的个体被无条件保留下来,其余的以正比于个体适配值的概率来选择相应的个体。
(b) 交叉操作采用保优操作与算数交叉结合,即最优秀的个体被无条件保留下来,其余的以交叉概率进行算数交叉。
算数交叉的方式为:122211)1(,)1(X X X X X X αααα-+=-+= (10) 式中21,1,0X X );(∈α为父代个体;X 1,X 2为后代个体。
(c )变异操作采用保优操作与扰动变异结合,即最优秀的个体被无条件保留下来,其余的以变异概率进行扰动变异。
扰动变异的方式为ηξ+=X X '。
式中ξ为满足正态分布的随机扰动;η为尺度参数; X 为父代个体; X'为后代个体。
2.3 混合优化【7】改进的BFGS 方法是一种非常有效而且收敛速度很快的局部搜索算法,而改进的遗传算法实现并行搜索,有非常强的全局搜索的能力。
文献【7】将2种方法混合起来,实现了并行与串行,全局与局部的融合,极大地提高了优化性能、优化效率和鲁棒性.。
尤其对于高维复杂函数效果非常好。
混合法的步骤为:(1)给定算法参数,初始化种群。
(2)评价当前种群中各个体。
(3)判断算法收敛准则是否满足。
若满足则输出搜索结果,否则转(4)。
(4)执行改进的遗传算法的选择复制操作。
(5)执行改进的遗传算法的交叉操作。
(6)执行改进的遗传算法的变异操作。
(7)以当前种群中各个个体作为改进的BFGS 方法的初始解,分别用改进的BFGS 方法进行搜索得到新的个体,将这些新的个体组成新的种群,转(2)。
3: 记忆梯度法[8-10]考虑非线性方程组n R x x F ∈=,0)( , (11)其中n n R R F →:是非线性映射。
定义T n x F x F x F x F ))(),...(),(()(21=,其雅可比矩阵J(X)。
记忆梯度法(文献【8-9】)是求解无约束优化问题非常有效的方法,该方法在每步迭代时不需计算和存储矩阵,结构简单,因而适于求解大型优化问题。
算法的基本思想是: 首先将非线性方程组问题(12)转化为一个无约束极小化问题n R x x f ∈),(min , (12) 其中2)(21)(x F x f =。
这里.采用二范数,然后利用记忆梯度法求解问题(13)。
因为f( x) ≥ 0。
所以如果x* 是无约束优化问题(12)的最优解,那么x * 必是非线性方程组(11) 的近似最优解。
设f(X)的梯度为g(x),则g(x)=▽f(x)=J(x)F(x).求解无约束优化问题的记忆梯度法应用于求解非线性方程组,给出了一类新的求解非线性方程组的记忆梯度算法,并分析了算法的全局收敛性。
该算法无需求雅克比矩阵的逆矩阵,所以具有更广泛的应用性。
此外,算法在迭代过程中也无需每一步都计算F(X) 的雅克比矩阵,大大减少了算法的计算量,节省了运算时间。
与牛顿法相比,记忆梯度法更适于求解大规模非线性方程组。
4: 基于Memetic 算法的非线性方程组求解算法【11-12】Memetic 算法是建立在模拟文化进化基础上的优化算法,它实质上是一种基于种群的全局搜索和基于个体的局部启发式搜索的结合体。