非线性方程组的求解(汇编)
非线性方程组的求解方法及其应用
非线性方程组的求解方法及其应用非线性方程组是数学中一类非常重要的问题,其中每个方程都不是线性的。
与线性方程组不同,非线性方程组的求解通常需要借助于数值方法。
本文将讨论一些常见的非线性方程组求解方法,并介绍它们在实际应用中的一些应用。
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$。
非线性方程组的解法
非线性方程组的解法
基本思路:
分段线性化方法,将荷载划分成很多小步,逐 步施加
具体操作方法:
显式求解法(增量法) 隐式求解法(迭代法)
清华大学研究生课程——《钢筋混凝土有限元》
清华大学研究生课程——《钢筋混凝土有限元》
显式求解法
将荷载分成若干小步,逐步施加 认为在每个小步中,结构是线性的,同 一荷载步的刚度矩阵相同 不同荷载步的刚度矩阵可以不同 用一系列的折线去近似曲线
某次迭代位移改变量 同级荷载节点总位移 < 误差容限
能量收敛标准
一般以某次迭代的应变能增量为分析对 象,以同级荷载作用下总应变能为参考 标准
某次迭代应变能改变量 同级荷载总应变能 < 误差容限
一般使用无穷范数
清华大学研究生课程——《钢筋混凝土有限元》
清华大学研究生课程——《钢筋混凝土有限元》
注意事项
修正的欧拉折线法(Mid-point Method)
P K2 K1 Pn Pn-1
单元刚度矩阵
已知应力,应变,应变增量
[K n−1 ]
根据当前应力应变求切线刚度矩阵 求中点应力 {σ n '} = {σ n−1 } + [K n−1 ] {dε n }
2
根据中点应力和应变 {σ n '}, {ε n−1 } + n 求此时 2 的切线刚度矩阵 [K n−1 ']
判断对象
力收敛标准 位移收敛标准 能量收敛标准
范数
无穷范数 一范数 二范数
V
V
V
∞
= max Vi
= ∑ Vi
=
判断标准
相对误差 绝对误差
1
范数
无穷范数 一范数 二范数
第十章非线性方程及非线性方程组解法
例5 设
f1 ( x, y ) x 2 y 2 5 0 f 2 ( x, y ) ( x 1) y (3x 1) 0 用牛顿法求( x0 , y0 ) (1 ,1)附近的解
解:先计算出偏微商矩阵
f1 x f 2 x f1 2y y 2 x f 2 y 3 x 1 y
第十章 非线性方程及非线性方程组解法
在许多实际问题中常常会遇到求解非线性方程
或非线性方程组的问题。
例如,求n次代数方程
an x n an1 x n1 a1 x a0 0
的根,或求超越方程。
x
e
sin(
X
2
)0
的根,这些都可以表示为求f(x)=0的根,或称为 求函数f(x)的零点。
x 2 x1
x1 x0
f ( x0 )
f ( x0 )
再把 x1 作为节点,利用泰勒展式,令f ( x1 ) 0,
f ( x1 )
f ( x1 )
如此下去,得到牛顿法的迭代序列
x n 1 x n f ( xn ) f ( x n )
牛顿法的几何意义 切线方程:y f ( x0 ) f ( x0 )(x x.0 )
(10-24)
只要系数矩阵的行列式
f1 ( x0 , y0 ) x J f 2 ( x0 , y0 ) x f1 ( x0 , y0 ) y 0 f 2 ( x0 , y0 ) y
则方程组(10—24)的解可以写成
x1 x0 1 J0 1 y1 y0 J0 f1 ( x0 , y0 ) y f 2 ( x0 , y0 ) y f1 ( x0 , y0 ) f 2 ( x0 . y0 ) f1 ( x0 , y0 ) f 2 ( x0 , y0 ) f1 ( x0 . y0 ) x f 2 ( x0 , y0 ) x
第六章 非线性方程(组)的求解
* * 又当 n 充 分 大[ 以 a ,b 后 ] , (x ,x ), 于是 m 为偶数 n n 时, x [ a ,b ],f (x ) 0 ,不 变 号 了 ! n n
2)二分法线性收敛,收敛因子为1/2。
* x x n 1 1 * 1 * x x ( x a ) ( x x ), . n n 1 n 1 n 1 * 2 2 x x2 n 1
f (x) m(x x*)m1h(x) h(x) g(x) 1 (x x*)g(x),h(x*) 0, m f (x) (x) x x 1 (x-x* )g(x) / h(x), f (x) m (x*) 1 1 , (x*) 1 1 1 , m m 牛顿迭代线性收敛,且 随 m的增加收敛性越来越差 。 重根时的改进:
或
定理一的条件太强,不便于实际应用。下面给出一个局部 收敛定理。
由迭代( 6 -1 -1 ) 产产生的 x 均收 数 敛收敛 n * 1 x x x x n n n 1 1 L n L * 或 x x x x n 1 L1 0
* * * 定理二 :如果 (x ) 连续 (x , ) L 1, 则 x N (x , 0 δ )
关于初值的问题: 一般来说采用试探法,但对于一些实际问题初值的选择并 不困难,它是明确的。
关于重根的问题:
* 设 x 是 f( x ) 的 m 重零 m 点 1) , 此 (时 * m * f( x ) ( x x ) g ( x ), g ( x ) 0 , 1 * m 1 * f ( x ) m ( x x ) [ g ( x ) ( x x ) g ( x )], m
称算法(6-1-1)为牛顿迭代法。 f (x) 证明:令 (x) x ,则 xN (x*), f (x) 0 x (x) f (x) (x) f *) 0 (x) 1 f ( x ), ( x ,牛顿迭代收敛 2 [ f (x)] () * * 又 xn1 x (xn) (x ) (xn x*)2; 2 xn1 x* () c,至少二阶收敛。 2 2 (x x*)
非线性方程(组)的解法
lnim(bn
an )
lim
n
2n1
(b
a)
0
lim
n
an
lim
n
bn
x
取
x
cn
1 2
(an
bn
)为
x 的近似解。
7
二分法
迭代终止准则
an - bn
即
x - cn
bn an 2
2
8
2.2一般迭代法
2.2.1 迭代法及收敛性
对于 f (x) 0 有时可以写成 x (x) 形式 如: x3 x 1 0 x 3 x 1
12
例题
例2.2.1 试用迭代法求方程 f (x) x3 x 1 0
在区间(1,2)内的实根。 解:由 x 3 x 1建立迭代关系
xk1 3 xk 1 k=0,1,2,3…… 计算结果如下:
13
例题
精确到小数点后五位
x 1.32472 1 105
2
14
例题 但如果由x x3 1建立迭代公式
xk1 xk3 1 k 1,2,...
仍取 x0 1.5,则有 x1 2.375 ,x2 12.39 显 然结果越来越大,{xk }是发散序列
15
2.3 Newton迭代法
设x*是方程f (x) = 0的根, 又x0 为x* 附近的一个值,
将f (x) 在x0 附近做泰勒展式:
f (x)
二分法
用二分法(将区间对平分)求解。
令
a1
a, b1
b, c1
1 2
(a1
b1 )
若 f (a1) f (c1) 0,则[a1, c1] 为有根区间,否 则 [c1,b1]为有根区间
非线性代数方程(组)的解法
06
应用举例与算法实现
应用举例
经济学
非线性方程组在经济学中广泛应用于描述市场均衡、消费者行为等问题。例如,求解供需平衡价格时,可以通过构建 非线性方程组来表示供给和需求函数,进而求解市场均衡价格。
工程学
在机械、电子等工程领域,非线性方程组常用于描述系统的动态行为。例如,在控制系统中,通过建立非线性状态方 程来描述系统的状态变化,可以求解系统的稳定性、响应特性等问题。
拟牛顿法是对牛顿法的改进,通过近 似计算雅可比矩阵或其逆矩阵来减少 计算量。常见的拟牛顿法有BFGS方 法、DFP方法等。程序设计时,需要 实现拟牛顿法的迭代过程,包括选择 合适的拟牛顿公式、更新近似矩阵等 步骤。
信赖域方法
信赖域方法是一种全局收敛的非线性 方程组求解算法,其基本思想是在每 次迭代中构造一个信赖域,然后在该 区域内寻找使目标函数充分下降的试 探步。程序设计时,需要实现信赖域 方法的迭代过程,包括构造信赖域、 求解子问题、更新信赖域半径等步骤 。
04
解析解法分离变量法源自01 适用于可将方程中的变量分离为两个或多个独立 函数的情况。
02 通过将方程两边同时积分,得到各变量的通解。 03 需要注意积分常数的确定,以及解的合理性验证。
行波法
01
适用于可化为行波形式的非线性方程。
02
通过引入行波变换,将原方程化为关于行波参数的常微分方 程。
03
步骤
1. 选定适当的坐标轴,将方程的变量表 示为坐标轴上的点。
等倾线法
定义:等倾线法是一种通过绘 制等倾线(即斜率相等的线) ,从而找出方程解的方法。
步骤
1. 将方程转化为斜率形式, 即 y' = f(x, y)。
3. 通过观察等倾线的交点、 切线等性质,可以判断方程 的解的存在性、唯一性等。
非线性方程组的解法
所以 f ( x) m(x x*)m1 g(x) (x x*)m g(x)
xk 1 xk
f (xk ) f (xk )
xk
m( xk
( xk x*)m g( xk ) x*)m1 g( xk ) ( xk x*)m g( xk )
xk
xk 1 xk (xk ) (xk 1 ) ( )( xk xk 1 ) 由于|( x)| L
xk 1 xk L xk xk1
xk1 x * L xk x * L xk1 x * (xk1 xk )
L xk1 x * L(xk1 xk )
本节主要研究单根区间上的求解方法
2
简单迭代法(基本迭代法)
将非线性方程(1)化为一个同解方程
x (x) 并且假设 (x)为连续函数
--------(2)
任取一个初值 x0 , 代入(2)的右端,得
x1 ( x0 )
继续
x2 ( x1 )
xk 1 ( xk )
(k 0,1,2, )
1 1 m
m 2时,1 1 0 m
由定义1
该迭代法对 m( 2)重根是线性收敛的
例4. 设f (a) 0,且f (a) 0,证明迭代法
xk 1
xk
f (xk ) f (xk )
至少是平方收敛的
19
注意例4与例3的迭代法是相同的,两例有何区别?
证明:
令
(x)
x1 3
x0 1 2
3 1 0.7937 2
x2
3
x1 1 3 2
1.7937 2
非线性方程组的解法
非线性方程组的解法
非线性方程组的解法包括:
(1)近似法。
近似法是根据所给非线性方程组,使用一定的数值方法,建立非线性方程组结果的拟合曲线,以此求解非线性方程组的常用方法,目前有贝塔、拉格朗日近似法和微分近似法等。
(2)多元分割法。
多元分割法根据非线性方程组的参数和变量空间,
将整个运算范围分割成多余小区间,利用各区间中只含有一个未知变
量的简单方程组,将非线性方程组转换成多个一元方程组,再用一次法、弦截法和二分法等算法求解,最终得出整个非线性方程组的解。
(3)迭代映射法。
迭代映射法是通过给定一个初始值,然后利用迭代,反复运算,最终达到收敛点的一种方法,主要包括牛顿法、收敛法、
弦截法、松弛法和隐函数法等。
(4)最小二乘法。
最小二乘法是将非线性方程组表示为残差函数,然
后求解残差函数最小值,获得未知变量的最优解,常用于数值分析中。
(5)特征法。
特征法是采用将非线性方程组表示为线性方程组特征值
和它们关于某一特征量的关系式,利用梯度下降法,最小化残差函数,求解非线性方程组的方法。
以上是非线性方程组的解法的简单综述,它们在一定程度上增加了解决非线性方程组的效率,但并非所有情况都能使用以上求解方法。
正确使用相应的求解方法就可以有效的求解非线性方程组,以便更好的解决实际问题。
非线性方程(组)的解法
f ( x) f ( xk ) f ( xk )(x xk ) 一元函数 F ( x) F ( x k ) F ( xk )(x xk ) 0 x k为向量 F ( x k )(x x k ) F ( x k ) x x k F ( x k )1 F ( x k )
18
3.非线性方程组的迭代解法
f1 ( x1 , x2 , , xn ) 0 f1 ( x) f1 ( x1 , L , xn ) 或 F ( x) L 0 L f ( x) f ( x , L , x ) f ( x , x ,, x ) 0 n n n 1 n n 1 2
9
迭代法及收敛性
考虑方程 x ( x)。 这种方程是隐式方程,因而不能直接求出它的根。
但如果给出根的某个猜测值 x0, 代入 x ( x) 中的右端得到 x1 ( x0 ),再以 为一个猜测值,
x1
代入 x ( x) 的右端得 x2 ( x1 ) ,反复迭代 得
1 f ( x ) f ( x0 ) ( x x0 ) f ( x0 ) ( x x0 )2 f ( ) 2 其中在x和x0之间
0 f ( x) f ( x0 ) ( x x0 ) f ( x0 ) 0
16
Newton迭代法
有:
*
f ( x0 ) x x0 f ( x0 )
能为力时,数值方法则可以借助于计算机出色完成。
2
2.1二分法
概念:
有根区间:存先确定有限区间:依据零点定理。 设 f ( x) C[a, b],且 f (a) f (b) 0 ,则 方程 f ( x) 0在区间 (a, b)上至少有一个根。 如果 f ' ( x) 在 (a, b)上恒正或恒负,则此根唯 一。
非线性方程(组)的求解
切线法
牛顿下山法 ——Newton’s Method 局部微调:
原理:若由 xk 得到的 xk+1 不能使 | f | 减小,则在 xk 和 xk+1 之间找一个更好的点 xk 1 ,使得 f ( xk 1 ) f ( xk ) 。
xk
xk+1
f ( xk ) x k 1 [ x k ] (1 ) xk f ( xk ) xk f ( xk ) f ( xk )
试位法
为了加快二分法根的收敛速度,这里再介绍一种方法——试位法,试位法的 一般执行过程见下面动画。
(b, f (b))
a
x*
b
(a+b)/2
x a f (a ) b a f (b) f (a )
(a, f (a))
test_bit.m
4.2 简单迭代法
f (x) = 0 f (x) 的根
等价变换
x = g (x) g (x) 的不动点
从一个初值 x0 出发,计算 x1 = g(x0), x2 = g(x1), …, x 思 xk+1 = g(xk), … 若 k k 0 收敛,即存在 x* 使得 路 lim x k x *,且 g 连续,则由 lim x k 1 lim g x k 可 k k k 知 x* = g(x* ),即x* 是 g 的不动点,也就是f 的根。 逐次逼近: 将隐式方程归结为显式计 算
a
x a1
x*
x2 b b
bisect.m
误差 分析:
对于给定的精度 ,可估计二分法所需的步数 k :
ba ε k 2 k
ba |x x*| 第1步产生的 有误差 1 2 ba |x x*| 第 k 步产生的 xk 有误差 k 2k
非线性方程组计算
在科学与工程计算中,经常遇到求解非线性方程组的问题;非线性方程组在收敛速度及收敛性比线性方程组要差,特别对于非凸的非线性方程组,其求解更是困难。
下面简要介绍非线性方程组的三种解法——牛顿法、拟牛顿法、同伦算法,分析三种解法的适用性,并附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)上面的非线性方程组问题就转化为数值积分问题。
非线性方程组求解
xk 1
xk
f
xk
f
xk
f
xk
1
xk
xk1
2019年7月18日星期四
21
弦截法示意图
Y
xk 1
xk
f xk f 'xk
2019年7月18日星期四
32
2.2.1 内联函数(inline function)
[说明]
'CE'是字符串;CE表达式不能包含赋值号=
第1种调用格式将自动地对CE进行辨识,把CE中由 字母/数字组成的连续字符认做变量,除预定义变量 名和常用函数名(如sin)外的有字母/数字组成的 连续字符将被认做变量。但注意如果连续字符后紧 接左圆括号,则不被当作输入变量。
第2种方法创建内联函数最稳妥、可靠的方法。
第3种方法最简练,但是对输入变量的字符有严格 限制。输入变量字符只能是x,P1,P2,…,Pn等,注意 P必须为大写字母。
2019年7月18日星期四
33
2.2.1 内联函数(inline function)
涉及内联函数性质的指令
class(inline_fun)给出内联函数类型 char(inline_fun)给出内联函数计算公式 argnames(inline_fun)给出内联函数的输入变量 vectorize(inline_fun)使内联函数适用数组运算规则
这是称为有界的Wegstein法 注:当S=1时,取S=0进行计算。
非线性方程组的解法
非线性方程组的解法
主要有两类: 几何非线性,材料非线性 几何非线性 物理位置:平衡方程必须按照变形后的几何位置建立 数学描述:物体的变形一般由位移的一阶微分求得, 当变形很大,高阶微分不能忽略 举例:
非线性方程组的解法
主要有两类: 几何非线性,材料非线性 材料非线性 混凝土,钢筋,粘结滑移,时变效应 一般认为,混凝土开裂即存在材料非线性 其他非线性:边界非线性 常见的是接触问题
[K ][∆δ ] = [∆P ]
n n n
[∆δ n ] = [K n ]−1 [∆Pn ]
[δ n ] = [δ n−1 ] + [∆δ n ]
步骤:……. 缺点:存储两个刚度,存贮量大
非线性方程组的解法
逐步增量法-中点刚度增量法
施加一半荷载,求出相应的位移(中点位移)
[K n−1 ]∆δ n − 1 = 1 [∆Pn ]
非线性方程组的解法
逐步搜索法 可求出极限荷载,无法求解
步骤:1. 加一级荷载 ∆P ,结果发散,退回 2. 加 1 ∆P ,若结果发散,再次退回
2
P −δ
下降段
3. 加
1 ∆P ,……至收敛,得到极限荷载 4
非线性方程组的解法
虚加刚性弹簧法 加虚拟弹簧, 改变原结构形式,新的结构形式 曲线在一定范围内没有下降段
[B] = [M ][R][Q]
其他数值方法
刚体弹簧元
k n [D] = 0
Tresca屈服条件
0 ks
本构矩阵 (2x2)
平面应变下的莫尔-库仑屈服条件
平面应力下的莫尔-库仑屈服条件
其他数值方法
刚体弹簧元
其他数值方法
无网格法
非线性方程组的求解共34页
2、要冒一次险!整个生命就是一场冒险。走得最远的人,常是愿意 去做,并愿意去冒险的人。“稳妥”之船,从未能从岸边走远。-戴尔.卡耐基。
梦 境
3、人生就像一杯没有加糖的咖啡,喝起来是苦涩的,回味起来却有 久久不会退去的余香。
非线性方程组的求解4、守业的最好办法就是不断的发展。 5、当爱不能完美,我宁愿选择无悔,不管来生多么美丽,我不愿失 去今生对你的记忆,我不求天长地久的美景,我只要生生世世的轮 回里有你。
6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。——斯宾诺莎 7、自知之明是最难得的知识。——西班牙 8、勇气通往天堂,怯懦通往地狱。——塞内加 9、有时候读书是一种巧妙地避开思考的方法。——赫尔普斯 10、阅读一切好书如同和过去最杰出的人谈话。——笛卡儿
ThaБайду номын сангаасk you
非线性方程组解法
解 f (0) 0, f (2) 0, f (x) 在区间(0,2)内至少有一个实根。 设从x=0出发,取h=0.5为步长向右进行根的搜索,列表如下
k
X ( k1) X *
lim
C (0,1);
k X (k ) X *
(2)超线性的,若
X ( k1) X *
lim
0;
k X (k ) X *
(3)p阶收敛的,若
X ( k1) X *
lim
k
X (k) X*
p
C 0, p 1.
2. 二分法解非线性方程的条件、思想方法、执行次数k:
p( x) fk [ xk , xk1] f ( x xk ) [ xk2 , xk1, xk ] f ( x xk )( x xk1) (a)
一阶差商
二阶差商
牛顿插值
用p(x)近似f(x), 取P(x)=0较靠近 xk 的根 xk1 为f(x)=0的改进近似 根。考虑 xk1 xk 的最小值,变形(a)式(插项),于是, 由p( x) 0,得
生成含根区间[a1, b1], 且[a1, b1] 满足下式:
(1) [a1, b1] [a0 , b0 ]
(2)
b1
a1
h 2
(3) f (a1 ) f (b1 ) 0
以[a1, b1]取代[a0 , b0 ], 继续以上过程, 得[a2 , b2 ].
一般的, 设已得含根区间[ai ,bi ],i 0,1,, k ,满足:
使用二分法时,误差限
x xn
第十章非线性方程及非线性方程组解法
由条件(2),有
x1* x2* (x1* ) (x2* ) L x1* x2* x1* x2*
导出矛盾,唯一性得证。
收敛充分性定理(一、3)
对任意x0 [a, b],由迭代公式有
xn x* (xn1) (x* ) L xn1 x*
xn1 (xn ) (n 0,1, 2,L )
收敛于x* .
收敛充分性定理(三、2)
证:因 ' (x)在O(x*, *)内连续,且 ' (x) 1,故存 在正数L 1, *, 使得对x [x* , x* ],有
'(x) L 1 另一方面,由 (x*) x*, 又有
(x) x* (x) (x*) L x x* 即 (x) [x* , x* ]。由上面定理知,迭代序列 xn1 (xn )收敛于x*。
xn1 (xn ) (n 0,1,L )
均收敛于x*,并有
x* xn
Ln 1 L
x1 x0
收敛充分性定理(一、2)
证:由条件(2)知(x)在[a, b]上连续。 令 (x) x (x),则 (x)在[a,b]上连续,且
(a) a (a) 0, (b) b (b) 0 故存在 [a,b],使得() 0,即 (), 所以方程x (x)在[a,b]内有根。
收敛充分性定理(一、1)
定理. 设函数 (x)在区间[a, b]上满足条件 (1)对任意x [a, b],都有a (x) b;
(2)存在常数0 L 1, 使得对一切x, y [a, b],都有
(x) ( y) L x y
则方程x (x)在[a, b]内有唯一的根x*,且对任何
初值x0 [a, b], 迭代序列
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非线性方程组的求解摘要:非线性方程组求解是数学教学中,数值分析课程的一个重要组成部分,作为一门学科,其研究对象是非线性方程组。
求解非线性方程组主要有两种方法:一种是传统的数学方法,如牛顿法、梯度法、共轭方向法、混沌法、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 算法是建立在模拟文化进化基础上的优化算法,它实质上是一种基于种群的全局搜索和基于个体的局部启发式搜索的结合体。