计算方法一元非线性方程求根2.2

合集下载

计算方法21-非线性方程

计算方法21-非线性方程

区间,如此反复,直到求出满足精度要求的近似根.
具体步骤如下:
10
令 (a, b) (a0 , b0 )
取a0 , b0 中点 x0
a0 b0 2
将其二分,
这时有三种情况: 若 f x0 0 , 则 x x0 ; 否则, x f a f x 0 , 则 a , x0 , 令 a1 a , b1 x0 ; 若 0
1 1 b2 a2 (b1 a1 ) 2 (b a ) , 2 2 ba bk ak k 2
ak bk 区间 ak , bk 的中点 xk 形成一个序列 x0 , x1 ,, xk ,, 2
显然有 lim x k x .
k
13
实际计算中,对于给定的根的允许误差 0 ,
5
求方程根的近似值,需要解决的问题:
⑴ 根的存在性. ⑵ 根的隔离. 要判断方程有没有根,有几个; 找出有根区间,使得在较小的区间内
方程只有一个根,以得到根的近似值.
⑶ 根的精确化. 利用合适的数值计算方法,逐步 把根精确化,直至满足精度要求.
6
二、逐步搜索法
假设f(x)在有根区间[a,b]单值连续,且f(a)<0.
一般步骤:
取合适的步长
y
ba h , n
f(x) 0 a x* b x
从x0=a出发,按步长逐步向右跨进行搜索,
若发现f(xk)与f(a)异号,则确定一个缩小的有根区间
[ xk 1 , xk ], 其宽度等于步长h.
特别地,若f(xk)=0,则xk就是所求的根.
7
例 对方程f (x)=x3-x-1=0 搜索有根区间.
12

非线性方程求根

非线性方程求根
得到一个迭代序列: x0,x1,x2,. . . ,xn,. . .
几何含义:求曲线 y = (x) 与直线 y = x 的交点
18:28:03
Numerical Analysis
9
y p0 x0 y
18:28:03
y=x
p1
y= (x)

y p0
y=x

p1 y= (x)
x x1 x2 x*
x0
(x) ( y) L x y
则(x) 在 [a,b] 上存在唯一的不动点 x*
证明:P216
18:28:03
Numerical Analysis
12
收敛性分析
不动点迭代的收敛性
定理:设 (x) C[a,b] 且满足
(1) 对任意的 x[a,b] 有 (x)[a,b]
(2) 存在常数 0<L<1,使得任意的 x, y[a,b] 有
for k = 1 : n x = g(x); fprintf('k=%2d, x=%.7f\n',k,x); if abs(x-xt)<tol, break, end
end xt = fzero(f,[3,4]);
fprintf('True solution: x = %.7f\n', xt)
% Steffenson 加速
性质:若
lim
k
xk
x *,则不动点迭代收敛,且 x*
是 f(x)=0 的解;否则迭代法发散。
18:28:03
Numerical Analysis
11
解的存在唯一性
解的存在唯一性
定理:设 (x) C[a,b] 且满足

非线性方程求根的方法简介与例题

非线性方程求根的方法简介与例题

非线性方程求根的方法简介与例题第一篇:非线性方程求根的方法简介与例题非线性方程f(x)=0求根主要可以采用下面三种方法,下面简单介绍下,并附例题,让解法更一目了然。

1)二分法简介:计算步骤如下:例题:2)不动点迭代,也叫简单迭代。

隐式化为显式,迭代法是一种逐次逼近法;其中f(x)'<1才能满足上述迭代格式。

继续迭代。

3)牛顿迭代法,实际上也叫切线法,是通过下面的方式推导出来的。

上述题目很简单,用牛顿法迭代就可以达到目的。

我们先设f(x)=x-cosx=0由公式得x=x0-x-cosx1+sinx0我们用二分法的原理,我们取x得x1=π,=x0-x0-cosx01+sinx0x1-cosx11+sinx1x2-cosx21+sinx2=π-π+11=1 x2=x1-=1-1-cos11+sin1=0.9998x3=x2-=1-1-cos0.99981+sin0.9998=0.9998x3=x2,并具有四位有效数字,所以只需迭代两次就可以达到题目所需的精度要求第二篇:非线性方程迭代上机作业总体要求:1. 2.开发语言可用任一种高级语言作业包括1)一份实验报告2)电子版作业的全套(压缩后提交在Webcc上),包括:⌝程序源代码;⌝可执行程序;⌝电子版实验报告(内容包括:一、实验目的二、模型建立三、模型求解 3.1 开发环境3.2 程序设计说明(要求设计为通用的)3.3 源代码 3.4 程序使用说明 3.5 模型的解四、小结(可含个人心得体会))第六章逐次逼近法§ 3 非线性方程的迭代解法上机实验题求 x5-3x3+x-1= 0 在区间[-8,8〕上的全部实根.试分别用:(1)二分法;(2)Newton法;(3)弦截法(割线法);(4)Newton下山法;求方程的根.准确到6位有效数字.要求:讨论求解的全过程,对所用算法的局部收敛性,优缺点等作分析及比较.以实验报告的形式提交.完成时间:5月18日第三篇:非线性方程的数值解法《计算方法》期末论文论文题目非线性方程的数值解法学院专业班级姓名学号指导教师日期目录摘要第1 章绪论1.1 问题的提出和研究目的和意义 1.2 国内外相关研究综述 1.3 论文的结构与研究方法第2 章非线性方程的数值解法2.1 二分法 2.2 迭代法2.3 迭代法的局部收敛性及收敛的阶 2.4 牛顿迭代法 2.5 牛顿法的改进 2.6 插值摘要数值计算方法,是一种研究解决数学问题的数值近似解方法,它的计算对象是那些。

第1章 非线性方程迭代解法

第1章 非线性方程迭代解法

ba xk x k 1 2 1 1 k 0.05 2 10 k 1 2 20 k log 2 10 3.3219

K 4
二分法的特点
优点: 总可以保证收敛,不会增根。 缺点: 只能对单个根的情况求解,无法求多根。 收敛速度较慢,计算量较大。 因此,先画图,找到根大致范围;再划分为 较小隔根区间;最后采用二分法,精确求根, 是求解简单非线性问题的有效途径。
改进:二分法
3) 二分法
思想:逐步缩小隔根区间,而逼近精确根。 方法:

ab ), 计算中点 f ( 2
若有隔根区间[a,b],则f(a)*f(b)<=0,
ab ab f ( ) f ( a ) 0 ]为新隔根区间 若 ,则 [a, 2 2 ab [ , b] 为新的隔根区间。 反之, 2

非线性问题的处理思路
非线性问题的处理思路: 作图——根存在的范围 隔根区间——单个根存在范围 二分法——精确求根 为加快求根速度: 迭代法取代二分法,其它部分不变

2. 迭代法原理

主要内容: 1) 基本原理 2) 迭代有效性的判断 3) 迭代的加速技巧
1) 迭代法基本原理
0.5
0
2
4
6
8
10
12
14
16
18
迭代次数 n
迭代的绝对误差限
0.07 0.06
误差限
0.05
0.04
0.03
0.02
0.01
0
0
2
4
6
8
10
12
14
16
18
迭代次数 n
迭代公式φ一阶导数

非线性方程求根

非线性方程求根

C k p 1 C k x1 x0
C k 1 C p Ck x1 x0 x1 x0 1 C 1 C
由p的任意性,令


p
Ck x * xk x1 x0 1 C
证毕
g ' ( x*) 0 g ( x) g ( x*) ( x x*)g ' ( x*) ( x x*)2 g ' ' ( x*) 2 g ( xk ) g ( x*) g ' ' ( k )( xk x*)2 / 2 || ek 1 || lim g ' ' ( x*) / 2 2 k || e || k
e x cos( x) 0
因此,除极少数情况外,没有类似于解一元二次方程的求根公式或类似于解线性方 程组的直接解法。通常我们用迭代法解非线性方程。
非线性方程(组)的求解方法是从一个初始近似解出发,重复某种计算 过程来不断改进似解,类似于解线性方程组的迭代法。期望在有限次改进 后,能计算出一个满足误差要求的近似值。这种不断改进近似解的过程称 为迭代过程,这种求解方法称为迭代法。 为了保证迭代过程能进行下去,近似解向准确解收敛,要求迭代法有好 的迭代公式,好的初始解。在选择迭代法时要考虑计算效率和数值稳定性。
Newton迭代法
将f(x)在初值处作Taylor展开
f ' ' ( x0 ) f ( x) f ( x0 ) f ' ( x0 )( x x0 ) ( x x0 ) 2 2!
取线性部分作为f(x)的近似,有:
f ( x0 ) f ' ( x0 )( x x0 ) 0

计算方法第2章 非线性方程求根

计算方法第2章 非线性方程求根

double f(double x) {return(……); /*计算并返回函数值f(x)*/ }
7
2.3 根的搜索
二、变步长逐步搜索法 用逐步搜索法求根,当h远小于(b-a)时,往往需要很多步搜索。
变步长逐步搜索法是对这一缺陷的改进。
主要步骤为:
① 取较大步长,以较少步数搜索整个有根区间。若一步迈过的子区 间边界处为根,则算法结束;若根在某一步迈过的子区间内,则把这 个更小的子区间作为新的有根区间。 ② 若步骤①得到的有根区间足够小,则取此区间的中点为近似根, 算法结束;否则,缩小步长,以上一步得到的新的更小的有根区间作 为搜索对象,重复执行步骤①。
1 ∴误差限≤ 2 ×10-3,
∴由定理2.1得:
0.301 3 lg(1 0) lg( 1 103 ) 0 ( lg 2 3) 2 1 = 1 = n= 1= 10.97 1 lg 2 lg 2 0.301
10
2.4 对分法
对分法的主要思想
对分法(二分法,区间分半法)是一种特殊的变步长逐步搜索法。
对分法每一轮搜索的步数为2,即每一轮都是2步搜索完整个待搜索的 有根区间,使有根区间的大小减为上一轮有根区间大小的一半。
主要步骤为:
① 计算当前有根区间中点处的函数值。若函数值为0,则此点为函数 零点,算法结束;否则,判断中点处函数值与区间哪一侧端点处函数 值异号,异号的一侧为新的有根区间。中点成为新的端点,使有根区 间缩小一半。 ② 若步骤①得到的有根区间足够小,则取此区间的中点为近似根, 算法结束;否则,对新的有根区间,重复执行步骤①。
2h
5
2.3 根的搜索
逐步搜索法的算法

非线性方程求根

非线性方程求根

第二章非线性方程求根线性方程是方程式中仅包含未知量的一次方项和常数项的方程,除此之外的方程都是非线性方程(nonlinear equation). 例如,大家熟知的“一元二次方程”就是一个非线性方程. 多元线性方程组的求解是数值计算领域的一个重要问题,在后续几章将专门讨论. 本章介绍求解非线性方程的数值方法,主要针对实数域,重点是单个非线性方程的求根问题.2.1引言2.1.1非线性方程的解记要求解的单变量非线性方程为f(x)=0(2.1)其中函数f: ℝ→ℝ. 一般而言,非线性方程的解的存在性和个数是很难确定的,它可能无解,也可能有一个或多个解.例2.1 (非线性方程的解):分析下列非线性方程的解是否存在和解的个数.(1) e x+1=0. 此方程无解.(2) e−x−x=0. 此方程有一个解.(3) x2−4sinx=0. 此方程有两个解.(4) x3−6x2+5x=0. 此方程有三个解.(5) cosx=0. 此方程有无穷多个解.在实际问题中,往往要求的是自变量在一定范围内的解,比如限定x∈[a,b]. 函数f一般为连续函数,则可记为f(x)∈C[a,b],C[a,b]表示区间[a,b]上所有连续实函数的集合. 假设在区间[a, b]上方程(2.1)的根为x∗,也称x∗为函数f(x)的零点. 方程的根可能不唯一,而且同一个根x∗也可能是方程(2.1)的多重根.定义2.1:对光滑函数f,若f(x∗)=f′(x∗)=⋯=f(m−1)(x∗)=0,但f(m)(x∗)≠0,则称x∗为方程(2.1)的m重根. 当m=1时,即f(x∗)=0,f′(x∗)≠0时,称x∗为单根.对于多项式函数f(x),若x∗为m重根,则f(x)可因式分解为f(x)=(x−x∗)m g(x)其中g(x)也是多项式函数,且g(x∗)≠0. 很容易验证,f(x∗)=f′(x∗)=⋯=f(m−1)(x∗)=0,但f(m)(x∗)≠0,即多项式方程重根的概念与定义2.1是一致的. 对一般的函数f,x∗是方程(2.1)的重根的几何含义是,函数曲线在x∗处的斜率为0,且在该点处与x轴相交.非线性方程的一个特例是n次多项式方程(n≥2),根据代数基本定理可知,n次方程在复数域上有n个根(m重根计为m个根). 当n=1, 2时,方程的求解方法是大家熟知的. 当n=3, 4时,虽然也有求根公式,但已经很复杂,在实际计算时并不一定适用. 当n≥5时,不存在一般的求根公式,只能借助数值求解方法来求根.2.1.2问题的敏感性根据问题敏感性的定义,这里需要考虑输入数据的扰动对方程的根有多大影响. 要分析敏感性首先应假设问题中的数据如何扰动,一种易于分析的情况是将非线性方程写成:f(x)=y的形式,然后讨论y在0值附近的扰动造成的问题敏感性. 此时,求根问题变成了函数求值问题:y =f (x )的反问题. 若函数值f (x )对输入参数x 不敏感(x 在解x ∗附近变化),则求根问题将很敏感;反之,若函数值对参数值敏感的话,求根则不敏感. 这两种情况如图2-1所示.下面分析y 发生扰动Δy 引起的方程的根的扰动Δx . 由于当x =x ∗时,y =0,我们使用绝对(而不是相对)条件数:cond =|Δx |≈1|| 条件数的大小反映方程求根问题(2.1)的敏感程度,若|f ′(x ∗)|很小,则问题很敏感,是一个病态问题;反之,若|f ′(x ∗)|很大,则问题不敏感.一种特殊情况是f ′(x ∗)=0,即x ∗为重根,此时求根问题很敏感,原问题的微小扰动将造成很大的解误差,甚至改变解的存在性和唯一性(如图2-2,问题的扰动可能使解不存在).对于敏感的非线性方程求根问题,f (x )≈0并不意味着x 很接近x ∗,在后面讨论迭代解法的判停准则时应注意这一点.2.2二分法数值求解非线性方程通常是一个迭代的过程,迭代开始之前要先有个初始的近似解,然后随着迭代步数的增多,近似解越来越接近准确解,当达到一定要求时即停止计算过程. 本节先介绍一种最基本的方法——二分法(interval bisection method).2.2.1 方法原理先介绍有根区间的概念,有根区间就是包含至少一个根的区间,它限定了根存在的范围. 如果能计算出一个非常小的有根区间,那么区间的中点就是一个很好的近似解. 下面的定理给出了有根区间的充分条件.定理2.1:若f (x )∈C[a,b],且f (a )f (b )<0,则区间(a,b )内至少有一实根.这里省略定理证明过程,只给出图2-3作为一个解释.定理2.1给出了一种获得有根区间的方法,即通过看f (a )、f (b )两个值是否符号相反来判断(a, b)是否为有根区图2-1 方程求根问题的敏感性:(a)不敏感;(b)敏感.(a) (b)图2-2 f . 图2-3 若f (a )f (b )<0,则在区间(a,b )内至少有一实根.间. 在实际操作时,可在一个较大的范围内取多个点计算f(x)函数值,从而得到一个或多个有根区间. 另外应注意,根据定理2.1得到的有根区间内不一定只有一个根,这从图2-3也可以看出.二分法的思想很简单,就是每次将有根区间一分为二,得到长度逐次减半的区间序列{(a k,b k)},则区间中点x k=(a k+b k)2⁄就是第k步迭代的近似解. 具体算法如下:算法2.1:二分法输入:a, b, 函数f(x) ; 输出:x.While(b−a)> εdox:= a+(b−a)/2;If sign(f(x))=sign(f(a))thena:= x;Elseb:= x;EndEndx:= a+(b−a)/2.在算法2.1中,sign()表示取符号的函数,而二分迭代结束的条件为有根区间(a, b)的长度小于某个阈值ε. 应注意,浮点运算中几乎不可能出现等于0的情况,所以sign()函数的结果只是正号、或负号.假设二分法得到的有根区间序列为{(a k,b k),k=0,1,⋯},若取解x k=(a k+b k)2⁄,则误差|x k−x∗|<(b k−a k)2⁄=(b0−a0)2k+1⁄,k=0,1,2,⋯.(2.2) 根据公式(2.2)和对解的准确度的要求,也可以事先估算出二分迭代执行的次数,以及相应的计算量. 这里每步迭代的计算量主要是计算一次函数f(x k).例2.2(二分法):求方程f(x)=x4−x−2=0在区间[1.0, 1.5]上的一个实根,要求准确到小数点后第2位(四舍五入后).[解] 首先验证(1.0, 1.5)是否是一个有根区间,易知f(1.0)<0,f(1.5)>0. 所以将(1.0, 1.5)作为二分法的初始区间. 利用(2.2)式我们可以估计,若(b−a)2k+1⁄≤0.5×10−2(2.3) 则|x k−x∗|<0.5×10−2,即结果准确到了小数点后第2位. 代入a=1.0, b=1.5,求解(2.3)得,k≥log20.50.5×10−2−1=5.6取最小的整数值k=6. 只需二分6次,可得到满足精度要求的解. 计算过程中的数据和结果列于表2-1. 从中看出,准确到小数点后两位的解为x=1.356(准确解为1.353210).表2-1 采用二分法求解例2.2的过程和结果2.2.2 算法稳定性和结果准确度算法的稳定性考察的是计算过程中的误差对结果的影响. 对于二分法来说,主要的计算步骤是计算函数值,一般采用双精度浮点数计算函数值的误差很小,而其他计算是少量的加减法,因此不至于对有根区间,以及最终结果的准确度造成多大影响. 另外,在计算过程中解的误差限逐次减半,这也说明二分法是稳定的.在实际的浮点算术体系中,二分法运行结果的准确度不可能随迭代过程一直提高. 首先看一个例子.例 2.3(二分法准确度的极限):编写程序用二分法来求解方程f(x)=x2−2=0,初始区间为[1, 2].下面是用MATLAB语言编写的程序:M =2; a = 1; b= 2; k = 0;while b-a > eps //Matlab中的eps为2倍的机器精度,即2− 2 x = a + (b-a)/2;if x^2 > Mb = x //输出belsea = x //输出aendk = k+1;end这个程序执行了52步就结束了,输出结果如下:b = 1.50000000000000a = 1.25000000000000a = 1.37500000000000b = 1.43750000000000………………a = 1.41421356237309a = 1.41421356237309b = 1.41421356237310b = 1.41421356237310为了看得更清楚,输入MATLAB命令”format hex”,使输出按16进制格式显示,再运行一遍上述程序,最后的四个输出结果为:a = 3ff6a09e667f3bc8a = 3ff6a09e667f3bccb = 3ff6a09e667f3bceb = 3ff6a09e667f3bcd可以看出,最终区间(a, b)的两个端点已经是两个相邻的浮点数,即使让二分过程继续执行下去,区间仍然不会改变(由于a和b平均值的计算结果就是其中的某一个). 也就是说迭代再多的次数,结果的准确度也无法提高了.上述例子说明了二分法结果准确度的极限情况. 一般地,二分法迭代过程中,有根区间缩小的极限情况是使它的端点a k, b k为两个相邻的机器浮点数. 此时,b k−a k=2⌊log2|x∗|⌋∙2εmacℎ其中εmacℎ为机器精度,⌊∙⌋为下取整符号,而2⌊log2|x∗|⌋为x∗的二进制表示中指数的那部分. 在这种极端情况下,解的误差限就是区间长度,即|e(x k)|=|x k−x∗|≤2⌊log2|x∗|⌋∙2εmacℎ .(2.4) 在IEEE双精度浮点数系统下,εmacℎ=2− 3,则|e(x k)|≤2⌊log2|x∗|⌋∙2εmacℎ≤|x∗|∙2− 2≈|x∗|∙2.22×10−16 .根据(2.4)式,也可得到相对误差的上限:|e r(x k)|=|x k−x∗||x∗|≤2εmacℎ .(2.5)这个相对误差限正好是计算机中用浮点数表示实数的误差限(定理1.5)的两倍.公式(2.4)给出了用二分法求解时绝对误差限可能达到的最小值,它说明在准确解较大的情况下,在执行二分法时无论迭代多少次都无法保证解的误差非常小. 综合上述讨论以及公式(2.2),得到如下定理.定理2.2:在实际的浮点算术体系下采用二分法解方程f(x)=0,设初始有根区间为(a, b),则:(1) 结果的误差限最小可达到2⌊log2|x∗|⌋∙2εmacℎ,其中x∗为准确解,相对误差限最小可达2εmacℎ.(2) 若误差阈值ε大于或等于2⌊log2|x∗|⌋∙2εmacℎ,需执行的迭代步数为k=⌈log2(b−a)−1⌉ .(2.6)定理2.2的结论(2)的证明留给读者思考.最后,对二分法说明几点:●二分法是求单变量方程f(x)=0的实根的一种可靠算法,一定能收敛.●二分法解的误差不一定随迭代次数增加一直减小,在实际的有限精度算术体系中,误差限存在最小值.●二分法的缺点是有时不易确定合适的初始有根区间(含两个初始值)、收敛较慢、且无法求解偶数重的根. 因此,实际应用中常将二分法与其他方法结合起来.2.3不动点迭代法二分法的计算效率不够高,在本章后续部分将介绍几种应用广泛、收敛较快的迭代法. 本节介绍不动点迭代法及其收敛性理论,为后续其他方法的讨论建立基础.2.3.1基本原理通过某种等价变换,可将非线性方程(2.1)改写为:x=φ(x)(2.7)其中φ(x)为连续函数. 给定初始值x0后,可构造迭代计算公式:x k+1=φ(x k),(k=0,1,⋯)(2.8) 从而得到近似解序列{x k}. 由于方程(2.1)和(2.7)的等价关系,很容易证明若序列{x k}收敛,其极限必为原方程(2.1)的解x∗. 由于解x∗满足x∗=φ(x∗),称它为函数φ(x)的不动点(fixed point),此方法为求解非线性方程(2.1)的不动点迭代法(fixed-point iterative method).不动点迭代法的求解过程如图2-4所示,而算法描述图2-4 采用不动点迭代法,近似∗在下面给出.算法2.2:基于函数φ(x)的不动点迭代法输入:x 0, 函数f (x ), φ(x) ; 输出:x .k:= 0 ;While |f (x k )|> ε1 或|x k −x k−1|> ε2 dox k+1:=φ(x k ) ;k:= k +1 ;Endx:= x k .其中ε1和ε2为用于判断迭代是否应停止的两个阈值. 关于迭代的判停准则,我们在2.4.3节详细讨论.例 2.4(不动点迭代法):求f (x )=x 4−x −2=0在x 0=1.5附近的根. 以不同的方式得到方程的等价形式,研究相应的不动点迭代法的收敛情况.[解] 将原方程改为等价的(A), (B)两种形式,得到下述两种不动点迭代法.方法(A):将方程改写为x =x 4−2. 得到的迭代法计算公式为:x 0=1.5, x k+1=x k 4−2,(k =0,1,⋯). 计算出结果如下:x 1=1.54−2=3.0625,x 2=2.3753−1=85.9639,… …从上述计算结果看,序列{x k }有趋于无穷大的趋势,迭代法不收敛,无法求出近似解. 方法(B):将方程改写为x =√x +24. 得到的迭代法计算公式为:x 0=1.5, x k+1=√x k +24,(k =0,1,⋯). 计算出结果如下:x 1=√1.5+24=1.3678,x 2=√1.3678+24=1.3547,x 3=√1.3547+24=1.3534,x 4=√1.3534+24=1.3532,x =√1.3532+24=1.3532,从上述计算结果看,x 4和x 前5位有效数字均为1.3532,可认为迭代过程是收敛的,要求的根为1.3532.通过例2.4可以看出,用不同的方式改造原方程,可得到多种不动点迭代法计算过程,其收敛性质也是不同的. 因此,判断一个不动点迭代法是否收敛至关重要.2.3.2全局收敛的充分条件下面的定理给出一个函数存在唯一不动点的充分条件.定理2.3:设φ(x)∈C[a,b],若满足如下两个条件:(1)对任意x ∈[a,b],有a ≤φ(x)≤b ,(2)存在正常数L ∈(0,1),使对任意x 1,x 2∈[a,b],|φ(x 1)−φ(x 2)|≤L |x 1−x 2|则φ(x)在[a,b]上存在不动点,且不动点是唯一的.在证明定理之前,先理解一下定理中两个条件的含义. 首先,采用不动点迭代法的计算公式为x k+1=φ(x k ), k =0, 1, 2, …,因此要使后续迭代步的计算合法,必须要求φ(x k )的值在函数的定义域内,(1)的条件保证了这一点. 其次,(2)中新加的条件表明,φ(x)曲线上任两点连线斜率的绝对值不超过L ,当两点非常靠近时它就是导数,因此φ(x)曲线上任意点的切线斜率的绝对值都小于1,这说明φ(x)曲线变化很平缓,在曲线上任意点处的斜率都比y =x 和y=−x两条直线小. 这个条件也称为L<1的李普希兹(Lipschitz)条件,L为李普希兹系数. [证明] 先证明不动点的存在性,分两种情况:1). 若φ(a)=a,或φ(b)=b,则a或b为不动点;2). 若φ(a)≠a且φ(b)≠b,则φ(a)>a,φ(b)<b. 令f(x)=φ(x)−x,则f(x)为连续函数,且f(a)>0,f(b)<0.根据连续函数性质,必有x∗∈(a,b),使f(x∗)=0,即φ(x∗)=x∗,x∗为不动点.再证明唯一性,采用反证法. 假设有两个不同的不动点x1∗,x2∗∈[a,b],它们满足φ(x1∗)=x1∗,φ(x2∗)=x2∗,x1∗≠x2∗ .根据(2)中的条件推出,|x1∗−x2∗|=|φ(x1∗)−φ(x2∗)|≤L|x1∗−x2∗|<|x1∗−x2∗| .产生矛盾!所以假设x1∗≠x2∗不成立,不动点是唯一的.应说明的是,上述证明不动点的存在性只使用了条件(1). 事实上,通过画函数曲线图的方式也可以形象地说明不动点的存在性,这一点留给感兴趣的读者思考.下面的定理给出不动点迭代法收敛的充分条件.定理2.4:设φ(x)∈C[a,b]满足定理2.3的两个条件,则对于任意初值x0∈[a,b],由不动点迭代法得到的序列{x k}收敛到φ(x)的不动点x∗,并有误差估计:|x k−x∗|≤L k1−L|x1−x0| .[证明] 首先注意到定理条件保证了不动点唯一存在,而且条件(1)保证了不动点迭代法可执行下去,从而得到序列{x k}. 下面证明序列{x k}收敛,其思路是考虑误差序列,证明其极限为0.|x k−x∗|=|φ(x k−1)−φ(x∗)|≤L|x k−1−x∗|≤⋯≤L k|x0−x∗|由于L为小于1的正常数,则lim k→∞L k|x0−x∗|=0,⟹limk→∞|x k−x∗|=0, ⟹limk→∞x k=x∗.这证明了不动点迭代法是收敛的. 剩下|x k−x∗|≤L k1−L|x1−x0|的证明,留给读者思考.定理2.4为判断不动点迭代法的收敛性提供了依据,这种收敛不依赖于初值x0的选取,因此称为全局收敛性. 为了方便应用,也可以将定理2.3, 2.4中的第2个条件替换为:对任意x∈[a,b],有|φ′(x)|≤L<1,其中L为常数,得到便于使用的定理2.5.定理2.5:设φ(x)∈C[a,b],且满足如下两个条件:(1)对任意x∈[a,b],有a≤φ(x)≤b;(2)存在正常数L<1,使对任意x∈[a,b],有|φ′(x)|≤L<1.则对于任意初值x0∈[a,b],由不动点迭代法得到的序列{x k}收敛到φ(x)的不动点x∗,并有误差估计:|x k−x∗|≤L k1−L|x1−x0| .此定理可看成定理2.4的推论,其证明留给读者思考.例2.5(不动点迭代法的收敛性):对于求f(x)=x4−x−2=0在x0=1.5附近的根的问题,使用定理2.5考察例2.4中两种方法的全局收敛性.[解]在区间[1, 2]上考察如下两种不动点迭代法的收敛性:方法(A):x k+1=x k4−2, (k=0,1,⋯).方法(B):x k+1=√x k+24, (k=0,1,⋯)很容易看出,方法(B)符合定理中的条件(1),而φ′(x)=14(x+2)−3/4,也符合条件(2),因此方法(B)具有全局收敛性. 而对于方法(A),它不符合定理中的条件(1),因此无法根据定理2.5说明其具有全局收敛性.关于全局收敛性再说明两点:●定理2.4, 2.5给出的都是不动点迭代法全局收敛的“充分条件”,也就是说,对一些满足条件的方法可以证明其具有全局收敛性,但根据它们并不说明某个方法不具有全局收敛性.●全局收敛性要求初始值x0为定义域内任意值时不动点迭代法都收敛,这常常是很难达到的要求.2.3.3局部收敛性不同于全局收敛性,下面给出重要的局部收敛性的概念.定义2.2:设函数φ(x)存在不动点x∗,若存在x∗的某个邻域D: [x∗−δ,x∗+δ],对于任意初值x0∈D,迭代法x k+1=φ(x k)产生的解序列{x k}收敛到x∗,则称迭代法局部收敛.这个定义中的邻域是以x∗为中心点的一个对称区间,局部收敛性的定义要求的是存在这样一个邻域,而不关心它的大小. 下面的定理给出迭代法局部收敛的充分条件.定理2.6:设x∗为函数φ(x)的不动点,若φ′(x)在x∗的某个邻域上连续,且|φ′(x∗)|<1,则不动点迭代法x k+1=φ(x k)局部收敛.[证明] 因为φ′(x)在x=x∗附近连续且|φ′(x∗)|<1,则存在x∗的某个邻域D,使得对于任意. 显然L<1, 的xϵD, |φ′(x)|≤L, 其中L是某个介于|φ′(x∗)|和1之间的数, 例如L=|φ′(x∗)|+12即满足定理2.5的条件(2). 另外,对∀x∈D,φ(x)−x∗=φ(x)−φ(x∗)=φ′(ξ)(x−x∗), ξ∈D, ⟹|φ(x)−x∗|≤L|x−x∗|<|x−x∗|, 即φ(x)∈D,满足定理2.5的条件(1).因此,根据定理2.5,此迭代法对区间D内的任意初值都收敛,根据定义2.2知,此迭代法局部收敛.对比定理2.6和定理2.4、2.5可以看出,定理2.6的条件较为宽松,它只需要考察函数φ(x)在x∗这一点上是否满足要求. 因此,不动点迭代法较容易具有局部收敛性,对局部收敛的判断也相对简单.最后说明一点,定理2.5说明李普希兹系数L越小迭代收敛的速度越快,而定理2.6的证明过程说明了L与|φ′(x∗)|的关系. 因此,若|φ′(x∗)|越小,迭代收敛的速度就越快.2.3.4稳定性与收敛阶与二分法类似,不动点迭代法的每步计算都可以通过判停准则(包括考察f(x k)是否接近0)来评估解的准确度,因此解的误差容易被及时发现和纠正. 只要迭代过程是收敛的,误差将随迭代步的增加逐渐趋于零,而不会像某些算法的舍入误差会随迭代过程逐渐累积. 因此收敛的不动点迭代法总是稳定的. 在本章后续算法的讨论中,我们将不再关心稳定性,而将重点放在收敛性的讨论上.对于收敛的迭代法,其收敛速度的快慢也很重要,它关系到达到特定的准确度需要多少步迭代,也就是需要多少计算量. 下面先看一个例子,然后给出收敛阶的概念用于衡量迭代收敛的速度.例2.6(迭代收敛速度):假设有(1)~(3)三个迭代求解过程,其迭代解的误差|e(x k)|=|x k−x∗|随迭代步变化情况分别为:(1) 10-2, 10-3, 10-4, 10-5, ……。

计算方法非线性方程求根

计算方法非线性方程求根

计算方法非线性方程求根第十章非线性方程求根知识点:求根的基本概念,对分法,迭代法,误差,编程停机判断,算法说明1.概念(1)根的概念方程f(x)=0的解叫做方程的根或f(x)的零点。

例如x-cosx=0,x-e x=0求方程的根是数值计算的任务之一,当不易求得f(x)=0的解析解时,可以考虑求其近似根。

求实根问题包括:根的存在性;根的分布;根的精确化.(2)根的存在性如果f(x)是[a,b]上的连续函数,且f(a) f(b)<0,则f(x)=0在(a,b)至少有一个根;若单调,则f(x)=0在(a,b)有惟一根。

(3)根的分布若有根区间的根多于一个,为了得到根的数值解,可以将该有根区间分割若干个子区间,使每个子区间只包含f(x)=0的一个根,这个过程称根的隔离,每个子区间称为隔根区间。

一般情形下,隔根区间内任一点都可作为相应根的近似值,隔根区间越小,近似程度越好。

(4)根的精确化在隔根区间内得到方程f(x)=0相应根的初步近似值后,为使近似值程度更好、符合预先期望,通常应继续逐步精确化根的近似值,直到满足规定的精度要求为止。

精确化方法有很多,常见的有二分法,迭代法等。

2.二分法二分法是利用隔根区间的两个端点来逐步求得满足预先给定精度的近似根。

(1)基本思想对分有根区间,判断f(x)的符号,逐步将有根区间缩小,使得在足够小的区间内取得满足预先给定精度要求的近似值。

(2)具体做法设区间[a,b]为有根区间,记α是f(x)=0在(a,b)的惟一根,二等分区间[a,b]。

令x0=(a+b)/2,如果f(x0)=0,则求得实根α=(a+b)/2。

否则,若f(a)f(x0)<0,则α∈[a,x0],取a1=a,b1=x0;若f(b)f(x0)<0,则α∈[x0,b],取a1=x0,b1=b。

在新的有根区间上重复二等分过程,得有根区间套序列[a,b]? [a1,b1]? [a2,b2] ?…? [a k,b k] ?…b-a>b1-a1>b2-a2>…>b k-a k…,a k≤α≤b k其中每个区间为前一个区间的一半,经过k次二分后,有根区间的长度为如此无限二等分区间[a,b](k→∞)有b k- a k→0(k→∞)或lim a k=lim b k=α(k→∞)。

第2章非线性方程求根

第2章非线性方程求根

y
y=x
p1
x (x)
p0

y
x (x)
p0
y=x
p1
x
x0
x1
x
x0 x1
说明在根 附近,曲线的切线不能太陡! 17
例2.2.1 求方程 f (x) x3 x 1 0 在x0 1.5附近的根.
解 (1) 将方程改写为 x 3 x 1
由此建立迭代公式 xk1 3 xk 1 得
k0 1
(Lp1
Lp2
...1) |
xk 1
xk
|
1 1 L
|
xk 1
xk
|,
令p ,得
|
xk
|
1 1 L
|
xk 1
xk
|.
因而可通过检查 | xk1 xk | 来判断迭代过程应否终止。
24
例2.2.3 求 f (x) 9x2 sin x 1 0 在[0,1]内的一个根。
解 由于 f (0) 1 0,
(bk 1
ak1)
...
1 2k
(b
a).
因此,当
k
足够大时,我们可以用
xk
ak
bk 2
作为函数
f (x)的一个根 的近似值。
此时有误差估计:
xk
bk ak 2
ba. 2k 1
常用来估计k的值
9
四、算法的优点与缺点
优点:计算简单且必收敛,是一种可靠的算法;对函数性质要 求低,只要求函数f(x)连续就可以了。
(2). 若 f (x0 ) f (a) 0,则令a1 a,b1 x0; 若 f (x0 ) f (b) 0,则令a1 x0,b1 b.

一元非线性方程的解法

一元非线性方程的解法

2.1 二分法
基本假设 : 在闭区间 [a,b] 上, f (x) 连续且 f (a) f (b) 0
2.1.1 二分法的计算步骤
常用终止原则为:
当计算到bk
ak

2
时终止计算, 取
~x

1 2
ak
bk
2.1.2 二分法的收敛性与事前误差估计
因为 bk
ak

1
2 bk1
f (x)=0 在 内的唯一根。
证 反设存在 ~x , ~x x且 f (~x ) 0,即 ~x g(~x )
则 0 | ~x x || g(~x ) g(x ) |
L| ~x x || ~x x |
矛盾。所以结论成立。 2) 迭代函数在 x* 附近李普希兹连续从而收敛的
(2 4)
| xks xks1 | L| xks1 xks2 | Ls | xk xk1 |
注 虽然定理2.1的条件是充分条件,但其条件 并不很强,实际上,我们易证如下命题。
命题2.2 若在区间 [a,b] 内 g[x] 1 ,则对任
何 x0 [a,b],迭代格式 xk1 g(xk ) 不收敛。
2.2.3 迭代法的误差估计
| xk1 xk | L| xk xk1 | (k 1,2,)
2.2 一般迭代法
2.2.1 迭代法的算法思想
对 f (x) 0
(2 2)
迭代法的算法思想为:
(1) 把(2-2)等价变换为如下形式
x g(x)
(2 2)
从而 x g (x ) , x* 称为 g(x) 的不动点
(2) 建立迭代格式
xk 1 g ( xk )

一元非线性方程的解法

一元非线性方程的解法

第2章 一元非线性方程的解法2.1初始近似根的确定在工程和科学技术领域中,如电路和电力系统计算、非线性微分和积分方程、非线性规划、非线性力学等众多领域,经常会遇到求解高次代数方程或求解含有指数和正弦函数的超越方程的问题。

高次代数方程和超越方程统称为非线性方程。

对于二次代数方程,可以用熟悉的求根公式。

对于三次、四次代数方程,虽然有求根公式,但并不实用。

而高于四次的代数方程没有求根公式,至于一般的超越方程,更没有求根公式可套。

例如高次代数方程02736=-+-x x x或超越方程 06sin =--xe x π这些方程看似简单,却不易求其准确根。

而在实际问题中,只要能获得满足一定精确度的近似根就可以了,所以研究适用于实际计算的求方程近似根的数值方法,具有重要的现实意义。

本章主要讨论一元非线性方程的数值解法。

设一元非线性方程为0)(=x f )1.2(若有数*x 使0)(=*x f 成立,则称*x 为方程0)(=x f 的根,或称*x 为函数)(x f 的零点。

如果)(x f 能写成)()()(x g x x x f m *-=其中m 是正整数,0)(*≠x g ,则称x *为f x ()=0的m 重根,或称x *为)(x f 的m 重零点;1=m 时,称x *为方程的单根。

求方程的根往往分为两个步骤:()1确定根的初始近似值(称之为初始近似根);()2根的精确化。

已知根的初始近似值,利用某种方法将此近似值逐步精确化,直至满足预先要求的精度为止。

如何求根的初始近似值?由连续函数的性质知: 如果函数)(x f 在区间],[b a 上连续,严格单调,且0)()(<b f a f ,则在],[b a 内方程0)(=x f 有且仅有一个实根(如图1.2)。

根据这一结论,可以采用下面介绍的逐步扫描法来求根的初始近似值。

方程)1.2(的根的分布可能很复杂,一般可用试探的办法或根据函数的图象,确定出根的分布范围,即将函数)(x f 的定义域分成若干个只含一个实根的区间。

数值分析课件第二章_非线性方程求根

数值分析课件第二章_非线性方程求根
*
| xn x || ( xn 1 ) ( x ) |
* *
| ( ) || xn 1 x* |
*
| xn x | L | xn1 x | | xn x | L | x0 x |
* n *
lim | xn x | lim L | x0 x | 0
x*即为不动点。
不动点存在的唯一性证明:
设有 x1*≠ x2*, 使得
* 1 * 2 * 1
(x ) x
* 1
* 1
(x ) x
* 2
* 2
* * 则 | x x || ( x ) ( x ) || ( ) || x1 x2 | * 2
其中,ξ介于 x1* 和 x2* 之间。
由于
计法

Ln xn x * x1 x0 1 L
很难估计,采用事后估
| xn x* |
1 | xn 1 xn || xn 1 xn | ,L大误差大。 1 L
不动点迭代法可以求方程的复根和偶数重根。
例 用不同方法求 x 2 3 0 在x=2附近的根。 解: 格式(1)
则对任意x0 [a, b],由xn+1=(xn )得到的迭代序 列{xn }收敛到(x)的不动点x *,并有误差估计:
1 | xn x | | xn 1 xn | 1 L
*
L xn x * x1 x0 1 L
n
证明:
xn ( xn1 ) * * x ( x )
x0
O
x1
x3 x * x2
x0
y ( x)
发散
y ( x)
O

第4章_非线性方程求根 计算方法

第4章_非线性方程求根   计算方法

解: 从[-4,4]区间以步长为1计算f(x)=x3-3x+1的函数值, 列如下表
4 结束
表2-1
x
计 算 方 法 课 件
-4
-3
-2
-1 3
0 1
1 -1
2 3
3 19
4 53
f(x) -51 -17 -1
可见,在[-2,-1]区间、[0,1]区间、[1,2]区间各有一实根,
下面求[0,1]区间上的实根,列表略: 可见x∊[0.347167968,0.347412109] 若取=0.005,由表可知,当k=13时, bk-ak=0.000244141<0.005,此时过程结束,取 xk=(0.347167968+0.347412109)/2=0.3472900380.347 5 结束
y x y g ( x)
它的解(x*,y *)中的x *就是x=g(x)的根.如图: 图2-3 图2-4 图2-5 10 图2-6 结束
计 算 方 法 课 件
不动点迭代算法: %input:初始解x0;最大迭代次数N;精度tol. %output:近似根x,迭代次数k. 1. k=1; 2. While k<N 2.1 x= g(x0) ; %函数g需要事先定义; 2.2 if abs(x-x0)<tol break end 2.3 k=k+1; x0=x; end 3. disp(x); disp(k)
此方程还可以有另外的迭代形式:
xk 1
计 算 方 法 课 件
1 , 2 3 xk
k 0,1,2,3,
xk 1 3 3xk 1,
4.2.2 迭代法的几何解释
k 0,1,2,3,

第6章 非线性方程求根(2、newton法、迭代法的收敛阶)

第6章 非线性方程求根(2、newton法、迭代法的收敛阶)

定理 考虑方程 x = g(x), g(x)∈C[a, b], 若 ∈
( I ) 当 x∈[a, b] 时, g(x)∈[a, b]; ∈ ∈ ; ( II ) 0 ≤ L < 1 使得 | g’(x) | ≤ L < 1 对 x∈[a, b] 成立。 成立。 ∈ 则任取 x0∈[a, b],由 xk+1 = g(xk) 得到的序列 { x k }∞= 0 收 , k 敛于g(x) 在[a, b]上的唯一不动点。并且有误差估计式: 敛于 上的唯一不动点。并且有误差估计式: 上的唯一不动点 k 1 L | x * xk | ≤ | x k +1 x k | | x * xk | ≤ | x1 x 0 | 1 L 1 L 且存在极限
=
m 1 m
A3: 线性收敛
下山法 /* Descent Method */ ——Newton’s Method 局部微调: 局部微调: 原理: 减小, 原理:若由 xk 得到的 xk+1 不能使 | f | 减小,则在 xk 和 xk+1 之间找一个更好的点 x k + 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 )
λ xk +1 + (1 λ ) xk , λ ∈ [0, 1]
注:λ = 1 时就是Newton’s Method 公式。 时就是 公式。 代入效果不好时, 减半计算。 当 λ = 1 代入效果不好时,将 λ 减半计算。
x * x k +1 lim = g ′( x * ) k →∞ x * x k

计算方法-刘师少版第二章课后习题完整答案

计算方法-刘师少版第二章课后习题完整答案

0 < λf ′(x) < 2
− 2 < −λf ′(x) < 0
−1 < 1 − λf ′(x) < 1
1 − λf ′(x) < 1
即 ϕ ′(x) < 1 ,所以 xk+1 = ϕ (xk ) = xk − λf (xk ) 收敛于 f (x) =0 的根。
2.7 试用牛顿迭代法导出下列各式的迭代格式:
应的迭代公式:
(1)x
=1+
1 x2
,迭代公式
xk
+1
=1+
1
x
2 k
(2)x3 = 1 + x 2 ,迭代公式 xk+1 = 3 1 + xk2
(3) x 2
=
x
1 −
1
,迭代公式
xk
+1
=
1 xk −1
(4) x = x3 − 1 ,迭代公式
xk+1 = xk3 − 1
试分析每种迭代公式的收敛性,并选取一种收敛迭代公式求出具有四位有效数字的近似
x8 = 1.4656344
x9 = 1.4656000
x9
− x8
≤ 1 ×10−4 , 2
x9 = 1.4656000
2.5 对于迭代函数ϕ (x) = x + C(x 2 − 2) ,试讨论:
(1) 当 C 取何值时, xk+1 = ϕ (xk ), (k = 0,1,2,L) 产生的序列 {xk }收敛于 2 ;
6 6x2
63
ϕ ′(3 a ) == 5 − a (3 a )−3 = 5 − 1 = 1 ≠ 0
63

第二章 非线性方程求根

第二章 非线性方程求根
0.156014 0.00536340
所以可取 x 1.93 .
注 二分法算法简单,编制程序容易,缺点是不能求偶数重根
和复数根,故而一般常用此方法求根的初始近似值,再用其
他的求根方法精确化。
8
缺点: 1.收敛速度不快,仅与公比为 1 的等比级数的收敛速度 相同。 即是线性收敛的。 2.不能用于求偶重根、复根;不能推广到多元方程组求解;
ak
2 2 2 2 2.0625 2.09375
bk
3 2.5 2.25 2.12Fra bibliotek 2.125 2.125
xk
2.5 2.25 2.125 2.0625 2.09375 2.109375
f xk 的符号
+ + +

+
2.09375
2.109375
2.1015625
6
若取 x x6 2.1015625, 其误差为 1 x x6 7 3 2 0.078125 2 (可求得根的精确值为 x 2.0945515)。 x2 0 的非零实根的近似值, 例2 用二分法求方程 f x sin x 4 y 2 使其误差不超过10 。 解 如图,可确定
k

1 xk 1 xk ② x xk 1 L
(2.1)
(2.2)

Lk x xk x1 x0 1 L
16
证明 ①先证方程 x g x 在 a , b 上存在实根 x ∵在 a , b上 g x 存在, ∴ g x 连续,令 x x g x , 由条件⑵,有 则 x 在a , b 上也连续, a a ga 0 , b b gb 0 故必 x a , b, 使得 x 0 , 即 x g x x 的唯一性 再证 x g x 在 a , b 上存在两个实根 x1、x 2 , 设方程 则由拉格朗日定理,有 x1 x 2 g x1 g x 2 g x1 x 2 L x1 x 2

计算方法一元非线性方程求根2.2

计算方法一元非线性方程求根2.2

2x
对应的迭代法为
xk 1

1 2
( xk

2 xk
),
k

0,1,...。
取初值x0 1,迭代结果分别收敛到x* 2,计算结
果如表62 3所示。
表62-3
k 01
2
3
4
5
xk 1 1.5 1.41666667 1.41421569 1.41421356 1.41421356 xk -1 -1.5 1.41666667 -1.41421569 -1.41421356 -1.41421356 6
输入对于执行输出并终止计算输出迭代失败信息终止计算下面给出迭代法的算法算法中下面给出迭代法的算法算法中为初值为初值为精度为精度为最大迭代次数为最大迭代次数为迭代函数
§2.2 一元方程的不动点迭代法
2.2.1 不动点迭代 一般地,为了求一元非线性方程
f (x) 0
(2.2.1)
的根,可以先将其转换为如下的等价形式
x x
(2.2.2)
式中连续函数x 称为迭代函数,并使两
个方程具有相同的解,然后构造迭代公式。
xk1 xk k 0,1,2
(2.2.3)
1
对于给定的初值 x0 ,由(2.2.3)可产生一
个迭代序列
xk
k 0
如果有 lim x x* k k
由于x 连续,
(2)对于任意的初始值x0 a,b由(2.2.3)式产
生的近似值序列xk
(3)有误差不等式
k 1

a,
b,并且
lim
k
xk

x*
xk
x*
l 1l

计算方法 第2章 非线性方程数值解法

计算方法 第2章 非线性方程数值解法

第二章非线性方程数值解法本章将讨论非线性方程0)(=x f (2.1)的数值解法,我们最为熟悉的非线性方程是一元二次方程02=++c bx ax也是最简单的非线性方程,其解为:aac b b x 2422,1-±-=但是对于(2.1)式中一般形式的非线性函数)(x f ,很难甚至不可能找到解析形式的解,通常只能用数值的方法求其近似数值解。

2.1 基本概念定义2.1如果*x 满足0)(*=x f ,则称*x 为方程(2.1)的解或根,也称*x 为函数)(x f 的零点或根。

用数值方法求解非线性方程的解,通常需要我们对其解有一个初步的估计,或知道其解的一个限定区间,因此确定包含解的区间将是我们首先需要解决的问题。

定义2.2若连续函数)(x f 在],[b a 内至少有一个根,则称],[b a 为有根区间,若在],[b a 内恰有一个根,则称],[b a 为隔根区间。

定理2.1 如果函数)(x f 在],[b a 上连续且0)()(<b f a f ,则)(x f 在),(b a 内至少有一个根,如果函数)(x f 另外满足在],[b a 上单调连续,则)(x f 在),(b a 内恰有一个根。

寻找隔根区间的通常方法有:图形法, 试探法。

例2.1 求033)(3=+-=x x x f 的有根区间。

解:作出函数)(x f y =的曲线图形图2.1 例2.1曲线示意图观察图中的曲线与X 轴的交点,可判断在区间)2,3(--之间方程有一个根。

例2.2 求033)(23=--+=x x x x f 的有根区间。

解:计算出)(x f 在一些点的值。

从表中可以看出1-=x 是一个根,区间)2,1(是一个有根区间。

如果在[-2,-1]之间把间隔再缩小到0.25我们可以得到下列表格在这个表格里我们又发现一个有根区间)5.1,75.1(--。

从此例中我们可以体会到试探法有可能漏掉某些有根区间,具有一定的局限性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


对于迭代函数 1(x) 3
x 1,其导数'1 (x)
1
(
x

1)

2 3

3
容易验证,对任意 x [1,2]有
1(x) [1.26,1.45] [1,2],'1 (x) 0.21 1。
因此,对于任何初值x0 [1,2],由1(x)给出的迭代法
都收敛到区间[1,2]上的唯一不动点x*。
lim
k
xk
lim k
2
2L
2=2。
14
下面给出迭代法的算法,算法中 x0为初值,
为精度,N 为最大迭代次数,(x) 为迭代函数。
输入 0 , , N
对于 k 1,2, N 执行
x1 (x0 )
y
x0 x1
n
输出 计算
k, x 并终止
x0 x1
则称序列
xk
是 k 0
p
阶收敛的,当
p
1时,
称为线性收敛,当 p 1 时,称为超线性收敛,
p 2,称为二次收敛或平方收敛。
18
定理2.2.3 (整数阶超线性收敛定理)设x* 是
迭代函数x 的不动点,若有正整数 p 2,使得
px 在x*的邻域连续,并且满足
对于迭代函数 2 (x) x3 1,其导数'2 (x) 3x2。显然, 对x [1,2]有2 (x) [0,7],'2 (x) 1,不满足定理6.1的条件。
从几何上可以说明,只要初值x0 x*,该迭代法发散。 12
例6.5 已知x (x)的'(x)满足'(x) 3 1,试问如何
定义2.2.1设 x*是迭代函数 (x) 的不动点,若存
在x*的某个邻域 N x*, , x x* , 使得对任意初值
x0 N x*, ,由 迭 代 公式(2.2.3)生成的序列
x k k0
N
x*,
且有
是局部收敛的。
lim k
xk

x*,则称迭代公(2.2.3)
13
例3.3.3
用适当的迭代公式证明:lim k
su2uuuuuu2uuuuLuuuuuu2uuru=2 k个2
证明 考虑迭代公式 x0 0; xk1 2 xk , k 0,1, 2,L
则x1 2, x2 2 2 , xk 2 2 2 L 2 , 记
输出迭代失败信息,终止计算
15
在方程求根的迭代法中,迭代函数 (x)的确定,
至关重要,它直接影响着迭代法的收敛性。但在实
际应用中,同一个方程可以等价导出不同的迭代函
数,而且要严格地利用定理2.2.1的条件判断迭代公
式在整个区间 a,b内收敛(全局收敛)也非常困难,
因此常常判断迭代公式的局部收敛性。
(n) x* 0 n 1,2, , p 1 ( p) x* 0
则迭代公式(2.2.3)局部收敛,并且是 p 阶收敛的。
19
(x) 2 x,则(x) 1 .
2 2x
当x 0, 2时,(x) (0),(2)0, 2, (x) 0 1 1
22
因而,所考虑迭代公式产生的序列{xk
} k 0
收敛于方程
x 2 x在0, 2内的惟一根x* 2,即
2
xk 称为方程根的第 k 次近似值。 如果迭代序 列 xk 的极限不存在,则称迭代公式(2.2.3)是 发散的。
因此,在使用迭代法求方程根的近似值时, 首先要考虑的问题是:如何选取迭代函数x , 使 迭 代 公 式 xk1 xk 收敛。
3
例2.2 求f (x) x3 x 1 0的一个实根。
16
定理2.2.2(局部收敛性定理)设 x *是迭代函数(x)不动 点,若 (x)在 x *的某个邻域上连续,并有 |(x*) | l 1称
迭代公式(2.2.3)局部收敛。
证明:由于(x)在 x *的某邻域上连续,且| (x*) | 1 则 必 存在 x *的一个 邻 域 N(x*, ) 和 常 数 L : 0 L 1使得对
§2.2 一元方程的不动点迭代法
2.2.1 不动点迭代 一般地,为了求一元非线性方程
f (x) 0
(2.2.1)
的根,可以先将其转换为如下的等价形式
x x
(2.2.2)
式中连续函数x 称为迭代函数,并使两
个方程具有相同的解,然后构造迭代公式。
xk1 xk k 0,1,2
和定义2.2.1知,迭代公式 (2.2.3)局部收敛。
17
当迭代公式收敛时,收敛速度的快慢用收敛阶来衡量。
定义2.2.2(收敛阶)设序列
x k k0
收敛到 x*
并记误差 ek xk x* 。若存在常数 p 1 和 c 0
,使得:
lim k
ek 1 ekp
c
(2.2.6)
表 2-2
k
0
1
2
11
3 xk 1 1.5 1.3572088 1.3308609 … 1.32471796
xk3 1 1.5 2.3750000 12.396484 …
5
例 2.3 求f (x) x2 2 0的根。
解 把f (x) 0转换成等价形式
x (x) 1 (x 2),
利用(x)构造一个收敛的简单迭 代函数?
解 由x (x),可得
x 3x (x) 3x,
即可得等价方程
因此,令
x 1 (3x (x))。

2 (x)

1
(3x

(x))
2
则有
(x) 1 3'(x) 1 ,
2
2
因此,迭代式 xk1 (xk ) (k 0,1, )收敛。
解 把f (x) 0转换成两种等价形式
x 1(x) 3 x 1, x 2 (x) x3 1,
对应的迭代法分别为
xk1 3 xk 1, xk1 x3 1, k 0,1,..。 .
由于f (1) 1, f (2) 5,既连续函数f (x)在区间[1,2]内变号 从而[1,2]为有根区间。取它的中点为初值,既令x0 1.5, 迭代结果列于表6 2。此方程有唯一实根x* 1.3247179 5724475。显然第一个迭代法收敛,第二个迭代法发散4。
x 过点 p0 作 轴的平行线交直线 y x于 A0,过A0作 y轴的
平行线交曲线 y x于 p1,则 p1的横坐标为 x1 x0 ,
如此继续下去,在曲线 y x上就得点列 p1, p2 , p3
其横坐标 x1, x2 , x3 , 由迭代公式xk1 xk 求得,如 果点列 p1, p2 , p3 越来越逼近交点 p,则迭代法收敛,
满足如下条件:
(1) x在 a, b内连续,在 a, b 内可导。
(2)映内性:对任意的x a,b,有xa,b。 (3)压缩性:存在一个常数 l : 0 l 1使得在 a,b内
x l 1
10
则:
(1)函数 x在[a,b]内存在唯一的不动点 x*
x*x2 x1 x0
a
y (x)
yx
p
A0 p
A1
0
p1
x1 x* x2
b
y (x)
p1
x0
yx
A1
p
p
A0
0
x2 x1x0x*
c
x1 x* x0 x2
d
8
对于 x*的某个初始近似值 x0,在曲线 x x上 可以 确定以 x0为横坐标的一点 p0,p0的纵坐标为 x1 x0 ,
2x
对应的迭代法为
xk 1

1 2
( xk

2 xk
),
k

0,1,...。
取初值x0 1,迭代结果分别收敛到x* 2,计算结
果如表62 3所示。
表62-3
k 01
2
3
4
5
xk 1 1.5 1.41666667 1.41421569 1.41421356 1.41421356 xk -1 -1.5 1.41666667 -1.41421569 -1.41421356 -1.41421356 6
x N(x*, ),有| (x) | L
由 微 分 中 值 定 理 知,对 任 何x N(x*, ) , 都 有
| (x) x* || (x) (x*) || ( ) || x x* | L | x x* | ( 其 中 ,
在x与x*之间 )这说明(x) N(x*, )于是由 定 理 2.2.1
(2)对于任意的初始值x0 a,b由(2.2.3)式产
生的近似值序列xk
(3)有误差不等式
k 1

a,
b,并且
lim
k
xk

x*
xk
x*
l 1l
xk
xk1
(2.2.4)
xk
x*
lk
1l
x1 x0
(2.2.5)
11
例6.4 对于例6.2的两种迭代法,讨论它们的收敛性。
(2.2.3)
1
对于给定的初值 x0 ,由(2.2.3)可产生一
个迭代序列
xk
k 0
如果有 lim x x* k k
由于x 连续,

ห้องสมุดไป่ตู้
lim lim lim x x*
相关文档
最新文档