340 likes | 526 Views
数值分析 第三章 非线性方程的数值解法. 数学与统计学院. 简介( Introduction). 我们知道在实际应用中有许多非线性方程的例子,例如 (1)在光的衍射理论( the theory of diffraction of light) 中,我们需要求 x-tanx=0 的根 (2)在行星轨道( planetary orbits) 的计算中,对任意的 a 和 b, 我们需要求 x-asinx=b 的根 (3) 在数学中,需要求 n 次多项式 x n + a 1 x n-1 +...+ a n-1 x + a n =0 的根. 求 f(x)=0 的根.
E N D
数值分析第三章 非线性方程的数值解法 数学与统计学院
简介(Introduction) • 我们知道在实际应用中有许多非线性方程的例子,例如 • (1)在光的衍射理论(the theory of diffraction of light)中,我们需要求x-tanx=0的根 • (2)在行星轨道( planetary orbits)的计算中,对任意的a和b,我们需要求x-asinx=b的根 • (3) 在数学中,需要求n次多项式xn + a1xn-1+...+an-1 x + an=0的根 求f(x)=0的根
§3.1 对分区间法 (Bisection Method ) 原理:若 f(x)C[a, b],且 f (a) · f (b) < 0,则f(x)在 (a, b) 上必有一根。
或 a b 停机条件(termination condition ): a2 a1 x1 x* b1 x2 b2
误差 分析: 第1步产生的 有误差 第 k 步产生的 xk 有误差 对于给定的精度 ,可估计二分法所需的步数 k :
例1 用二分法求 在(1,2)内的根,要求绝对误差不超过 解: f(1)=-5<0 有根区间中点 f(2)=14>0 -(1,2)+ f(1.25)<0 (1.25,1.5) f(1.375)>0 (1.25,1.375) f(1.313)<0 (1.313,1.375) f(1.344)<0 (1.344,1.375) f(1.360)<0 (1.360,1.375) f(1.368)>0 (1.360,1.368) f(1.5)>0 (1,1.5)
例2,求方程f(x)= x 3 –e-x =0的一个实根。 因为 f(0)<0,f(1)>0。 故f(x)在(0,1)内有根 用二分法解之,(a,b)=(0,1)’计算结果如表: k a 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 。 12
Remark1:求奇数个根 Find solutions to the equation on the intervals [0, 4],Use the bisection method to compute a solution with an accuracy of 10-7. Determine the number of iterations to use..
[0,1], [1.5, 2.5] and [3,4], 利用前面的公式可计算 迭代次数为k=23.
Remark2:要区别根与奇异点 Consider f(x) = tan(x) on the interval (0,3).Use the 20 iterations of the bisection method and see what happens. Explain the results that you obtained.(如下图)
§3.2 单个方程的迭代法 等价变换 f (x) = 0 x = g (x) f (x) 的根 g (x) 的不动点 f(x)=0化为等价方程x=g(x)的方式是不唯一的,有的收敛,有的发散 For example:2x3-x-1=0
(1)如果将原方程化为等价方程 取初值 由此可见,这种迭代格式是发散的
(2) 如果将原方程化为等价方程 仍取初值 依此类推,得 x3 = 0.9940 x4 = 0.9990 x5 = 0.9998 x6 = 1.0000 x7 = 1.0000 同样的方程 ⇒ 不同的迭代格式 有不同的结果 什么形式的迭代法能够收敛呢? 已经收敛,故原方程的解为 x = 1.0000
收敛性分析 定义2若存在常数(0≤ <1),使得对一切x1,x2∈[a,b], 成立不等式 |g(x1)-g(x2)|≤ |x1-x2|, (5) 则称g(x)是[a,b]上的一个压缩映射, 称为压缩系数
定理3.2.1 考虑方程 x = g(x), g(x)C[a, b], 若 ( I ) 当 x[a, b] 时, g(x)[a, b]; ( II )在[a,b]上成立不等式:|g(x1)-g(x2)|≤ |x1-x2|。 则(1)g在[a,b]上存在惟一不动点x* (2)任取 x0[a, b],由 xk+1 = g(xk) 得到的序列 {xk}([a,b】) 收敛于x*。 (3)k次迭代所得到的近似不动点xk与精确不动点x*有有误差估计式:
§3 Fixed-Point Iteration 证明:① g(x) 在[a, b]上存在不动点? 令G(x)=g(x)-x, x∈[a,b],由条件①知G(a)=g(a)-a≥0, G(b)=g(b)-b≤0. 由条件②知G(x)在[a,b]上连续,又由介值定理知 存在x*∈[a,b],使G(x*)=0,即x*=g(x*). ② 不动点唯一? 若有x′∈[a,b],满足g(x′)=x′,则 |x*-x′|=|g(x*)-g(x′)|≤ |x*-x′|. 因0≤ <1,故必有 x′=x* ③ 当k 时,xk 收敛到 x* ? |xk-x*|=|g(xk-1)-g(x*)|≤ |x k-1-x*| ≤ 2|xk-2-x*| ≤… ≤ k|x0-x*|0,
§3 Fixed-Point Iteration 可用 来控制收敛精度 (4) |xk-x*|=|g(xk-1)-g(x*)|≤ |x k-1-x*| ≤ (|xk-xk-1|+|xk-x*|), 故有 |xk-x*| ≤ /(1-)|xk-xk-1|. 这就证明了估计式(6). (5) |xk-xk-1|= |g(xk-1)-g(xk-2)| ≤ |x k-1-xk-2|≤…≤ k-1|x1-x0| 联系估计式(6)可得 |xk-x*| ≤ k-1/(1-)|x1-x0|. 即估计式(7)成立 越小,收敛越快
Remark: 定理条件非必要条件,而且定理3.2.1中的压缩条件不好验证,一般来讲, 若知道迭代函数g(x)∈C1『a,b],并且满足|g′(x)|≤ ≤1,对任意的x∈[a,b], 则g(x)是[a,b]上的压缩映射
例题 • 已知方程2x-7-lgx=0,求方程的含根区间,考查用迭代法解此方程的收敛性。
在这里我们考查在区间[3.5,4]的迭代法的收敛性在这里我们考查在区间[3.5,4]的迭代法的收敛性 • 很容易验证:f(3.5)<0,f(4)>0 • 将方程变形成等价形式:x=(lgx+7)/2 由定理3.2.1知,迭代格式xk+1=(lgxk+7)/2 在[3.5,4]内收敛
局部收敛性定理 定理3.2.2设x*为g的不动点,g(x)与g′(x)在包含x*的某邻域U(x*) (即开区间)内连续,且|g′(x*)|<1,则存在>0,当x0∈[x* - ,x*+ ]时,迭代法(3)产生的序列{xk} [x* - ,x*+ ]且收敛于x*. 证明略(作为练习) We don’t know x*,how do we estimate the inequality?
举例 用一般迭代法求x3-x-1=0的正实根x* 容易得到:g′(x)在包含x*的某邻域U(x*) 内 连续,且|g′(x*)|<1
例题 用一般迭代法求方程x-lnx=2在区间(2,)内的根,要求|xk-xk-1|/|xk|<=10-8 解:令f(x)=x-lnx-2 f(2)<0,f(4)>0,故方程在(2,4)内至少有一个根
将方程化为等价方程:x=2+lnx 因此, x0(2,),xk+1=2+lnxk产生的序列 xk 收敛于X* 取初值x0=3.0,计算结果如下:
7 3.146143611 8 3.146177452 9 3.146188209 10 3.146191628 11 3.146192714 12 3.146193060 13 3.146193169 14 3.146193204 k xi 0 3.000000000 1 3.098612289 2 3.130954362 3 3.141337866 4 3.144648781 5 3.145702209 6 3.146037143
另一种迭代格式: 0 3.000000000 1 3.147918433 2 3.146193441 3 3.146193221
程序演示 由此可见,对同一个非线性方程的迭代格式,在收敛的情形下,有的收敛快,有的收敛慢。
迭代法的收敛阶(收敛速度) 定义1. :设序列{xk}收敛于x*,若存在p≥1和正数c, 使得成立 则称{xk}为 p 阶收敛的 特别, p = 1,要求c<1, 称线性收敛; 1<p<2,称超线性收敛 p=2,称平方收敛。
定理3.2.3 • 设x*为g的不动点,p≥2为正整数,g在x*的某邻域U(x*)内p阶连续可微,且 • g′(x*)=g″(x*)=…=g (p-1)(x*)=0,而g(p)(x*)≠0, • 则存在>0,当x0∈ [x* - ,x*+ ] (x0≠x*)时,由迭代法(3)产生的序列{xk}以p阶收敛速度收敛于x*.
Prove: • (1)由g′(x*)=0必存在>0,当x0∈ [x* - ,x*+ ] U(x)时,由迭代格式(3)产生的序列{xk}收敛于x*,并有xk∈ [x* - ,x*+ ] • (2)由泰勒公式有xk+1=g(xk)=g(x* )+g′(x*)(xk- x*)+…+g (p-1) (x*)(xk-x*) p-1/(p-1)! + g (p)(x*+ (xk-x*))(xk-x*) p /p! ,0<<1. • 利用g在x*的各阶导数条件及g(x*)=x*,上式可改写成 (11)
(3)由于g在x*处p阶连续可微且g(p)(x*)≠0,知必存在x*的某邻域U(x*),当x∈U(x*)时,有g (p) (x)≠0. • 由于x*+ (xk-x*) ∈ [x* - ,x*+ ] U(x*),故 • g (p)(x*+ (xk-x*)) ≠0,k=0,1,2,…. • 可见,当初值x0≠x*时,由(11)式可推出诸xk≠x* • 于是由(11)式有 • 上式令k→∞取极限. 即{xk}有p阶收敛速度.
作业(homework) P159:第二题 P160:第三题