非线性方程组迭代解法
非线性方程和非线性方程组的迭代解法
敛:p=2,c>0称序列至少平方收敛;若k≥k.,时,有Xk=x4成立,或
lim堕:。二型 =0
“‘||X“一X+旷 则称事列(X)为超p阶收敛
定义4[13假定迭代序列(x。}收敛于x+,量
!抽婪∑梨,当xt≠x·对k≥k。 。
(1)公式的建立
设x+是方程f(x)=o的解,f(x)在x+的某邻域A={xj x—x4≤6}存在
二阶导数,且VX∈A,f’(X)≠0,设x。∈△为f的近似值,将f(x)在X。处 展为一次Taylor多项式f(X)=f(xk)+f 7(x。)(x—x。),记p(X)=f(x.)十 f’(X:)(X—X.),显然P(X)≈f(x).令P(x)=O,解得
应用这个方法求解了非线性偏微分方程u.+“萎生等}<如V>。Q,s(u)=。,其中
Q“u)2与竿导,万—iiF数值计算中得到的非线性方程组,并通过迭代公
式(4-3)与Newton法的数值实验结果的比较,晚明了在相同精度要求卜I求解这 个问题时,f=}}式f 4—3)优于\entOtl法的几个方面.
第一章解非线性方程的常用迭代格式
在第三章写出了这几个迭代公式的相应算法设计,并将这些格式的数值实验 结果与Newton法、 弦截法、Muller法的数值实验结果进行了比较,说明了这 几个迭代格式的有效性.
在第四章中将预测式迭代法推广到了求解非线性方程组,分析了它的收敛 性、收敛阶,给出了其算法设计并进行了数值实验证明了方法的有效性.特别地,
兰州大学 硕士学位论文 非线性方程和非线性方程组的迭代解法及 姓名:尚秀丽 申请学位级别:硕士 专业:计算数学 指导教师:周宇斌
20041101
数值分析(颜庆津) 第4章 学习小结
第4章 非线性方程与非线性方程组的迭代解法--------学习小结一、本章学习体会本章我们主要学习了非线性方程的几种解法,主要有对分法、简单迭代法、steffensen 迭代法、Newton 法、割线法等。
这几种方法都有其思想,并且它们的思想彼此之间有一定的联系。
本章的思路大致可以理解为:1.如何选取迭代公式;2.如何判断迭代公式的收敛速度;3.如何进行迭代公式的修正,以加速收敛;4.如何选取最适合的迭代方法 。
二、本章知识梳理具体求根通常分为两步走,第一步判断根是否存在,若存在,确定根的某个初始近似值;第二步,将初始近似值逐步加工成满足精度要求的结果。
求初始近似值,即确定根的大致区间(a, b ),使(a, b )内恰有方程的一个根。
本章的学习思路:针对一种迭代方法,找出迭代公式,并判断其收敛性,一般选取收敛速度最快的迭代公式,所以自然的提出了如何使收敛加速的问题。
4.1非线性方程的迭代解法非线性方程的迭代解法有:对分法、简单迭代法、steffensen 迭代法、Newton 法、割线法等。
4.1.1对分法设()[]()()0,<∈b f a f b a C x f 且,根据连续函数的介值定理,在区间()b a ,内至少存在有一个实数s ,使()0=s f 。
现假设在()b a ,内只有一个实数s ,使()0=s f 并要把s 求出来,用对分法的过程: 令b b a a ==00, 对于M k ,....,2,1,0=执行计算2kk k b a x +=若()ηε≤≤-k f a b k k 或,则停止计算取k x s ≈否则转(3)()()k k k k k k b b a a a f x f ==<++11,,0则令()()k k k k k k b b x a a f x f ==>++11,,0则令 若M k =则输出M 次迭代不成功的信息;否则继续。
对分法的局限:对分法只能求实根,而且只能求单根和奇数重根,不能求偶数根和复数根4.1.2简单迭代法及其收敛性迭代法是一种逐次逼近法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的解。
非线性方程组解的存在唯一性定理,解的迭代方法和某些应用
非线性方程组解的存在唯一性定理,
解的迭代方法和某些应用
非线性方程组解的存在唯一性定理是世界著名数学家克里斯多福·康威发表于1951年的一项学术成果,它给出了非线性方程组的解的存在唯一性的定理,并被
认为是非线性数学的里程碑。
非线性方程组的解的存在唯一性定理给出了一种把非线性子问题转化为线性子
问题的解法,它将复杂的非线性方程组拆分成多个子问题,逐步对每个子问题求解,并把它们综合起来得到最终结果的方法,是现代非线性数学的重要研究内容。
它的应用被广泛应用在多个学科中,比如金融学,物理学,生物学等。
在这里,我们只讨论它在互联网中的使用场景。
它可以用来解决各种复杂的非线性优化问题,如多轮次排序问题,ID3决策树建模。
它可以有效地帮助我们提高网页排序质量、
构建更智能的搜索引擎等。
有了非线性方程组解的存在唯一性定理,我们也可以使用迭代方法来解决复杂
的非线性问题,比如梯度下降法,牛顿迭代以及二次原型算法。
这些迭代方法可以在互联网中用于实现网页排序,搜索推荐以及机器学习的自主优化等功能,让我们的搜索既“智能”又“高效”。
非线性方程组解的存在唯一性定理至今仍然在发挥重要作用,不仅在数学方面,也在各个行业,特别是在互联网中发挥出了重要的作用,可以大大提高搜索效率和精度,改变人们的网络体验。
42 非线性方程组的迭代解法讲解
x ( k ) x ( k 1) x
(k )
;
2o 由
L知简单迭代法是线性收敛的;
3o 对线性方程组迭代函数G ( x ) Bx d , 有L= B <1是收敛的充分 必要条件。
局部收敛定理 定理5(局部收敛定理 ) 设G:D R n R n ,x * int( D )
其中, 0 k 1, k 1, 2,
, n。
三、收敛向量序列的收敛速度
定义3 设向量序列 xk 收敛于 x * , ek x * xk 0,
k 1,2,
, 如果存在常数r 1和常数c 0,使极限
lim
k
e
k
e k 1
r
c
r
成立,或者使得当k K (某个常数)时,有 ek 1 ek
(4Байду номын сангаас2.2)
其中,F : D R n R n是定义在区域D R n上的向量 值函数。 若存在x * D , 使F ( x * ) ,则称x *是方程组(4.2.1)或 (4.2.2)的解。
二、多元微分学补充
定义1 设f :D R n R,x int( D ) (即x是D的内点), 若存在向量l ( x ) R n ,使极限
L (k ) ( k 1) L(1 L ) ( k ) ( k 1) x x x x 1 L 1 L L * (k ) 再让m , 得 x x x ( k ) x ( k 1) ■ 1 L
m
i 1 i 1
说明
1o 简单迭代法的精度控制与终止条件e( k ) x * x ( k +1) x x
非线性方程组的迭代解法
非线性方程组的迭代解法
非线性方程组是指由非线性函数组成的方程组,它们通常无法使用数学公式解出解析解。
一种常用的求解非线性方程组的方法是迭代法。
迭代法是一种近似求解方法,它通过不断进行迭代来逼近解。
常用的迭代法有牛顿迭代法、共轭梯度法、线性共轭法等。
牛顿迭代法是一种常用的迭代法,它使用了泰勒展开式来逼近非线性函数,并使用这个近似函数的零点来迭代求解非线性方程组。
共轭梯度法是一种高效的迭代法,它使用了共轭梯度来求解非线性方程组。
线性共轭法是一种高效的迭代法,它通过使用共轭梯度来求解非线性方程组,并使用线性共轭条件来加速收敛。
这些迭代法都是基于迭代的方法,需要给定初始解和终止条件,并且在迭代过程中可能会出现收敛问题,所以需要设计合适的迭代步骤来保证收敛性。
二元非线性方程组求根的牛顿迭代法
2 二元函数的牛顿迭代法
设 z = f ( x, y ) 在点 ( x0 , y0 ) 的某一邻域内连续且 有直到 2 阶的连续偏导数 , ( x0 + h, y0 + k ) 为此邻域 内任一点 , 则有
f ( x0 + h, y0 + k ) ≈ f ( x0 , y0 ) +
记符号
gfx - fgx | ( x k, y k) = g ( xk , yk ) fx ( xk , yk ) - f ( xk , yk ) gx ( xk , yk ) fgy - gfy | ( x k, y k) = f ( xk , yk ) gy ( xk , yk ) - g ( xk , yk ) fy ( xk , yk ) gx fy - fx gy | ( x k, y k) = gx ( xk , yk ) fy ( xk , yk ) - fx ( xk , yk ) gy ( xk , yk ) ( 1 ) 式可改写为 x = xk + y = yk + fgy - gfy | ( x k, y k) gx fy - fx gy | ( x k, y k) gfx - fgx | ( x k, y k) gx fy - fx gy | ( x k, y k) fgy - gfy | ( x k, y k) gx fy - fx gy | ( x k, y k) gfx - fgx | ( x k, y k) gx fy - fx gy | ( x k, y k) ( 3) ( 2)
f ( xk , yk ) + ( x - xk ) fx ( xk , yk ) + ( y - yk ) fy ( xk , yk ) = 0 g ( xk , yk ) + ( x - xk ) gx ( xk , yk ) + ( y - yk ) gy ( xk , yk ) = 0
非线性方程(组)的解法
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. 通过观察等倾线的交点、 切线等性质,可以判断方程 的解的存在性、唯一性等。
一种解非线性方程组的四阶迭代方法
)
因为 e 一 所 以 由上 面这个 T y0 展开 式得 = a1r 到:
1
3 (
)
2 数 值 实 例
下面分别用本文的新方法和 N wo 方法和文 et n 献[ 7 4— ]中的方法进行迭代次数方面的比较 通 过解两个非线性方程组来说 明本文的新方法在运 算速度方面的优势. 中文献[ ] 其 7 也是一种 四阶方 法, 它是在文献 [ ]中三阶方法的给出来 的. 6 所有
本文将在两种已知三阶迭代方法 的基础 上给出一种新的四阶收敛的迭代方法 , 然后与其他 的方法 进行 比较 , 明本 文 的新 方法 具有 更好 的收 说 敛速度 . 令 F: ” 尺 , 凸 集 在 上 k阶 F6h t 微 , F可 微. rce可 即 我们 将 F进 行 T yo展开 , alr 然 后令 k =1我们得 到 :
迭代 方法 , 并证 明 了其 具有 四 阶收敛 性 . 然后 , 过数 值 实例 对 几种 不 同 的迭 代 方 法和 本 文提 出 通
的新 方法进 行 了分析 比较 , 明 了本 文 方 法的优越 性 . 说
关 键词 : 非 线性 方 程组 ; 迭代 公 式 ; 分公 式 ; 敛 阶 积 收
表 3 不 同方 法的迭 代 次数
表 4 新 方 法初值 取 时 的每次 迭 代结 果
从上述数值实例表明 , 本文提出的新方法所需 迭代 次数 明 显 较 少 , 对 于 本 文 中提 及 的 其 他 方 相 法, 本文 的方 法 有 明显 的优 势 .
参 考 文献 :
[ ] 李庆扬 。莫孜 中,祁力 群 , 1 等.非 线 性 方程 组 的数 值解 法
一
第二章 非线性方程(组)的迭代解法.
输入,,计算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) 二分法可用来细化有根区间,这是它的一大优点! 故二分法可以用来确定迭代法的迭代初值!
研究生数值分析(3,4)
xk
f (xk) 的符号
1.8(+) 1.9(+) 1.95(-) 1.925(+) 1.9375(-) 1.93125(+) 1.934375(-)
bk
f (bk ) 的符号
2(-) 2(-) 2(-) 1.95(-) 1.95(-) 1.9375(-) 1.9375(-)
1 为公比的等比级数相同,不算太快。 为公比的等比级数相同,不算太快。 2
f (x)
连续, 连续,对
一般求方程的近似根,不大单独使用, 一般求方程的近似根,不大单独使用,常用 来为其它方法求方程近似根提供好的初值。 来为其它方法求方程近似根提供好的初值。方程 求根最常用的方法是迭代法。 求根最常用的方法是迭代法。
(2) ) (3) ) 时,序列 {xk }
x0 ∈ [a, b],用递推公式 xk +1 = g ( xk )
k →∞
g ( x ) 在 x* 连续,则在(3)式两边 连续,则在( ) ,且
是方程( )的根。 ,因而 x* 是方程(2)的根。 x* 由于方程( )与方程( )等价, 由于方程(2)与方程(1)等价,因而
x1 = a1 + b1 = 1.9 2
再令
,则
f ( x1 ) ≈ 0.044 > 0
a2 = x1 = 1.9, b2 = b1 = 2
因为 f (b1) f (x1) < 0 ,所以取
如此继续下去,即得计算结果如下表。 如此继续下去,即得计算结果如下表。
非线性方程与非线性方程组的迭代解法课件
迭代解法是否能够收敛到方程的解是关键问题,收敛性的判定需要满足一定的条 件。
收敛速度
迭代解法的收敛速度是指迭代过程逼近解的速度,收敛速度越快,求解效率越高 。
迭代解法的误差估计与收敛性判定
误差估计
在迭代过程中,我们需要对每次迭代的误差进行估计,以便 了解近似解的精度。
收敛性判定
为了确保迭代过程能够收敛到方程的解,我们需要根据一定 的收敛性判定准则来判断迭代过程是否可以终止。
三角函数求解
对于涉及三角函数的非线性方程,如 (sin x = a),可以通过迭代法求解,例如初始值 (x_0 = a),迭代 公式 (x_{n+1} = x_n + frac{a - sin x_n}{1 - cos x_n})。
非线性方程组求解实例
牛顿迭代法
对于非线性方程组 (f_1(x) = 0, f_2(x) = 0) 等,可以使用牛顿迭代法求解,通过迭代公式 (x_{n+1} = x_n - J^{1} cdot f(x_n)) 逐步逼近方程组的解。
适用于求解具有简单形式和已知导数的非线性方程。
弦截法
总结词
详细描述
公式
应用场景
一简单且易于实现的迭代方 法
弦截法基于线性方程组的求解 方法,通过不断修正近似解来 逼近非线性方程的解。在每次 迭代中,使用当前近似值和方 程的函数值来计算下一个近似 值。
$x_{n+1} = x_n - f(x_n) cdot frac{f(x_0) - f(x_n)}{f(x_0) 2f(x_n) + f(x_1)}$
适用于求解形式简单且导数不 易求得的非线性方程。
抛物线法
总结词
数值分析-第三章小结
姓名 班级 学号第三章 非线性方程的数值解法一、学习体会本章主要介绍了非线性方程组的方程根的解法,求方程根的步骤,由于非线性方程组只有少数类型能解出根的解析表达式,只能用数值方法求出它的近似值。
求解非线性方程组的方法有作图法等,求根的方法有二分法、迭代法、牛顿法、割线法等。
在学习过程当中,我们要注意各种方法的特点与使用范围,针对不同场合下的非线性方程组,选择合适的方法有利于我们快速准确的得到所要求的结果。
二、知识梳理非线性方程的迭代解法1、对分法对分法的算法步骤如下:对k=0,1……,M 执行(1)计算k 2a kk x b +=; (2)()k f x ε<或者2k k b a ε-<则停止计算。
取s=k x ,否则转(3); (3)若f(k a )f (k x )〈0,令k+1k+1k k a =b =a x ,,;若f(k a )f (k x )〉0则有k+1k+1k k a =b =b x ,,; (4)若k=M ,则输出M 次迭代不成功的信息;否则继续。
2、简单迭代法及其收敛性定理1:设函数()[,]x C a b ϕ∈,在(a,b)内可导,且满足两个条件:(1)当[,]x a b ∈时, ()[,]x a b ϕ∈;(2)当(,)x a b ∈时, |'()|1x L ϕ≤<, 其中L 为一常数。
则有如下结论:(1)方程=()x x ϕ在区间[,]a b 上有唯一的根s ;(2)对任取0[,]x a b ∈,简单迭代法1=()k k x x ϕ+产生的序列{}[,]k x a b ⊂且收敛于s ;(3)成立误差估计式101|-|||1|-|||1kk k k k L s x x x L L s x x x L-≤--≤-- 定理2 设=()s s ϕ,'()x ϕ在包含s 的某个开区间内连续。
如果|'()|<1s ϕ,则存在0δ>,当0[,]x s s δδ∈-+时,由简单迭代法1=()k k x x ϕ+产生的序列{}[,]k x s s δδ⊂-+且收敛于s 。
化工系统工程-非线性代数方程组迭代解法 数值计算方法
如简单地套用现成的算法往往导致求解效率低下,甚至根本无 法求解。
在化工流程模拟实践中,总是需要先对数学模型进行一定 的处理,将复杂问题分解为一系列较简单的问题,然后再根据 具体情况,调用适当的算法进行求解。切割技术就是其中最重 要的一种。(基于化工系统工程那部分内容?)
案例1
f1(x2 , x3 ) 0
f1(x1, x2 , x3, x4 ) 0
f2 f3
( (
x1, x1,
x2 x2
, ,
x3 x3
, ,
x4 x4
) )
0 0
, f4 (x1, x2 , x3, x4 ) 0
x
0 2
x
0 3
x
0 4
f1f2f3
f4
x10
X1*
信息流图
f1,f2,f3为关于x2,x3,x4的线性方程组,迭代策略?
4.若将切割变量计算值直接用于下一轮对切割变量的迭代,则 实际上对切割变量是在使用直接迭代法。
5. 使用切割技术,将n个未知数的联立求解问题转化为对少 数m个切割变量的求解问题,将复杂的问题分解为一系列简 单的问题。关键在于:适当或巧妙地选取切割变量与中间变 , 量,并将原方程组适当地分解为中间变量方程组和切割变量 方程组;所选切割变量(组)最宜是那些物理意义明确、易 给初值并密切相关的一组变量。
(关于切割技术将在第四章结合化工过程模拟系统(序贯模块法)进 行介绍。
方程组切割技术
对切割技术运用得当,可从以下许多方面改善计算效率。
1容易选取初始值,扩大收敛域。往往选取了切割变量的初值后,中间变 量的初值就变得非常容易选取,甚或可直接计算出来。
非线性方程组迭代解法
非线性方程组迭代解法不动点法( unmovepoints.m)%非线性方程组的不动点法function [x,n]=unmovepoints(fun,x0,eps)if nargin<3eps=1e-3;endx1=feval(fun,x0);n=1;while(norm(x1-x0))>=eps x0=x1;x1=feval(fun,x0);n=n+1;if n>100000disp(' 无法收敛!');breakendendx=x1;Newton 迭代法( newtons.m)% 非线性方程组的Newton 迭代法function [x,n]=newtons(fun1,fun2,x0,eps)if nargin<4eps=1e-3;endx1=x0-feval(fun1,x0)/feval(fun2,x0);n=1;while norm(x1-x0)>=epsx0=x1;x1=x0-feval(fun1,x0)/feval(fun2,x0); n=n+1;if n>100000disp(' 无法收敛!');breakendendx=x1;注:方程组的迭代与方程迭代不同之处在于收敛的判断不能用 abs 而应用norm (范数,默认值为向量各元素的平方和的开方;norm(xl-xO)即为向量x1与x0对应元素差的平方和的开方。
在对应的函数程序中应注意向量的运算与数量运算的区别。
)用以上方法求解下列非线性方程组:f 1 X =x 1 - 0.7 sinx ! -0.2cosx 2 =0 f 2 X = x 2 - 0.7 cos% 0.2sinx 2 =0函数:%非线性方程组函数(适用于不动点法) function f=non li nerequsl(x) f(1)=0.7*si n(x(1))+0.2*cos(x (2)); f(2)=0.7*cos(x(1))-0.2*si n(x (2));%非线性方程组函数(适用于Newt on 迭代法) function f=non li nerequs2(x) f(1)=x(1)-0.7*si n(x(1))-0.2*cos(x(2)); f(2)=x (2)-0.7*cos(x(1))+0.2*si n(x (2));%非线性方程组函数导数(适用于Newt on 迭代法) function f=non li nerequs3(x) f=[1-0.7*cos(x(1)),0.2*si n(x(2));0.7*si n(x(1)),1+0.2*cos(x(2))];命令:fsolve(@ non li nerequs2,[0.5,0.5])[x,n]=unmo vepo in ts( @non li nerequs1,[0,0],1e-6)[x,n]=n ewt ons(@non li nerequs2, @non li nerequs3,[0,0],1e-6)计算结果:(eps=0.000001)迭代方法X迭代次数n解析解[0.52652262191818 0.50791971903685] - fsolve[0.52652266171295 0.50791973020932] - 不动点法[0.526521300913880.50792028463452] 30 Newton 迭代法[0.526522793690200.50791961189450]16导数为f 2 f 2对多方程则类似。
非线性方程组迭代法
第5章非线性方程(组)迭代法内容5.1 根的搜索5.2 迭代法的构造及收敛性5.3 方程求根的牛顿迭代法5.4 *非线性方程组的迭代法数学物理中许多问题常归结为求解非线性方程或非线性方程组.例如在最优化问题min ()x I F x ∈中,设函数()F x 在区间I 上严格凸并可微,且()()F x f x '=,则求其极小点等价于求解方程()0f x =的根;若()f x 是一个非线性函数,则方程()0f x =是一个非线性方程。
若()0f x =是一个方程组,且其中至少存在一个方程是非线性的,则称方程组是非线性方程组。
本章介绍一些常用的求解非线性方程和非线性方程组近似根的迭代方法。
§5.1 根的搜索⏹ 根的存在性:设函数[](),f x C a b ∈,且()()0f a f b <,则方程()0f x =在区间(),a b 内一定有实根*x ,称[],a b 为方程()0f x =的有根区间。
⏹ 二分法(是搜索方程()0f x =的根的一种计算简单的方法)。
● 基本思想:将有根区间[],a b 用其中点02a b x +=分为两半。
如果0()()0f x f a ⋅>,记 101,a x b b ==,方程的根11*(,)x a b ∈; 如果0()()0f x f a ⋅<,记 110,a a b x ==,方程的根11*(,)x a b ∈。
因此,新的有根区间为[]11,a b ,其长度为112b a b a --=.对有根区间[]11,a b 施行同样的手续,并反复二分下去,得到一系列有根区间[][][][]1122,,,,k k a b a b a b a b ⊃⊃⊃⊃⊃L L其中[],k k a b 的长度为:02k k k b a b a --=→(当k →∞时)。
上述结果表明,如果二分过程无限地继续下去,这些区间最终必将收缩于()0f x =的根x *.只要二分足够多次(即k 充分大),就能保证有2k k k k b a x x b a ε*--≤-≤<。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非线性方程组迭代解法不动点法(unmovepoints.m)%非线性方程组的不动点法function [x,n]=unmovepoints(fun,x0,eps)if nargin<3eps=1e-3;endx1=feval(fun,x0);n=1;while(norm(x1-x0))>=epsx0=x1;x1=feval(fun,x0);n=n+1;if n>100000disp('无法收敛!');breakendendx=x1;Newton迭代法(newtons.m)%非线性方程组的Newton迭代法function [x,n]=newtons(fun1,fun2,x0,eps)if nargin<4eps=1e-3;endx1=x0-feval(fun1,x0)/feval(fun2,x0);n=1;while norm(x1-x0)>=epsx0=x1;x1=x0-feval(fun1,x0)/feval(fun2,x0);n=n+1;if n>100000disp('无法收敛!');breakendendx=x1;注:方程组的迭代与方程迭代不同之处在于收敛的判断不能用abs 而应用norm (范数,默认值为向量各元素的平方和的开方;norm(x1-x0)即为向量x1与x0对应元素差的平方和的开方。
在对应的函数程序中应注意向量的运算与数量运算的区别。
)用以上方法求解下列非线性方程组:()0cos 2.0sin 7.02111=--=x x x X f ()0sin 2.0cos 7.02122=+-=x x x X f函数:%非线性方程组函数(适用于不动点法) function f=nonlinerequs1(x)f(1)=0.7*sin(x(1))+0.2*cos(x(2)); f(2)=0.7*cos(x(1))-0.2*sin(x(2));%非线性方程组函数(适用于Newton 迭代法) function f=nonlinerequs2(x)f(1)=x(1)-0.7*sin(x(1))-0.2*cos(x(2)); f(2)=x(2)-0.7*cos(x(1))+0.2*sin(x(2));%非线性方程组函数导数(适用于Newton 迭代法) function f=nonlinerequs3(x)f=[1-0.7*cos(x(1)),0.2*sin(x(2));0.7*sin(x(1)),1+0.2*cos(x(2))];导数为⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡∂∂∂∂∂∂∂∂22122111x f x f x f xf ,对多方程则类似。
命令:fsolve(@nonlinerequs2,[0.5,0.5])[x,n]=unmovepoints(@nonlinerequs1,[0,0],1e-6)[x,n]=newtons(@nonlinerequs2,@nonlinerequs3,[0,0],1e-6)计算结果:(eps=0.000001)迭代方法X 迭代次数n解析解[0.52652262191818 0.50791971903685] - fsolve [0.52652266171295 0.50791973020932]- 不动点法[0.52652130091388 0.50792028463452] 30 Newton 迭代法[0.52652279369020 0.50791961189450] 16在某操作条件下,有如下四个独立的反应:B A ⇔ DC A +⇔DE A +⇔ CF A +⇔其平衡常数分别为:0.08,0.06,0.001,0.05;反应前只有组分A ,没有其他物质,试求反应平衡时组分A 的摩尔分率为多少? 解:设反应前组分A 的总摩尔数为1,反应平衡后四反应过程分别消耗组分A 的摩尔数为1x 、2x 、3x 、4x ,所以反应平衡时各组分的摩尔数为:A :43211x x x x ----B :1xC :42x x +D :32x x +E :3xF :4x 故有:()011432111=-----=K x x x x x X f ()()()()()0112432432132422=-+++----++=K x x x x x x x x x x x X f ()()()()011343243213233=-+++----+=K x x x x x x x x x x X f()()()()011443243214244=-+++----+=K x x x x x x x x x x X freaction.m%非线性方程组函数(化学平衡,适用于fsolve) function f=reaction(x)f(1)=x(1)/(1-x(1)-x(2)-x(3)-x(4))-0.08;f(2)=(x(2)+x(4))*(x(2)+x(3))/(1-x(1)-x(2)-x(3)-x(4))/(1+x(2)+x(3)+x(4))-0.06; f(3)=x(3)*(x(2)+x(3))/(1-x(1)-x(2)-x(3)-x(4))/(1+x(2)+x(3)+x(4))-0.001; f(4)=x(4)*(x(2)+x(4))/(1-x(1)-x(2)-x(3)-x(4))/(1+x(2)+x(3)+x(4))-0.05; 命令:x=fsolve(@reaction,[0.3,0.2,0.1,0])或x=fsolve(@reaction,[0.3,0.2,0.1,0],foptions) 计算结果:x=[0.0514, 0.1621, 0.0050, 0.1392] 因此组分A 的摩尔分率为:4917.0114324321=+++----x x x x x x xreaction1.m%非线性方程组函数(化学平衡,适用于不动点法) function f=reaction1(x)f(1)=(1-x(1)-x(2)-x(3)-x(4))*0.08;f(2)=(1-x(1)-x(2)-x(3)-x(4))*(1+x(2)+x(3)+x(4))*0.06/(x(2)+x(3))-x(4); f(3)=(1-x(1)-x(2)-x(3)-x(4))*(1+x(2)+x(3)+x(4))*0.001/(x(2)+x(3)); f(4)=(1-x(1)-x(2)-x(3)-x(4))*(1+x(2)+x(3)+x(4))*0.05/(x(2)+x(4)); 其迭代格式为:()4321111x x x x K x ----=()()()43243243212211x x x x x x x x x x K x -++++----= ()()()3243243213311x x x x x x x x x K x ++++----=()()()4243243214411x x x x x x x x x K x ++++----=但该迭代格式无法收敛,所以不同的迭代格式是否收敛有很大不同;要满足迭代收敛则必须满足以下关系:迭代格式:()()()k k X X φ=+1 迭代函数的偏导数矩阵:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂n n n n n n x x x x x x x x x φφφφφφφφφ112221212111 迭代格式收敛的充分条件:111max <∑=≤≤nj ij ni a 或111ma x<∑=≤≤ni ij nj a 或11,2<∑=nj i ij a故在迭代格式的构造上比较困难,在实际应用中若能满足以上条件是最好的;但如果无法构造满足以上条件的迭代格式,那么还可采取如下的方法。
在不动点法中引如松弛因子1<W ,将原迭代格式改为:()()()k k X X φ=+1 ⇒ ()()()()()[]k k k k X X W X X -+=+φ1unmovepoints.m%非线性方程组的不动点法function [x,n]=unmovepoints(fun,x0,eps)if nargin<3eps=1e-3;endx1=feval(fun,x0);n=1;while(norm(x1-x0))>=epsx0=x1;x1=x0+0.1*(feval(fun,x0)-x0);无法收敛时,采用该式迭代,其中0.1为松弛因子<1,可根据具体情况修改%x1=feval(fun,x0);n=n+1;if n>100000disp('无法收敛!');breakendendx=x1;命令:(松弛因子取0.1,其数值不同迭代收敛程度不同,不收敛则降低松弛因子)x=unmovepoints(@reaction1,[0.3,0.2,0.1,0],1e-6)计算结果:x=[0.0514, 0.1621, 0.0050, 0.1392]。