3.1 求方程实根的对分区间法 3.2 单个方程的迭代法
数值分析10-方程求根的迭代法.

[a1, b1] [a2 , b2 ] [a3, b3]
以 此 类 推
y
a3
a2
b2 2
x2
a1
oa
x
y f (x) bx
a2
a1
b1 2
x1
x0
a
2
b
b1
b2
b3
由二分法的过程知
(1) [a, b] [a1, b1] [a2 , b2 ] [ak , bk ] , f (ak ). f (bk ) 0, x* [ak ,bk ],
例2 求方程 f (x) x3 11.1x2 38.8x 41.77 0 的有根 区间. 对 f (x) 0 的根进行搜索计算,
解 表7 -1 计算结果
x
0123456
f (x)的符号
由此可知方程的有根区间为 [1,2],[3,4],[5,6].
4.1.2 二分法
欲使
x*xk
(bk
ak
)
/
2
(b
a)
/
2k
1
1 2
1 2 k 1
0.005,
只需 k 6 ,即只要二分6次,便能达到预定的精度.
k ak
bk
xk
f ( xk )符号Leabharlann 0 1.0 1.5 1.25
1 1.25
1.375
2
1.375 1.3125
3 1.3125
1.3438
x*。
(b) 有如下的误差估计
|
利用四种方法求方程的根

数值分析实验(三)课题名称:利用四种方法求方程的根任课教师:辅导教师:专业班级:学号:姓名:实验编号:实验报告文件名:1.算法分析:求方程f(x)=x³-3*x-1=0的根。
1.对分区间法:f(x)在某一区间[a,b] 连续且端点出函数值异号,用中点的(a+b)/2平分区间,并计算处中点的函数值f((a+b)/2),若f(x)不等于0,每次改变区间范围。
具体步骤:1.找出f(x)=0的根的存在区间(a,b),并计算出端点的函数值f(a),f(b).2.计算f(x)在区间中点的值f((a+b)/2).3.判断:若f((a+b)/2)近似为0,则停止。
否则,若f((a+b)/2)与f(a)异号,则跟位于(a,(a+b)/2),以(a+b)/2代替b,若f((a+b)/2)与f(b)异号,则跟位于((a+b)/2,b),以(a+b)/2代替a。
4.重复(2)(3)步,直到区间缩小到容许的误差范围内,此时,区间中点可作为所求的根。
2.弦位法:用过两点的直线近似曲线,用直线与x轴的交点近似曲线与x轴的交点,需f(x)在零点附近的有连续的二阶微商。
具体步骤: 1.选定初始值a,b,并计算f(a),f(b)。
2. 迭代公式x[i]=a[i]-(f1/(f2-f1))*(b[i]-a[i]);再求f(x[i]);3.判断:若f(x[i])近似为0,则停止。
否则,若f(x[i])与f(a)异号,则跟位于(a,f(a))和(x[i],f(x[i])),代替(a,f(a))( b,f(b)),若f(x[i])与f(b)异号,则跟位于(x[i],f(x[i]))和(b,f(b)),代替(a,f(a))( b,f(b))。
4.重复(2)(3)步,直到相邻两次迭代值之差到容许的误差范围内,此时,所得的根。
3.迭代法:已知f(x),保留一个x在左边,右边写为g(x),强令左边x=x[k+1],右边是关于x[k]的函数g(x),给定初始值x,构造x的序列,若x收敛,g(x)连续,则x的收敛值为f(x)的值。
方程求根的迭代法

方程求根的迭代法一、考核知识点:区间二分法,弦位法(单点弦法、双点弦法)、切线法、一般迭代法,收敛性。
二、考核要求:1.熟练掌握用区间二分法求方程近似根的方法。
2.熟练掌握用单点弦法、双点弦法求方程近似根的方法。
了解其收敛性。
3.熟练掌握用切线性求方程近似根的方法。
了解其收敛性。
4.掌握用一般迭代法求方程的方法近似根的方法。
了解其收敛性。
三、重、难点分析例1 证明计算)0(>a a 的切线法迭代公式为:,1,0),(211=+=+n x a x x nn n 并用它求2的近似值(求出1x 即可)解 (1)因计算a 等于求02=-a x 正根,a x x f -=2)(,x x f 2)(=' 代入切线法迭代公式得)(21221nn n n n n x a x x x x x +=-=+ ,1,0=n (2) 设2)(2-=x x f ,因,0121)1(2<-=-=f 025.1)5.1(2>-=f 所以 []5.1,12*∈=x在[]5.1,1上 02)(>='x x f 02)(>=''x f由 0)()(0≥''x f x f ,选5.10=x用上面导出的迭代公式计算得 4167.11217)2(21001≈=+=x x x例2用单点弦法求方程 0153=+-x x 的最小正根(计算出1x ) 解:由于0375.1)5.0(,01)0(<-=>=f f 则]5.0,0[*∈x 在[0,0.5],,06)(,053)(2≥=''<-='x x f x x f 由,0)()(≥''x f c f 取5.0,00==x c 则单点弦法迭代公式 ,1,0)15(51),15(151032331=+--+=+--+---=+n x x x x x x x x x x x n n n n n n n n n n n 计算得 21.075.4375.15.01≈-=x 例3 用双点弦法,一般迭代法求0243=-+x x 的最小正根(求出2x 即可)。
数值分析3.1.二分法、迭代法及收敛性

上述令p→∞, 及limxk+p=x* (p→∞)即得(2.6)式. 证毕. 注:误差估计式(2.5)原则上确定迭代次数,但它由 于含有信息 L 而不便于实际应用. 而误差估计式(2.6) 是实用的,只要相邻两次计算结果的偏差足够小即 可保证近似值 xk 具有足够精度.
注: 对定理1和定理2中的条件2º 可以改为导数,即 在使用时如果(x)∈C[a, b]且对任意x∈[a, b]有
显然f(x)∈C[a, b],且满足f(a)=(a)-a>0, f(b)=(b)-b<0, 由连续函数性质可知存在 x*∈(a, b) 使 f(x*)=0,即 x*=(x*),x*即为(x)的不动点. 再证不动点的唯一性. 设x1*, x2*∈[a, b]都是(x) 的不动点,则由(2.4)得
可以如此反复迭代计算
xk+1=(xk) 到的序列{xk}有极限 (k=0,1,2,). (2.2)
(x)称为迭代函数. 如果对任何x0∈[a, b],由(2.2)得
lim xk x .
k
则称迭代方程(2.2)收敛. 且x*=(x*)为(x)的不动点, 故称(2.2)为不动点迭代法.
例1 用二分法求方程 f(x)=x3-x-1=0在(1, 1.5)的实根, 要求误差不超过0.005.
解 由题设条件,即:
|x*-xn|≤0.005 则要
1 2
n 1
(b a)
1 2
n 1
(1.5 1)
1 2
n 2
0.005
2 由此解得 n 1 5.6,取 n=6, 按二分法计算过程见 lg 2
L2 xk 1 xk 2 Lk x1 x0 .
于是对任意正整数 p 有
方程求根的迭代法

§4.1 引 言绪论中讲到方程求根得二分法,但二分法收敛速度慢,有必要掌握新的方法。
§4.1.1迭代法的思想迭代法是一种逐次逼近法,使用某个固定公式(迭代公式)反复校正,逐步精确,直到满足精度。
迭代法求根分两步: 1) 猜测初值 2)迭代如求解初值问题00')(),,(y x y y x f y ==用梯形公式111[(,)(,)2n n n n n n h y y f x y f x y +++≈++ (1)看作关于1+n y 的函数方程,按欧拉公式提供猜测值),()0(1n n n n y x hf y y +=+,代入(1)得)],(),([2)0(11)1(1+++++=n n n n n n y x f y x f h y y若)1(1+n y 仍不满足要求,则将它代入(1)式,继续得到校正值)2(1+n y ,写成迭代公式)],(),([2)(11)1(1k n n n n n k n y x f y x f h y y ++++++= (2)一般地,为了求一元非线性方程0)(=x f 的根,可以先将其转换为如下的等价形式()x x ϕ= (3)式(3)中连续函数()x ϕ称为迭代函数,其右端含未知数,不能直接求解。
先用根的某个猜测值0x 代入(3),构造迭代公式:()k k x x ϕ=+1。
如果迭代值k x 有极限,则称迭代收敛,极限值k k x x ∞→=lim *就是方程(3)的根。
几何意义P127图4-1为使迭代法有效,必须保证它的收敛行,()x ϕ满足什么条件,才能保证收敛?以最简单的线性迭代()d kx x +=ϕ,可以看出收敛的充分必要条件()1'<=k x ϕ。
几何意义P127图4-2,3,4,5。
§4.1.3 压缩映像原理设*x 是方程()x x ϕ=的根,则由微分中值定理))(()()(*'*1*k k k x xx x x x-=-=-+εϕϕϕ,如果存在10<≤L ,使得],[b a x ∈有()k k x x L x x L x -≤-⇒≤+*1*'ϕ,则迭代误差0e L e kk ≤,由于10<≤L ,故0→k e ,即迭代收敛。
第三章 迭代法s1s2 二分法和迭代法原理

有根区间:[a, b] 上存在 f (x) = 0 的一个实根 研究 内容: 在有根的前提下求出方程的近似根。
根的估计
| xk x*| L | xk1 x*| L2 | xk2 x*| Lk | x0 x*|
lim | xk x* | 0
k
即 lim xk x *.
k
(b) | xk1 x*| L | xk x*|
| xk 1 xk | | ( xk 1 x*) ( xk x*) | xk x * xk 1 x * (1 L) xk x * 1 xk x * xk 1 xk 1 L 又 | xk1 xk | ( xk ) ( xk1 ) | '( ) | | xk xk1 | L | xk xk1 |
babab对于给定的精度可估计二分法所需的步数k简单易用无法求复根及偶重根要求不高只要连续即可收敛速度慢标本无需切片处理而代之在标本表面涂上一层铂金当电子撞击标本表面各点时便产生次及电子呈现立体状态可观察标本的形状及表面的特征
第三章迭代法
§3.1 二分法 §3.2 迭代法原理 §3.3 Newton迭代法和迭代加速 §3.4 解线性方程组的迭代法
0 1.5 1 2.375 2 3 12.4 1904
精确解x* =
1.3247179...
怎么判断迭代公式收敛或发散呢?
不动点原理
定理 (压缩映像定理,不动点原理) 3.1 设 (x)在[a, b]上连续, 且一阶导数连续,若 (1) a (x) b 对一切 x[a, b] 都成立 封闭性 (2) 0 L < 1,使得 | ’(x) | L 对 x[a, b] 成立 压缩性
《方程的迭代求解》课件

高斯消元法是线性方程组迭代求解的常用方 法。
详细描述
高斯消元法是一种常用的线性方程组迭代求 解方法,通过逐步消去变量,最终将方程组 转化为一个单一的方程,从而求解未知数。 这种方法适用于求解大型线性方程组,如矩
阵方程或微分方程等。
05
迭代求解的优缺点 与注意事项
迭代求解的优点
一元方程的迭代求解方法通常采用简单的迭代公式,如牛顿法或二分法等,通过不断逼近方程的解, 最终得到精确解。这种方法适用于求解简单的线性方程,如求解平方根或对数等。
二元方程组的实例分析
总结词
二元一次方程组的迭代求解方法适用于求解 具有两个未知数的方程组。
详细描述
二元一次方程组的迭代求解方法通常采用消 元法或代入法,通过逐步消去或代入变量, 最终得到一个变量的值,再代入求解另一个 变量。这种方法适用于求解具有两个未知数 的方程组,如线性方程组或二次方程组等。
迭代求解的缺点
稳定性
迭代求解依赖于初始值的选择,如果初 始值选择不当,可能导致迭代过程发散
,无法得到正确的解。
数值误差
由于迭代求解是一种近似方法,因此 得到的解可能存在一定的数值误差。
收敛速度
有些问题的迭代过程收敛速度很慢, 需要大量的计算资源。
对问题敏感
对于某些问题,迭代方法可能不适用 或效果不佳。
高效性
迭代求解是一种有效的数值计算方法,尤其对于大规模、复杂的问题 ,通过迭代可以快速逼近解。
通用性
迭代方法适用于多种类型的问题,不仅限于方程求解,还可以应用于 优化问题、数值积分等。
灵活性
迭代过程可以根据问题的特性进行调整,例如收敛条件的设定、迭代 初值的选取等,以获得更好的求解效果。
并行性
《方程求根的迭代法》PPT课件

2021/4/24
记笔记
4
xk1
xk1
a (xk a )2 2xk
a (xk a )2 2xk
xk1 a ( xk a )2 xk1 a xk a
q x0 a x0 a
xk a ( x0 a )2k
x a x a 2021/4/24
k
记笔记 0
5
令q x0 ,a 则由上式得
2021/4/24
28
例9
已知迭代公式
收敛于 x k 1
2 3
xk
1
x
2 k
证明该迭代公式平方收敛.
均20收.敛于.且x成0立xk1(xk)
x*
30.
①x*xk1LLxkxk1
② 2021/4/24 x*xk1LkLx1x0
满足精度要求的最 大迭代次数
(事先误差估计法)
17
例1 对方程 x5 ,4构x 造 2迭 代0 函数如下
① (x) 5 4x ,2 ②
(x.试) 讨论x5在[12,2]上迭代
(x*) ( x*) (m1) (x *) 0,(m) (x*) 0
则迭代过程在 x* 邻域是m阶收敛的. (m 2)
2021/4/24
27
证明: (x*) 0迭,代过程 xk1 局(部xk 收)
敛于 x* ,又
xk 1
( xk
)
( x* )
( x* )( xk
x* )
y
y=f(x)
Pk
Pk+1 Pk+2
x* xk+2 xk+1
xk x
Newton法又称为Newton切线法或切线法
2021/4/24
求方程实根的一种迭代方法

关于求方程实根的具有大范围收敛的迭代方法,近年来受到广泛的重视,出现了许多有意义的成果.但在这些方法中,有的需要计算函数的二阶导数,有的对函数的性质要求高.本文给出了一个不需要计算函数二阶导数的迭代公式,它对函数性质要求低,并论证了该公式的大范围收敛性及收敛速度?最后给出了数值例子?1 迭代公式的建立设 /(a) 6 cz[_ajb]由台劳展开式得:/(?r) = f{x~ ) + f (x~ ) (x - X7 ) +- x~ )2/2,a <i < b(1)或/(工)=f{Xn ) + /,- x广)+ 尸(f+)(?r - X; )2/2,a < c+< 6其中,6 (?6),且< xt,令:giCr) = ) + f (x^)(j: - x;f ) + D+ (x - xtY/2(3) g*2(x) - f{x~ ) + /; {x; ) (x - x;) + D~ (x - x~ y/2(4)\ 一 M± f (xt) > 0 ,其中,Z)士I广(6士)|,比较(1),(4)和(2),(3)式有:[M±/(xr) < 0当/?)>0时,当{fix) - gx(x) ^ 0(5)\f(x) - g2(x) ^ 0/Cr?) <0 时,(6){/(x) - ^i(^) < 0,(7)I/O) - g2{x) < 0(8)因此,用方程幻U) = 0大于xt的根作为/Or) = 0大于W的最小根的近似值,用方收稿日期:1992-10-09程a(x> = 0小于■r;'的根?r>"+i 作为/(x) = 0小于工:的最大根的近似值.由一元二次方程求根方法可得:x:+i = xt + 2f(.xt)/[- /'?) + (sign/(x.+ )> VA.+ ](9) x~+l = x~ + 2/(x7 )/[- f (.x~ ) - (sign/Cr;)) VaF](10)其中,△?士 =[尸 U,士)]2 - 2/U?士 )D士 _2 M±的确定定理l设/u) e ^0,6],且满足条件:(1)/(a)/(6)<0;(2)尸(x)在|>,6]上不变号;(3)尸(工)#0,:c 6 [a,6].则 I 尸(0丨 <2 丨一尸(6) + 尸(a)|/|5 -a|,<x*其中,5=min{a- (b - a)/(a)/[/(A) -/(a)] ,a-/(a)//(a)} .x* 为/(x)在U,6)上的零点.证明由台劳展开式得:f(x') = f(a) + f(a)U' - a)+尸-a)2/2 = 0,<x*/(a) = /U*)+/,(7)(a-^>),则尸(f) =一 2[/(?) + 尸(a)]/(z* - a)(11)由文献[4]可知,/(x)在[a,6]上有四种不同情况,但只需对其中的一种情况证明即可 .故设在定理的条件下,函数/U)在卩,6]上有下列性质:(1)/(a)> 0, /(? < 0;(2)尸(x)<0,x€ 0,6],即/'U)单调下降;(3)尸(6)<尸(<2) < 0.设 a = a ~ (b - a)/(a)/[/(6) - /(a)],即 a = a + /(a) {b - a)/[/(a) - /(6)].由于0 < /(a)/[/(a) - /(A)] < 1,所以a < ? < 6.由于fix)在0,A]上是单调下降的,所以只需证/(?) <0即可得《<Z.令 p、x) = /⑷ + [/(*) - /(a)](x - a)Kb 一 a),显然《是 p{x)的零点?由插值法可得:fix') = /(a) + [/(6) - /(a)](x - a)/(b - a)+ /"(f)(x - a)(x - b)/2, a<ii <ib 则 /U) -/?Cr)=尸(f)U - a)(x - 6)/2,/(?) = fX?) (a - a) (a - b)/2 > 0.故有 a <?<:?:?.令I? = a -/(?)//'(a),则由台劳展开式得:P = a- [/U*> +f(S)(a~ r-)]//(a)=a + f (f)(a:* - a)//'(a、_,a c ^ x*由于 /' (f) < f (a) < 0,所以 f (a) > 1.故有 f .因此,取S = min{a,仍,必有 a<x<x*.另一方面,由于尸(6)</'(7)</'G)<0,故 I -/^幻+尸^糾彡丨一/'(7) + /'(a) I,将上述结论代入(11)式可得:I尸(f)| <2丨-fib) + fia)\f\x~a)\用类似方法可证明其它三种情况.证毕「1/2, x.± - x^Lj >1/2如果令± _ ±± _ ±且假设/(x)在上满足定L 工》-工典-1,工《 -工*-1 ^ 1/Z,理1的条件?则取X: + K,/(工广)/(工:+K) > 0x. = ^ min{x: - ht f{xt)/[/? + O - /(x广)],xt - /(X: )/尸{xt)},f{xt )/(工广 + O < 0工;+ K ,fix: )/(x; + /i; ) > 0x~ = - max{x~ -+ A; ) -/Cr:)],x; - fix~ )/尸(x; )},fix: )fix~ + ^; ) < 0f2[[/(xr)/(x^ - xiOl - I f ixf ) I]/(x^ - x^) yfixf )f(x^ + > 0[2 \ - f (工? + ht) + f (j:? ) |/|xt\ff{xf )/(x? + /i? ) < 0由定理1可知:丨尸(OKM、3 敛速估计\引理设/U) e c20,6],且/u)在|>,6]上只有两个实单零点X*和f,(X* < f ).若 X* <x. < xt < x' ' ,xf+i 由(9),(10)式确定.则有 (1)^?+! ^ xf ; (2)x广 < xt'+i<x"' , x7 > x~+1 > x'.证明因为:c* <x7 <x.+<f,所以/?)<和/(x?+)在(:《:?,f )上不变号.不妨设 /(d) > 0.(1)若^,则由(9),(10)式导出/(d)= 0,这与/Crf) > 0矛盾,故有xi古亡?(2)显然有X,++1> 成立.若工二,则由条件可知:/?+1)<0,即/(xr+1) - g:(x^+1) = /(x^-j-i) < 0.这与(5)式矛盾,故有 x:+1 <x"'.同理可证明(> ^;+1 > X*.证毕定理2设/U) 6 -(幻,且/(^)的所有实单零点按顺序排列为:rr <x; < ????则对满足条件fixt、^ 0的任意给定的实数过,有(1)若彳位于/U)的任意两个相邻实单零点工:和x/+1之间,即工:<x0- < x0+ < ,.则由(9)( (10))式所产生的迭代序列( {< })将单调递增(递减)地收敛于工*+1(工:)?(2)若x0_ <工0+ <:/ (x0+> x0~>x**),/6= 1,2,…….则由(9)( (10))式所产生的迭代序列U.+ }({(})将单调递增(递减)地收敛于/U)最靠近(x0-)的一个实根.而另一序列ur}(un)将发散到一oo(+co). 证明(1)的证明由引理知,由(9)((10))式所产生的迭代序列{<})是单调有界序列.故必有一实数二),使得limi (Iimx7 = x ).同时注意M-?oooo到存在有限的极限值-/(x?) 土(Sign/(x?)) ^/A^)由(9),(10)式可得:f{x±) = lim/(x* ) = limCxr+i -工?士)(一 /,Cr?士)士(sign/(x?士)\! A? )/2 = 0?-*oo>~>o由条件可知: >2:+=:1:/+1, = X;.(2)的证明由条件知,对于序列} ( ? })有4 > Xf >…(x?+ < xt <……),该序列没有下(上)界.否则,与/(X)的所有实单零点x/ a = 1,2,…)均位于X。
方程求根的迭代法

§4.1 引 言绪论中讲到方程求根得二分法,但二分法收敛速度慢,有必要掌握新的方法。
§4.1.1迭代法的思想迭代法是一种逐次逼近法,使用某个固定公式(迭代公式)反复校正,逐步精确,直到满足精度。
迭代法求根分两步:1) 猜测初值 2)迭代如求解初值问题00')(),,(y x y y x f y ==用梯形公式111[(,)(,)2n n n n n n h y y f x y f x y +++≈++ (1) 看作关于1+n y 的函数方程,按欧拉公式提供猜测值),()0(1n n n n y x hf y y +=+,代入(1)得)],(),([2)0(11)1(1+++++=n n n n n n y x f y x f h y y 若)1(1+n y 仍不满足要求,则将它代入(1)式,继续得到校正值)2(1+n y ,写成迭代公式 )],(),([2)(11)1(1k n n n n n k n y x f y x f h y y ++++++= (2) 一般地,为了求一元非线性方程0)(=x f 的根,可以先将其转换为如下的等价形式()x x ϕ= (3)式(3)中连续函数()x ϕ称为迭代函数,其右端含未知数,不能直接求解。
先用根的某个猜测值0x 代入(3),构造迭代公式:()k k x x ϕ=+1。
如果迭代值k x 有极限,则称迭代收敛,极限值k k x x ∞→=lim *就是方程(3)的根。
几何意义P127图4-1为使迭代法有效,必须保证它的收敛行,()x ϕ满足什么条件,才能保证收敛?以最简单的线性迭代()d kx x +=ϕ,可以看出收敛的充分必要条件()1'<=k x ϕ。
几何意义P127图4-2,3,4,5。
§4.1.3 压缩映像原理设*x 是方程()x x ϕ=的根,则由微分中值定理 ))(()()(*'*1*k k k x x x x x x -=-=-+εϕϕϕ,如果存在10<≤L ,使得],[b a x ∈有()k k x x L x x L x -≤-⇒≤+*1*'ϕ,则迭代误差0e L e k k ≤,由于10<≤L ,故0→k e ,即迭代收敛。
第三章 线性方程组的迭代解法

定理3.2 若 ||B|| =q<1,则由迭代格式x(k+1)=Bx(k)+f 和任意初始 向量x(0)产生的迭代序列x(k)收敛于准确解x*. 本定理是迭代法收敛的充分条件,它只能判别收敛的情况,当 ||B|| ≥1时,不能断定迭代不收敛.但由于||B||,特别是||B|| 1和||B|| ∞ 的计算比较容易,也不失为一种判别收敛的方法。 同时当||B|| <1时可以用来估计迭代的次数,或用来设置退出 计算的条件. 这时有定理3.3和定理3.4 定理3.3 若||B|| =q<1,则迭代格式x(k+1) =Bx(k)+f产生的向量序 k 列 {x(k)}中 q (k ) * (0) (1 )
3.2 几种常用的迭代法公式 3.2.1 Jacobi迭代法
先看一个算例:
10 x 1 2 x 2 x 3 3 例1 2 x 10 x x 15 1 2 3 x 2 x 5 x 10 1 2 3
从以上三个方程中分别解出x1, x2, x3
|| x x || 1 q || x x || ( 3 . 17 )
利用此定理可以在只计算出x(1)时,就估计迭代次数k,但估 计偏保守,次数偏大. 称为事前误差估计. 13 结束
x2
x3
0
0
可见它对这一方程组比Jacobi迭代法收敛快一些。
Gauss-Seidel迭代法的公式如下:
xi
( k 1)
bi a ii
1 i 1 a ij x (j k 1 ) a ii j 1
n
a ij x j
(k )
j i 1
i 1, 2 , n k 0 ,1, 2 ,
第4章 方程求根的迭代法

' ( x) L
则迭代过程对任意初值x0∈[a,b]均收敛于方程的根x*,且有 下列误差估计式 只要相邻两次 1 x * xk xk 1 xk 迭代值的偏差 1 L 充分小,就能 k L 保证迭代值足 x * xk x1 x0 1 L 够准确。
第4章 方程求根的迭代法
k 2 3 4 5 6 xk 0.54524 0.57970 0.56006 0.57117 0.56486 |xk-xk-1| 0.06129 0.03446 0.01964 0.01111 0.00631 k 7 8 9 10 xk 0.56844 0.56641 0.56756 0.56691 |xk-xk-1| 0.00358 0.00203 0.00115 0.00065
1.89328947 1.89328925 1.89328921 1.89328920 1.89328920 ……
第4章 方程求根的迭代法
2.迭代法收敛的条件 定理1 设 ( x) 在[a,b]上具有连续的一阶导数,且满足下列 两项条件: (1) 对于任意x∈[a,b],总有 ( x)∈[a,b]; (2) 存在0≤L<1,使对于任意x∈[a,b],成立
容易验证,上例迭代18次得到的精度为10-5的结果 为0.56714,本例只要迭代3次即可得到,加速效果明 显.
第4章 方程求根的迭代法
2.埃特金算法 设xk是根x*的某个近似值,用迭代公式校正一次得
xk 1 ( xk )
再迭代一次,得
~ xk 1 ( xk 1 ) x * xk 1 L( x * xk ) x * ~ xk 1 L( x * xk 1 )
1 xk xk 1 (e 0.6 xk ) 1.6
2 方程的迭代解法

(n 1, 2,)
单点弦截法的几何意义
y
A
y f ( x)
A ——不动点
O
x0
x3
x2
x1
x
C
B
单点弦截法的收敛性
注:定理1的条件(2)不易使用,可换成
| ( x) | L 1, x [a, b]
此时,根据微分中值定理有
( x) ( y) | ( x) | x y L x y
说明:
① L越小,收敛速度越快。 ② 实际应用中,若 ( x)连续且 [a, b]较小,可用 | ( x) | 1 代 替定理中的判别式。
( ) ( ) ( r 1) ( ) 0 及 ( r ) ( ) 0,
则该迭代过程是r阶收敛的。(P25)
迭代过程的敛散性与下列因素有关:
① 迭代函数在根附近的性质 ② 初值的选取范围 • 大范围收敛(如对分法)——慢 • 局部收敛(如§4 牛顿法)——快
定义:满足方程f(x)=0的x值称为方程的根或解,也叫做函数f(x)
的零点。如果f(x)=(x-a)mg(x)且g(a)≠0,则称a为f(x)=0的m重根, m=1称为单根,m>1称为重根。 迭代解法要解决的问题:
(1)判定根的存在性;
闭区间上连续函数的零点定理
(2)确定根的分布范围; 描图法、搜索法 (3)根的精确化。 二分法
n
6 7 8 9 10 11
xn
0.56486 0.56844 0.56641 0.56756 0.56691 0.56727
n
12 13 14 15 16 17
xn
0.56707 0.56718 0.56712 0.56715 0.56714 0.56714
4.1方程求根的迭代法i

取中点 x0 1 .25 ,将区间二等分,
f ( x ) 0 , 令 a x 1 . 25 , b b 1 . 5 , 0 1 0 1
得新的有根区间 [a1 , b1 ]
*
如此二分下去即可。现估计二分次数
x x 0 . 005 n 5 . 64 n
所以二分6次可达到要求。
不难得出:
ln( b a ) ln n 1 ln 2
区间二分法例题
例1
3 内的 求方程 f( x )x x 1 0 在区间 1 , 1 . 5
一个实根 ,要求准确到小数点后 2 位 .
解(二分法) a 1 . 0 , b 1 . 5 , f ( a ) 0 , f ( b ) 0
*
则 迭 代 过 程 x ( x ) 对 于 任 意 初 值 x [ a ,] b 均 k 1 k 0
证明 设 f ( x ) x ( x ) , 则 f ( x ) 在 [ a , b ] 上 连 续 可 导 ,
由 条 件 ( 1 ) f( a ) a ( a ) 0 f( b ) b ( b ) 0
几百年前就已经找到 了代数方程中二次至 五次方程的求解公式 但是,对于更高次数 的代数方程目前仍 无有效的精确解法
对于无规律的非代数方程的求解也无精确解法 因此,研究非线性方程的数值解法成为必然 本章研究对象
本 章 主 要 讨 论 单 变 量 非 线 性 方 程 fx () 0 的 求 根 问 题
区间二分法分析
区间二分法的分析
优点: 对函数要求低,计算简单; 缺点: 收敛慢且对有偶数重根的情况不适合。
简单迭代法
第二节 简单迭代法
迭代法求方程的根

迭代法求方程的根迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。
设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x0。
(2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0。
(3)当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。
上述算法用C++程序的形式表示为:x0=初始近似根;do {x1=x0;x0=g(x1);// 按特定的方程计算新的近似根} while ( fabs(x0-x1)>Epsilon);cout<<“方程的近似根是”<<x0;例如,采用迭代法求方程x=cos(x)一个根的源程序为:#include <iostream>#include <cmath>using namespace std;int main() {float x0,x1=0.0;while(1){x0=x1;x1=cos(x0);if (fabs(x0-x1)<1e-6)break;}cout<<"The real root is "<<x1<<endl;return 0;}【例3】编写一个程序,用迭代法求方程x3-x-1=0在区间[0,2]中的根。
(1)编程思路1。
用二分迭代法求解。
二分迭代法的原理:先取方程f(x)=0的两个粗略解x1和x2,若f(x1)与f(x2)的正负符号相反,则表明区间(x1,x2)中至少有方程的一个解。
如果f(x)在区间(x1,x2)内单调递增或单调递减,则(x1,x2)内只有方程的一个解。
具体做法:取x1,x2的中点x3,计算f(x3)的值。
在x1,x2中去掉函数值与f(x3)同号者(假设f(x2)和f(x3)同号),得到一个由x1和x3构成的区间,这个区间是原来的一半,并且包含精确解。
方程求根的迭代法

计算方法 4方程求根的迭代法

这样,我们总可以假设方程(5―1)(a,b)内有且仅有 一个单实根x*。由连续函数的介值定理知
f(a)·f(b)<0 若数值b-a较小,那么我们可在(a,b)上任取一点x0作 为方程的初始近似根。
例如,方程
f(x)=x3-x-1=0 由于f(1)<0,f(1.5)>0,又f(x)在区间(1,1.5)上单调连 续,故可知在(1,1.5)内有且仅有一个实根。于是可取某 个端点或区间内某一个点的值作为根的初始近似值。
方程的形式很多,我们主要讨论一元非线性方程,也 即
f(x)=0
(5―1)
方程(5―1)可以有实根,也可以有复根或者重根等 。本章主要讨论它的实根的数值计算问题。
方程根的数值计算大致可分三个步骤进行: (1) 判定根的存在性。 (2)确定根的分布范围,即将每一个根用区间隔离 开来。 (3)根的精确化,即根据根的初始近似值按某种方 法逐步精确化,直至满足预先要求的精度为止。
设函数f(x)在区间[a,b]上单调连续,且 f(a)·f(b)<0
则方程(5―1)在区间(a,b)内有且仅有一个实根x。 下面在有根区间(a,b)内介绍二分法的基本思想。
计算f(a)与f(x0),若 f(a)·f(x0)<0
则根x∈(a,x0),令
a1=a,b1=x0 否则x∈(x0,b),令
a1=x0,b1=b
该序列必以根x为极限,即
故对于预先给定的精度ε,若有
(5―3)
则结果xk就是方程(5―1)满足预给精度ε的近似根, 也即
由式(5―2)和(5―3)还可得到误差估计式为
(5―4)
对于确定的精度ε,从式(5―4)易求得需要二等分 的次数k。
二分法具有简单和易操作的优点。其计算步骤如 下,框图如图5.3所示。
求实方程实根的对分区间法 - 哈尔滨工业大学(威海)

在区间(1,2)
2 10 内的实根,要求误差限为 。
解:令
f ( x ) 2 x 3 5x 1
f(1)<0, f(2)>0 记I0=[1,2] , x0 =(1+2)/2=1.5 因为 f(x0) f(1)>0 得I1=[1.5, 2] , x1 =(1.5+2)/2=1.75 f(x1) f(1.5)<0 得I2=[1.5, 1.75] , x2 =(1.5+1.75)/2=1.625 ……. I6=[1.681875, 1.6875], I7=[1.671875, 1.679688] b7 - a7=0.781310-2 < 10-2 x*x7 =1.6758
其中每一个区间都是前一个长度的一半,从而[ an, bn ]的长度为
bn an (b a) / 2
n
如此继续下去,则有这些区间将收敛于一点 ,该点即为所求的根 当做到第n步时,若有an , bn ] 均满足 x* ~ x 即为所求方程的近似解. 此时
以上方法就是用于求方程实根近似值的二分法
3)迭代步数n的确定
因为
ba bn an bn an n 2
所以由 bn
an 得
ba ba n log 2 ( ) n 2
ba 因此只要对分 n [log 2 ( 次,则 )] 1 ~ x [an , bn ] 有 x* ~ x 注:因为 xn an1 bn1为 [an , bn ]的一个端点,所以将区间 2 [ a, b] 对分 ba
1)问题:
给定方程f(x)=0,设f(x)在区间[a,b]连续,且f(a)f(b)<0, 则方程f(x)在(a,b)内至少有一根,为便于讨论,不妨设方程 f(x)=0在(a,b)内只有一个(重根视为一个)实根 x * ,求满足 x 。 精度要求的的近似值实根 ~
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a
a12 ax1
x* b x2
b b1
停机条件(termination condition ):
xk +1 xk < ε1
或
f ( x ) < ε2
二分法求根过程
设方程f(x)=0在区间 在区间[a,b]内有根 二分法就是逐 内有根,二分法就是逐 设方程 在区间 内有根 步收缩有根区间,最后得出所求的根. 步收缩有根区间,最后得出所求的根.具体过程如下 取有根区间[a,b]之中点 将它分为两半 分点 之中点, ① 取有根区间 之中点 将它分为两半,分点
非线性方程(组 的特点 非线性方程 组)的特点 (i)无求解公式,无直接解法,难求得精确解, 无求解公式,无直接解法,难求得精确解, 无求解公式 解的存在唯一性不易确定. 解的存在唯一性不易确定. 举例: 举例:超越方程 e x + cosx = 1 没有一定的解法. 没有一定的解法. (ii)求解的方法:间接法即迭代法. 求解的方法:间接法即迭代法. 求解的方法 间接法(迭代法 从一个初始近似值出发 间接法 迭代法):从一个初始近似值出发 重复 迭代法 从一个初始近似值出发,重复 某种计算过程来不断改进近似解, 某种计算过程来不断改进近似解,有限次改进 计算出一个满足误差要求的近似解, 后,计算出一个满足误差要求的近似解,这种 计算出一个满足误差要求的近似解 求解方法称为迭代法. 求解方法称为迭代法. (iii) 迭代往往是局部收敛的. 迭代往往是局部收敛的.
定义: 定义:
f ( x) = ( x x * ) m g ( x) , 其中 为 如果f(x)可以分解成 其中m为 如果 可以分解成 则称x f(x)的 重零点 重零点, 正整数且 g ( x * ) ≠ 0 , 则称 x* 是 f(x) 的 m重零点 , 或称 方程f(x)=0的m重根.当m=1时称x*为单根. 重根. 时称x 方程 的 重根 时称 为单根.
解:
例1 用二分法求 1 内的根, 在(1,2)内的根,要求绝对误差不超过 2 × 10 2 内的根
f(1)=-5<0 f(2)=14>0 f(1.5)>0 f(1.25)<0 f(1.375)>0 f(1.313)<0 f(1.344)<0 f(1.360)<0 f(1.368)>0 有根区间 -(1,2)+ (1,1.5) (1.25,1.5) (1.25,1.375) (1.313,1.375) (1.344,1.375) (1.360,1.375) (1.360,1.368) 中点 x n
记笔记
大体确定根所在子区间的方法有: 大体确定根所在子区间的方法有: (1) 画图法 (2) 逐步搜索法 y (1) 画图法
0 2
y= 1 x
y = lgx
α
3
x
画出y = f (x)的略图,看曲线与 轴交点的大致位置. 的略图, 轴交点的大致位置. 画出 的略图 看曲线与x轴交点的大致位置 也可将f 分解为 的形式, 也可将 (x) = 0分解为1(x)= 2(x)的形式,1(x)与2(x) 分解为 的形式 与 两曲线交点的横坐标所在的子区间即为含根区间. 两曲线交点的横坐标所在的子区间即为含根区间. 例如 xlgx-1= 0 = 可以改写为lgx= ,画出曲线y=lgx与y= 1/x,它们交 可以改写为 =1/x,画出曲线 与 它们交 点的横坐标位于区间[2,3]内 点的横坐标位于区间[2,3]内 [2,3]
. 由定义 1,p是 f ( x)的 m 重零点
证毕
通常方程根的数值解法大致分为三个步骤进行 判定根的存在性.即方程有没有根? ① 判定根的存在性.即方程有没有根?如果有 有几个根? 根,有几个根? 确定根的分布范围. ② 确定根的分布范围.即将每一个根用区间隔 离开来,这个过程实际上是获得方程各根的 离开来, 初始近似值. 初始近似值. ③ 根的精确化.将根的初始近似值按某种方法 根的精确化. 逐步精确化, 逐步精确化,直到满足预先要求的精度为止
a+b ,这样就可缩小有根区间 x0 = 这样就可缩小有根区间 2
y y=f(x) y=f(x)
x* a a1 a2 x1 x* x0 b1 b2 b a x0 a1 x1 a2 b b1 b2
施行同样的手法, ② 对压缩了的有根区间 [a 1 , b 1 ] 施行同样的手法, + 再分为两半, 即取中点 x = a 2 b ,将区间 [a 1 , b 1 ] 再分为两半,然 后再确定有根区间 [a2 ,b2 ] ,其长度是 [a 1 , b 1 ] 的 二分之一 如此反复下去, ③ 如此反复下去,若不出现 f ( x k ) = 0 ,即可得出一 系列有根区间序列: 系列有根区间序列:
→∞时趋于零 当k→∞时趋于零,这些区间最终收敛于一点x* 即为 →∞时趋于零,这些区间最终收敛于一点x 所求的根 .
每次二分后, 每次二分后,取有根区间 [a k , bk ] 的中点 xk = 1 (ak + bk )
2
作为根的近似值, 作为根的近似值,得到一个近似根的序列
x
0
, x1 , x
试位法
(b, f (b))
a
x*
b
(a+b)/2 (a, f (a))
f (a ) x=a (b a ) f (b ) f ( a ) f (b ) =b (b a ) f (b ) f ( a )
非线性方程( 第三章 非线性方程(组)的数值解法
在科学研究和工程设计中, 经常会遇到的一大 在科学研究和工程设计中 类问题是非线性方程 f (x)=0 的求根问题,其中f 为非线性函数 为非线性函数, 的求根问题,其中 (x)为非线性函数,例如求 解高次方程或超越方程(含有指数和对数等 含有指数和对数等). 解高次方程或超越方程 含有指数和对数等 . 这类方程没有固定的求根公式. 这类方程没有固定的求根公式. 本章的任务就是数值求解上述方程的根或函数 的零点. 的零点.
若f(x)存在 阶导数,则是方程f(x)的m重根(m>1) 当 存在m阶导数,则是方程 的 重根( 存在 阶导数 重根 且仅当
f ( x * ) = f ′( x * ) = L = f
( m 1 )
( x * ) = 0, f
(m)
(x* ) ≠ 0
定理
设函数 f(x)∈Cm[a,b], 则点 ∈(a,b)是f(x) ( ) , 则点p∈ , 是 ( ) 重零点, 的m重零点,当且仅当 重零点 f(p) = f'(p) = f''(p) =…=f(m-1)(p)=0, 但 f(m)(p) ≠0 ( ) ( ) ( )
1 1 1
[a , b ] [a 1 , b 1 ] [a 2 , b 2 ]
L [a k , b k ] L
上述每个区间都是前一个区间的一半, 上述每个区间都是前一个区间的一半,因此 [ak , bk ] 的长度
bk a k = 1 1 ( b k 1 a k 1 ) = L = k ( b a ) 2 2
2
,L , x
k
,L
该序列以根x*为极限 该序列以根x
只要二分足够多次( 足够大), 只要二分足够多次(即k足够大),便有 x* xk < ε 足够大),便有 这里ε为给定精度,由于 x* ∈[ak ,bk ] ,则 这里ε为给定精度,
x xk
*
bk a k b a ≤ = k +1 2 2
(2) 搜索法
(2) 逐步搜索法
对于给定的f 设有根区间为[A, 从 对于给定的 (x),设有根区间为 ,B],从x0=A出 设有根区间为 出 以步长h=(B-A)/n(n是正整数 在[A,B]内取定节 发,以步长 是正整数),在 , 内取定节 从左至右检查f 点:xi=x0+ih (i=0,1,2,…,n),从左至右检查 (xi)的 , 从左至右检查 的 符号,如发现 的函数值异号, 符号,如发现xi与点xi-1的函数值异号,则得到一个缩小 的有根子区间[xi-1,xi]. 的有根b1 a2 b2
B
x
注: 用搜索法进行实根隔离的关键是选取 步长h,要选择适当h 步长 ,要选择适当 ,使之既能把根 隔离开来,工作量又不太大. 隔离开来,工作量又不太大.
§3.1 求方程实根的对分区间法 (Bisection Method )
原理: 原理: 若 f (x) ∈C[a, b],且 f (a) f (b) <0,则 , , f (x) 在 (a, b) 上必有一根.如果 '(x) 上必有一根.如果f 上恒正或恒负,则此根唯一. 在(a, b) 上恒正或恒负,则此根唯一.
x0 = 1.5
x1 = 1.25 x 2 = 1.375 x 3 ≈ 1.313 x 4 = 1.344 x 5 ≈ 1.360 x 6 ≈ 1.368 x 7 = 1.364
x 3 + 4 x 2 10 = 0
k≥log2(100)=6.6439
求方程f(x)= x 3 –e-x =0的一个实根. 的一个实根 例2 求方程 的一个实 因为 f(0)<0,f(1)>0. 故f(x)在(0,1)内有根 . 在 内有根 用二分法解之, 计算结果如表: 用二分法解之,(a,b)=(0,1), 计算结果如表: ) ( k ak bk xk f(xk)符号 符号 0 0 1 0.5000 - 1 0.5000 - 0.7500 - 2 0.7500 - 0.8750 + 3 0.8750 0.8125 - + 4 - 0.8125 0.7812 + 5 0.7812 0.7656 - - 6 0.7656 - 0.7734 + 7 0.7734 0.7695 - - 8 0.7695 - 0.7714 - 9 0.7714 - 0.7724 - 10 0.7724 - 0.7729 + 取x10=0.7729,误差为 x* -x10|<=1/211 ,误差为|