非线性方程(组)的解法
5-非线性方程组的数值解法及最优化方法
非线性方程组的数值解法
不动点迭代法:根据非线性方程求根的迭代法,将方程组改 写为如下等价方程组
xi i x1, x2,, xn , i 1,2,, n
构造迭代公式
xik 1 i x1k , x2k ,, xnk , i 1,2,, n
非线性方程组的数值解法
若对任意A Cmn 都有一个实数 A 与之对应,且满足:
(1)非负性:当 A O 时, A 0 ;当A O 时,A 0;
(2)齐次性:对任何 C ,A A ;
(3)三角不等式:对任意 A, B C nn ,都有A B A B ;
(4)相容性:对任意A, B C nn ,都有 AB A B ,
…
…
18
(0.2325670051,0.0564515197)
19
(0.2325670051,0.0564515197)
max
1 i 2
xik
xik
1
0.2250 0.0546679688 0.0138638640 0.0032704648 0.0008430541 0.0001985303 0.0000519694 0.0000122370 0.0000032485 0.0000007649
10-9
非线性方程组的数值解法
练习题:用牛顿迭代法求解方程组
取 X 0 1.6,1.2T
xx1122
x22 x22
4 1
结果:1.5811,1.2247
非线性方程组的数值解法
应用经过海底一次反射到达水听器阵的特征声线传播时间, 来反演海底参数。假设水中和沉积层声速都是恒定的,海底 沉积层上界面水平,下界面倾斜。特征声线由水中声源出发 折射进入沉积层,经过沉积层的下界面反射后,再折射进入 水中,由水中水听器阵接收。特征声线的传播时间为声线在 水中和沉积层中的传播时间之和。 三维坐标关系如图所示:
非线性方程组的求解方法及其应用
非线性方程组的求解方法及其应用非线性方程组是数学中一类非常重要的问题,其中每个方程都不是线性的。
与线性方程组不同,非线性方程组的求解通常需要借助于数值方法。
本文将讨论一些常见的非线性方程组求解方法,并介绍它们在实际应用中的一些应用。
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
范数
无穷范数 一范数 二范数
第六章 非线性方程(组)的求解
* * 又当 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*)
非线性代数方程(组)的解法
06
应用举例与算法实现
应用举例
经济学
非线性方程组在经济学中广泛应用于描述市场均衡、消费者行为等问题。例如,求解供需平衡价格时,可以通过构建 非线性方程组来表示供给和需求函数,进而求解市场均衡价格。
工程学
在机械、电子等工程领域,非线性方程组常用于描述系统的动态行为。例如,在控制系统中,通过建立非线性状态方 程来描述系统的状态变化,可以求解系统的稳定性、响应特性等问题。
拟牛顿法是对牛顿法的改进,通过近 似计算雅可比矩阵或其逆矩阵来减少 计算量。常见的拟牛顿法有BFGS方 法、DFP方法等。程序设计时,需要 实现拟牛顿法的迭代过程,包括选择 合适的拟牛顿公式、更新近似矩阵等 步骤。
信赖域方法
信赖域方法是一种全局收敛的非线性 方程组求解算法,其基本思想是在每 次迭代中构造一个信赖域,然后在该 区域内寻找使目标函数充分下降的试 探步。程序设计时,需要实现信赖域 方法的迭代过程,包括构造信赖域、 求解子问题、更新信赖域半径等步骤 。
04
解析解法分离变量法源自01 适用于可将方程中的变量分离为两个或多个独立 函数的情况。
02 通过将方程两边同时积分,得到各变量的通解。 03 需要注意积分常数的确定,以及解的合理性验证。
行波法
01
适用于可化为行波形式的非线性方程。
02
通过引入行波变换,将原方程化为关于行波参数的常微分方 程。
03
步骤
1. 选定适当的坐标轴,将方程的变量表 示为坐标轴上的点。
等倾线法
定义:等倾线法是一种通过绘 制等倾线(即斜率相等的线) ,从而找出方程解的方法。
步骤
1. 将方程转化为斜率形式, 即 y' = f(x, y)。
3. 通过观察等倾线的交点、 切线等性质,可以判断方程 的解的存在性、唯一性等。
第2章 非线性方程(组)求解
1)Newton迭代法的几何意义
求f(x)=0的解,即求曲线f(x)与横坐标的交点a
过 ( x n , f ( x n ) ) 作 切线 , 其斜率为 f ' ( xn )
C=(a+b)/2
左半区间 右半区间
(2) a (3) a a
b b b
No 4:判断是否达到精确度ε:若达到,则得到零点近似值是(a,b)区 间内的一点;否则重复2~4步骤。
4 牛顿迭代法
对方程f(x)=0可构造多种迭代格式,牛顿 迭代法是借助于对函数f(x)=0的泰勒展开而得到 的一种迭代格式。
补充1:Matlab函数创建
Matlab中创建函数有几种方法 • 最常用的是由function命令创建,可以 通过程序、函数或命令窗口来访问 • 第二种创建匿名函数 • 第三种形式是子函数
匿名函数(anonymous function)
• 匿名函数用于在命令行、 script文件或函数文 件中创建简单形式的函数,避免另外定义新的 函数。 • 匿名函数的定义形式: f=@(arglist)expression • Matlab允许定义多重匿名函数,例如,对于表 达式 1 可以通过以下的匿名函数进行计算 g (c) = ∫ ( x 2 + cx + 1)dx 0 g=@(c) quad(@(x) x.^2+c*x+1,0,1) 此处quad为数值积分函数。
注: fzero函数调用一次,只能求一个初值附近的 一个根,且只能是实根; fsolve函数可用于求解非线性方程组。
1 =0 cos( 0.68 x ) • % m-function, f_2.m • function y=f_2(x) % 定义 f_2.m 函数 • y=4-5.25.*x-1./cos(squr(0.68.*x));
非线性方程组的解法
所以 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
第二章 非线性方程(组)的迭代解法.
输入,,计算fa f (a), fb f (b);
注: 其中 , 为 精度控制参数!
若f f a 0, 则a x, f a f ; ab 为所求根,结束! (4) 若 b a , 则x
否则,转(2);
2
例1
计算f ( x) x3 4x2 10 0在[1 , 2]内的实根。 可得 x* 1.36523, 共计算21次! 取 109, 106,
则 0, 使得 x0 [ x * , x * ]但x0 x*,
由迭代
xn1 (xn )
证明:由泰勒公式和收敛阶定义可证! 注: 1、给出了由迭代函数判断收敛速度的方法;
2、给出了提高收敛速度的方法!
School of Math. & Phys.
15
North China Elec. P.U.
Numerical Analysis
2018/10/11
J. G. Liu
例3 1 a 3 a2 1、证明xk 1 ( xk )和xk 1 xk 3 分别是求 2 xk 4 4 xk
a的平方收敛的迭代格式。
解: 迭代函数为
同理对xk 1 2 ( xk )证明!
School of Math. & Phys. 16
不妨设(x*) 0, 由(x)的连续性,则 δ 0, 当x x * δ 时,(x) 0。
当n充分大以后,[ an ,bn ] ( x * δ,x* δ ),于是当m为偶数时, x [an ,bn ], f ( x) 0,不变号了!(??)
(2) 二分法线性收敛; (3) 二分法可用来细化有根区间,这是它的一大优点! 故二分法可以用来确定迭代法的迭代初值!
非线性方程组的解法
非线性方程组的解法
非线性方程组的解法包括:
(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)上恒正或恒负,则此根唯 一。
第三章 非线性方程(组)的数值解法
第三章 非线性方程(组)的数值解法一.取步长1h =,试用搜索法确立3()25f x x x =--含正根的区间,然后用二分法求这个正根,使误差小于310-。
【详解】由于是要寻找正根,因此,可选含根区间的左端点为0。
(0)5f =-,(1)5f =-,(2)1f =-,(3)16f =,因此,(2,3)中有一个正根。
这就确立了含根区间。
接下来,我们用二分法求这个正根,使误差小于310-,计算结果如下表 迭代次数k a k b k x0 2 3 2.5 1 2 2.5000 2.250 0 2 2 2.2500 2.125 0 3 2 2.1250 2.062 5 4 2.0625 2.1250 2.093 8 5 2.0938 2.1250 2.109 4 6 2.0938 2.1094 2.101 6 7 2.0938 2.1016 2.097 7 8 2.0938 2.0977 2.095 7 9 2.09382.09572.094 7二.对方程2()2sin 20f x x x =--=,用二分法求其在区间[]1.5,2内的根,要求误差小于0.01。
【详解】用二分法求解方程在[]1.5,2内的根,要求误差小于0.01,计算结果如下表: 迭代次数k ak bk x0 1.5 2 1.75 1 1.7500 2.0000 1.875 0 2 1.8750 2.0000 1.937 5 3 1.9375 2.0000 1.968 8 4 1.9375 1.9688 1.953 1 51.95311.96881.960 9三.用不动点迭代法,建立适当的迭代格式,求方程3()10f x x x =--=在0 1.5x =附近的根,要求误差小于610-。
【详解】310x x --=,等价于x =。
这样,可以建立不动点迭代格式1k x +=当0x ≥时,总有23110(1)133x -'<=+≤<,因此,迭代格式对于任意初始值00x ≥总是收敛的。
非线性方程组的解法
第四章 非线性方程组的解法4.1 非线性方程组的一般形式从上面两章中,我们研究了离散化结构中任一单元在t t t ∆+→的时间增量步内,由材料非线性引起的单元切线刚度阵是线性的,(如第三章得出的增量平衡方程p q k t ∆=∆ (7) (假定t 时刻的状态已知)),由此集合而成结构的增量平衡方程也是线性的P q K T ∆=∆,这就为求解整个的非线性过程准备了条件。
即只要确定每一步的切线刚度,通过求解一系列的线性方程组,累加起来就得到了解的全过程。
结构总的平衡方程是非线性的:P q q K =)( (1)i.e P K q 1-=。
令q q K R )(=0)()1(=-=→q R P F (1)’分段线性化是求解非线性问题中一个普遍有效的技术,但作为具体的解法还有许多种,主要的有:1、增量法―纯增量法2、迭代法―直接迭代法(刚线刚度法)、Newton-Raphson 迭代法(切线刚度法)3、.混合法―增量/迭代型方法4.2 载荷增量法(纯增量法)1、基本思想将一个非线性的全过程分成若干段,每一段用一个线性问题去近似。
如将一段取得足够小,总可以逼近真实的非线性过程。
方法:若将外载荷分成N 个增量步,而每个增量载荷为0P P i i λ∆=∆, i λ∆为载荷系数(或称载荷因子), 则总载荷 0P P λ=;其中:∑=∆=Ni i 1λλ0P 为基准载荷.上面的结构平衡方程为0)()(=-=q R P q F (1)´i.e 0)()(0=-=q R P q F λ (2)λ1Δλ1P 0Δλ2P 0 λP 0λ2 λ3q 1 q 2q 3上式两边对λ微分得00F R P λλ∂∂=-=∂∂ (3)i.e 0)(0=-λd dqq K P T (4)如比例加载(力的大小和方向不变),有0P d dP λ=,代入(4)得1110()()..()T TT d q K qd P K q d P ie qK q P λ---==∆=∆ (5)将(5)式写成增量形式便有以下求解格式1101[()]i T i ii i i i iq K q P P P q q q λ---⎧∆=∆∆=∆⎨=+∆⎩ (6)2、求解步骤1)将载荷分成若干个增量步 01P P Ni i ∑=∆=λ ,准备位移量累加器[Q]并置零.2)施加第1个载荷增量 011P P λ∆=∆,计算qRq k t ∂∂=)(0线性 求解 1101)]([P q K q T ∆=∆-11q q ∆= 并送入位移量累加器[Q]3)施加第2个增量步 022P P λ∆=∆用1q ,求)(1q K T 即在1q 处的切线刚度矩阵 求解 2112)]([P q K q T ∆=∆-212q q q ∆+= 在位移量累加器[Q]中完成累加.4)重复3)直至(N )个载荷施加完毕, 在位移量累加器[Q]中得到总位移 ∑=∆=Ni i q q 13. 几何意义及讨论优缺点:优点:了解加载过程,当→∆P 足够小,总能收敛到真实解缺点:实际不可能无限小,因此累积误差,且无法估计,造成极大偏离而失真P 2 ΔλP 1 λP 0P 3 Δλ4.3 迭代法 1 直接迭代法1) 基本思想:将载荷一次加上,并假设一个初始解代入方程组求出第一次近似解;将其再代入方程组求解,得出第二次近似解,反复迭代逐次修正解,直至满足方程组(类似于对过渡单元加权平均ep D 中m 的迭代)。
非线性方程(组)的求解
切线法
牛顿下山法 ——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)上面的非线性方程组问题就转化为数值积分问题。
非线性方程组的求解
非线性方程组的求解摘要:非线性方程组求解是数学教学中,数值分析课程的一个重要组成部分,作为一门学科,其研究对象是非线性方程组。
求解非线性方程组主要有两种方法:一种是传统的数学方法,如牛顿法、梯度法、共轭方向法、混沌法、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 为赋值空间。
非线性方程组的解法
非线性方程组的解法
主要有两类: 几何非线性,材料非线性 几何非线性 物理位置:平衡方程必须按照变形后的几何位置建立 数学描述:物体的变形一般由位移的一阶微分求得, 当变形很大,高阶微分不能忽略 举例:
非线性方程组的解法
主要有两类: 几何非线性,材料非线性 材料非线性 混凝土,钢筋,粘结滑移,时变效应 一般认为,混凝土开裂即存在材料非线性 其他非线性:边界非线性 常见的是接触问题
[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)
平面应变下的莫尔-库仑屈服条件
平面应力下的莫尔-库仑屈服条件
其他数值方法
刚体弹簧元
其他数值方法
无网格法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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]为有根区间
记新的有根区间为 [a2 ,b2 ], 则
[a1,b1 ] [a2 ,b2 ]
且
b2
a2
1 2
(b1
a1 )
2
2.1二分法 概念:
有根区间:存在根 隔根区间:唯一根
3
根的存在性
首先确定有限区间:依据零点定理。 设 f (x) C[a,b],且 f (a) f (b) 0 ,则
方程 f (x) 0在区间(a,b)上至少有一个根。 如果 f ' (x)在(a,b)上恒正或恒负,则此根唯 一。
4
xk1
xk
f (xk ) f (xk )
x x0
17
Newton迭代法 迭代终止的标准
k N 或 xk xk1
18
3.非线性方程组的迭代解法
f1(x1, x2,, xn ) 0
或
F
(x)
f1 L
(
x)
f1 L
(
x1
,
L
,
xn
)
0
fn (x1, x2,, xn ) 0
第3讲
非线性方程(方程组)的数值解法
1
介绍求解非线性方程 f (x) 0的几种常见和有效的 数值方法,同时也对非线性方程组
fi (x1, x2 , L , xn ) 0 (i 1,2, L , n)
求解,简单介绍一些最基本的解法。无论在理论上, 还是在实际应用中,许多问题的求解,在解析方法无 能为力时,数值方法则可以借助于计算机出色完成。
f
(
x0
)
(
x
x0
)
f
(
x0
)
1 2
(x
x0
)2
f ( )
其中在x和x0之间
0 f (x) f (x0 ) (x x0 ) f (x0 ) 0
16
Newton迭代法
有:
x
x0
f (x0 ) f (x0 )
即
x*
x1
x0
f (x0 ) f (x0 )
以 x1代替 x0重复以上的过程,继续下去得:
迭代终止的标准
k N 或 xk xk1
Matlab中范数:norm(x)
x x12 L xn2
21
4.Matlab函数
非线性方程 Z=fzero(filename,x0,tol) filename: f(x)函数文件 X0: 迭代初值 tol:精度参数 非线性方程组 Z=fsolve(filename,x0,option) option: 最优化工具箱的优化参数
F (x) F(xk ) F(xk )( x xk ) 0 xk为向量 F(xk )( x xk ) F(xk ) x xk F(xk )1 F (xk )
建立 xk1 xk F(xk )1 F (xk )
20
3.非线性方程组的迭代解法
xk1 xk F(xk )1 F (xk ) x0 迭代初始向量
f
n
(
x)
fn
(x1,
L
,
xn
)
F(x) 的Jacobi矩阵
f1(x)
f1 x1
L
f1 xn
F(x) L M
M
fn (x)
fn x1
L
fn xn
19
3.非线性方程组的迭代解法
将F(x) 在xk 处进行泰勒展开 f (x) f (xk ) f (xk )( x xk ) 一元函数
5
二分法
对 [a2 ,b2 ]重复上述做法得
[a1, b1 ] [a2 ,b2 ] ...... [an ,bn ] ......
且
bn
an
1 2 n1
(b
a
)
6
二分法
设所求的根为 x,
则
x [an ,bn ] n 1,2......
即
an x bn n 1,2......
1
得
xk1 (xk ) k 0,1,......
10
迭代法及收敛性
若{xk }收敛,即
lim
k
xk
x
则得 x 是 x (x)的一个根
lim
nБайду номын сангаас
xn1
lim
n
(
xn
)
(lim n
xn )
x
(x)
11
简单迭代法 将f (x) 0变为另一种等价形式 x (x) 。
选取 x的某一近似值 x0 [a,b],则按递推 关系 xk1 (xk ) k 0,1,......产生的迭代序列 {xk }。这种方法算为简单迭代法。
x 1 x3 x cosx 0 x cosx
9
迭代法及收敛性
考虑方程 x (x)。
这种方程是隐式方程,因而不能直接求出它的根。
但如果给出根的某个猜测值 x 0,
代入 x (x) 中的右端得到 x1 (x0 ),再以 x1
为一个猜测值,
代入 x (x) 的右端得 x2 (x1) ,反复迭代
22
以上有不当之处,请大家给与批评指正, 谢谢大家!
23