为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

4计算函数零点和极值点的迭代法

2019-04-22 26页 doc 165KB 40阅读

用户头像

is_209869

暂无简介

举报
4计算函数零点和极值点的迭代法第4章  计算函数零点和极值点的迭代法 本章讨论非线性方程(组)的求解问题 4.1  不动点迭代法及其收敛性 1.不动点 设非线性方程组f(x) = 0    (4.1-1) 等价:        x = (x)    (4.1-2) 则有迭代格式:x(k+1) = (x(k)),k = 0,1,2,… 若连续,且迭代序列{x(k)}收敛到x*,则两边取极限得x* = (x*),即x*满足(4.1-2),从而满足(4.1-1),即x*为f零点。 称x*为(x)的不动点。 注:(1) 求零点 求不动点 (2) (.)称为迭...
4计算函数零点和极值点的迭代法
第4章  计算函数零点和极值点的迭代法 本章讨论非线性方程(组)的求解问题 4.1  不动点迭代法及其收敛性 1.不动点 设非线性方程组f(x) = 0    (4.1-1) 等价:        x = (x)    (4.1-2) 则有迭代:x(k+1) = (x(k)),k = 0,1,2,… 若连续,且迭代序列{x(k)}收敛到x*,则两边取极限得x* = (x*),即x*满足(4.1-2),从而满足(4.1-1),即x*为f零点。 称x*为(x)的不动点。 注:(1) 求零点 求不动点 (2) (.)称为迭代函数,{x(k)}称为迭代序列 (3) 不同构造迭代函数,得不同的迭代序列 2.迭代法的基本问题 (1) 如何构造适当的迭代函数(.)使迭代序列{x(k)}收敛 (2) 收敛的速度和误差 (3) 如何加速 4.1.1  解一元方程的迭代法 1. 根的隔离 设一元方程f(x) = 0,f连续,其实根可能有很多,需将各根隔离,即f在[a,b]内有且仅有一根。 方法:设f C[a,b],f(a)f(b) < 0,且f在[a,b]上单调,则f在[a,b]内有且仅有一根。 2. 迭代序列的收敛性 因为可以有多种迭代函数,所产生的迭代序列{x(k)}有可能: (1)    收敛快 (2)    收敛慢 (3)    不收敛 例1  f(x) = x3 – x – 1 = 0,求f在x = 1.5附近的根,初值取x(0) = 1.5。(p328) 取 ——收敛 取(x) = x3 – 1——不收敛 定理4.1-1 (1) 设(x) C[a,b],且对于任意x [a,b]有 (x) [a,b],则在[a,b]上必有不动点。 (2) 进一步,若(x) C1[a,b],且存在L < 1,使对于任意的x [a,b]有| '(x)| L < 1  (4.1-4) 则对于任意的x(0) [a,b],x(k+1) = (x(k))收敛于唯一不动点x* [a,b]。且有 (4.1-5) :(1) 若(a) = a或(b) = b,则结论显然成立 现设a < (a),(b) < b,令(x) = (x) – x,则(x) C[a,b],且(a) = (a) – a > 0,(b) = (b) – b < 0,故存在x* [a,b],使(x*) = 0,即(x*) – x* = 0 (x*) = x* (2) 设(x) C1[a,b],且满足(4.1-4),若有x1*,x2* [a,b],x1* x2*,(xi*) = xi* i = 1,2 由微分中值定理,|x1* – x2*| = |(x1*) – (x2*)| = |'(ξ)| |x1* – x2*| L|x1* – x2*| < |x1* – x2*| 矛盾,所以不动点唯一。 由|x(k) – x*| = |( x(k-1)) – (x*)| L|x(k-1) – x*| … L k|x(0) – x*| 及0 < L < 1知 即x(k)收敛于x*。 并且由|x(k) – x*| L|x(k-1) – x*|得 |x(k) – x*| L|x(k-1) – x(k) + x(k) – x*| L|x(k-1) – x(k)| + L|x(k) – x*| 从而有 又因 |x(k) – x(k-1)| = |(x(k-1)) – (x(k-2))| L| x(k-1) – x(k-2)| … L k-1| x(1) – x(0)|,代入上式的右边,即得 注:(1) 若L 1,则收敛很慢,须考虑加速问题 (2) (4.1-5)中第一式为后验公式—迭代停止准则 第二式为先验公式—预测迭代次数 (3)    定理是以[a,b]中任一点作初值,迭代都收敛,称为全局收敛。 (此要求较难满足,故考虑在) x*的某一邻域内—局部收敛性 定理4.1-2  设x*为的不动点, '在x*的某邻域内连续,且| '(x*)| < 1,则存在 > 0,只要x(0) [x* –,x* + ],迭代法x(k+1) = (x(k))收敛。 证明:∵|'(x*)| < 1,及 '(x)在U(x*)内连续,存在 > 0,使[x* –,x* + ] U(x*),且 x [x* –,x* + ]有| '(x)| q < 1 x [x* –,x* + ],|(x) –x*| = |(x) – (x*)| = |'(ξ)| |x – x*| q|x – x*| < ,即(x) [x* –,x* + ],由定理4.1-1知,任意x(0) [x* –,x* + ],迭代法x(k+1) = (x(k))收敛。 注:只要x(0)充分接近x*,且| '(x(0))| 明显小于1,则{x(k)}收敛于x*。 例2  求方程x = e–x在0.5附近的根。 由于| '(0.5)| = e–0.5 0.61明显小于1,故收敛 3. 收敛阶 定义4.1-1  设x(k) x*,记ek= x(k) - x* 若存在p 1,及c 0,使 则称{x(k)}是p阶收敛的,或称收敛阶为p(p越高收敛越快) 注: (1) p = 1,0 < c < 1,称为线性收敛; (2) p > 1,称超线性收敛 (3) p = 2,称平方收敛 因为| x(k+1) –x*| = |(x(k)) – (x*)| = |'(ξ)| |x(k) – x*|,其中ξ在x(k)和x*之间。 则 所以若 '(x*) 0,则为线性收敛 想得到更高阶的收敛性,须 '(x*) = 0,通常可考虑麦克劳林展式。 定理4.1-3  设x*为的不动点,正整数p 2,若(p)在x*的某邻域内连续,且满足 (4.1.6) 则{x(k)}p阶局部收敛。 证明:∵ '(x*) = 0(<1),∴x(k)局部收敛。设(x)在x*处展开为 由(4.1-6)知, 所以 即{x(k)}p阶局部收敛。 例3  设f C2[a,b], (x) = x – r1(x)f(x) – r2(x)f 2(x),x*为f的单重零点。试确定未知函数r1(x)、r2(x),使迭代法x(k+1) = (x(k))至少是三阶局部收敛的。解:由定理4.1-3知,应有 '(x*) = "(x*) = 0因为 '(x) = 1 – r1'(x)f(x) – r1(x)f '(x) – r2'(x)f 2(x) – 2r2(x)f (x)f '(x)而f(x*) = 0,f '(x*) ≠ 0(单重零点),令 '(x*) = 0,有1 – r1'(x*)f '(x*) = 0即取 ,则有 '(x*) = 0此时有 '(x) = – r1'(x)f(x) – r2'(x)f 2(x) – 2r2(x)f (x)f '(x) "(x) = – r1"(x)f(x) – r1'(x)f '(x) – r2"(x)f 2(x) – 4r2'(x)f (x)f '(x) – 2r2(x)[f '(x)]2– 2r2'(x)f (x)f "(x) 其中 令"(x*) = 0,有 ,即取 ,则有"(x*) = 0从而只要同时取 , ,迭代法至少具有三阶局部收敛性。 4. 加速 幂法中曾有Aitken加速,这里使用相同的思想 若x(k) x*,由中值定理, x(k+1) – x* = (x(k)) – (x*) = '(ξ1)(x(k) – x*)   ξ1在x(k)和x*之间x(k+2) – x* = (x(k+1)) – (x*) = '(ξ2)(x(k+1) – x*)   ξ2在x(k+1)和x*之间因为x(k) x*,所以当k充分大时, '(ξ1) '(ξ2) 即 (4.1-7) 记 ,则{ }比{x(k)}收敛得快。 定理4.1-4  设{x(k)}线性收敛于x*,且k 0,ek = x(k) – x* ≠ 0   0 < | | < 1    (线性收敛) 则 证明:因为 所以ek+1 = ( +εk)ek,其中εk 0 x(k+1) – x(k) = x(k+1) – x* – (x(k) – x*) = ek+1 – ek = [( – 1) + εk]ek 又 x(k+2) – 2x(k+1) + x(k) = (x(k+2) – x(k+1)) – (x(k+1) – x(k)) = [( – 1) + εk+1]ek+1 – [( – 1) + εk]ek = [( – 1) + εk+1]( + εk)ek – [( – 1) + εk]ek = [( – 1)2 + k]ek. 其中 k = εk+1 +( – 2 )εk +εk+1εk 0 所以 注:(1) (4.1-7)成为Aitken加速 (2)   k = 1,2,… 称为史蒂文生迭代法。 例4  用迭代法和Steffensen迭代法求函数f(x) = x – lnx – 2在区间(2,+)内的零点,取x(0) = 3. 解:将f(x) = 0化为等价的方程x = lnx + 2 = (x),由于 '(x) = 1/x在[2,+)上满足| '(x)| ≤ 1/2 <1,且2 < (x) < +,所以迭代法x(k+1) = ln x(k) + 2收敛。 Steffensen迭代法的计算公式为: 取初值x(0) = 3作迭代,结果见p336 迭代法x(k+1) = ln x(k) + 2: x0=3 k=1 x1=log(x0)+2 while (abs(x1-x0)>0.0000001) x0=x1;k=k+1 x1=log(x0)+2 end Steffensen迭代法 x0=3 k=1 y=log(x0)+2 z=log(y)+2 x1=z-(z-y)^2/(z-2*y+x0) while (abs(x1-x0)>0.0000001) x0=x1;k=k+1 y=log(x0)+2 z=log(y)+2 x1=z-(z-y)^2/(z-2*y+x0) end 4.1.2  解非线性方程组的迭代法 设非线性方程组f(x) = 0        (4.1-1) 考虑等价形式 x = Φ(x)          (4.1-2) 迭代公式x(k+1) = Φ(x(k))    k = 0,1,2,…    (4.1-3) 其收敛性有下述压缩映射(不动点)原理 Th4.1-5  设Φ在闭区域 上满足条件 (1) 存在q,0 < q < 1,使x,y ,有||Φ(x) – Φ(y)|| q||x – y|| (2) x Φ(x) 则 (1) 存在唯一不动点x* ,且 x(0) ,迭代向量列收敛于x*。 (2) 证明与Th2.4-3相似 注: (1) 保证序列 (2) 若i(x)在 上可微,Φ(x) = (1(x),2(x),…,n(x))T 记 ,则压缩条件可用下式替代 例5  4.2    Newton迭代法及其变形 4.2.1  一元非线性方程 f(x) = 0 1. 牛顿迭代方法 线性化:  设f(x)在点x(k)处可微,则展开 用线性部分近似示 f(x) f(x(k)) + f '(x(k))( x – x(k)) 即考虑方程f(x(k)) + f '(x(k))( x – x(k)) = 0 若f '(x(k)) ≠ 0,则有 令:     k = 0,1,2,…    (4.2-4) 称为Newton迭代公式,其迭代函数为 (4.2-5) 2. 收敛性 (1) 若x*是f(x)的单重根: f(x*) = 0,f '(x*) ≠ 0 因为 一般不为0 所以,牛顿法是局部二阶收敛的  ——由定理4.1-3 例1  用Newton法求非线性方程f (x) = xex – 1 = 0在(0,1)内的根,取x(0) = 0.5。 解:因为f (x) = (1 + x)ex,故其Newton迭代公式为 ,k = 0,1,2,… 从x(0) = 0.5出发,计算结果见p342表4.2-1。 (2) 若x*是f(x)的重根,即有f(x) = (x – x*)mg(x),其中g(x*) ≠ 0,m 2 因为f '(x) = m(x – x*)m-1g(x) + (x – x*)mg'(x) 记x = x* + h,则 当m 2时, '(x*) ≠ 0,由| '(x*)| < 1,知Newton迭代法一阶收敛。 (3) (2)的改进中若取 ,易知有 '(x*) = 0所以,若事先知道x*的重数,则可改迭代公式为 (4.2-6) 此时,迭代序列{x(k)}是二阶收敛的。 或令 ,则x*是 的单重零点,应用Newdon法于u(x),有 (4.2-7) 迭代序列也是二阶收敛的 例2  是方程x4 – 4x2 + 4 = 0的二重根 (1) 采用Newdon法 即 (2) 采用(4.2-6) (3) 采用(4.2-7) , 即 计算结果见343页表4.2-2 4.2.2  多元非线性方程组 f(x) = 0    (4.1-1) 1. Newdon迭代公式 线性化 设f(x) = [f1(x),f2(x),…,fn(x)]T在点x(k)处可微,将fi(x)在点x(k)处展开 用线性函数近似表示,即有 (i = 1,2,…,n) 其矩阵形式:f(x(k)) + Df (x(k))( x – x(k)) = 0    (4.2-1) 其中 是f(x)在点x(k)处的Jacobi矩阵 若Df(x(k))可逆,则由(4.2-1)解出x = x(k) – [Df (x(k))]-1f(x(k)) 令x(k+1) = x(k) – [Df (x(k))]-1f(x(k))            (4.2-2) 称(4.2-2)为解方程组(4.2-1)的Newdon迭代公式,其迭代函数为 x – [Df (x)]-1f(x) 注:由于求逆较难,一般可解方程组: Df(x(k))Δx(k) = – f(x(k)) 求得Δx(k) = x(k+1) – x(k)即得迭代公式: k = 0,1,2,…    (4.2-3) 2. 收敛性 定理4.2-1  设x*是f(x)的零点,f(x)在x*的某一领域N内二次连续可微,且Df(x*)可逆,则存在闭球S = {x | ||x – x*|| ≤ } N,由S内任一点x(0)出发,按公式(4.2-2)产生的序列{x(k)}被包含在S内(x(0) S {x(k)} S),且有||x(k+1) – x*|| ≤ C||x(k) – x*||2,其中C与k无关。 证明:因为Df(x)在x*处连续,且Df(x*)可逆,故存在 > 0,使在S = {x | ||x – x*|| ≤ } N上Df(x)可逆,且f二次连续可微于S。又因为f(x*) = 0,所以若x(k) S,就有 x(k+1) – x* = x(k) – x* – [Df (x(k))]-1[f(x(k)) –f(x*)]      (f (x*) = 0) = [Df (x(k))] -1[f(x(k)) –f(x*) + Df (x(k))(x(k) – x*)] ||x(k+1) – x*|| ≤ ||[Df (x(k))] -1|| || f(x(k)) –f(x*) + Df (x(k))(x(k) – x*)|| ≤ ||[Df (x(k))] -1|| max{||D2f (x* – t(x(k) – x*))||:0 ≤ t ≤ 1} ||x(k) – x*||2 因为f在S上二次连续可微,所以max{||D2f (x* – t(x(k) – x*))||:0 ≤ t ≤ 1} ≤ M [Df (x(k))] -1在S上连续,所以||[Df (x(k))] -1|| ≤ D,这里M、D与k无关。  ||x(k+1) – x*|| ≤ D M ||x(k) – x*||2 = C||x(k) – x*||2 . 只要C < 1,就有||x(1) – x*|| ≤ C||x(0) – x*||2 ≤ C2 ≤   x(1) S  再由归纳法可证:x(k) S  (k) 注:由 知,Newton法是局部二阶收敛的。 例3  用Newton法求非线性方程组 在点(1,5,1)附近的根。 解: 由迭代公式 有 从x(0) = (1,5,1)T出发,计算结果见p345表4.2-3。 注:虽然Newton法收敛较快,但 (1) 要求x(0)充分靠近x*才能保证其收敛性 (2) 每一次迭代须解方程组Df(x(k))Δx(k) = – f(x(k)) 当Df(x(k))不可逆时无法继续 3. 改进——Newton下山法 为改善对初始值的要求,在迭代公式中引入松弛因子k: x(k+1) = x(k) – k[Df (x(k))]-1f(x(k)) 或Df(x(k))Δx(k) = –k f(x(k)) 其中k的选取满足:||f (x(k +1))|| < || f(x(k))||.    (4.2-10) 即|| f(x(k))||严格单减,且{ x(k)}收敛于f的零点。 方法(1) 依次令 进行“试探”,直到(4.2-10)满足,再进行下一次迭代,若选不到k,则Newton下山法失败 方法(2) 求 的最小值点* 令x(k +1) = x(k) – *[Df (x(k))]-1f(x(k)) 这样迫使序列{|| f(x(k))||}严格单调下降,从而从某个x(k)开始进入x*的附近。  4.3  无约束优化问题的下降迭代法 问题:求函数F(x)的最小值,即确定x* Rn使 注:(1) 该问题为最优化理论中无约束化问题 (2) 上述最小值点记为 4.3.0  预备知识 (1) 设F(.)具二阶连续偏导数,记 F的梯度 g为多元向量值函数,故有Jacobi阵: 称为F的Hesse矩阵 (2) 泰勒展开: (3) (4) 设     ——二次函数,其中A正定,b为向量 则F(x) = Ax + b  其中 (5) 下降迭代法——求 目标:构造使F(x)逐步严格下降(递减)的迭代序列: F(x(k +1)) < F(x(k))    k = 0,1,2,... 想法:设已有点x(k),若从x(k)出发沿任何方向移动F(x)都不再严格减少,则x(k)为局部最小值点。若至少有一个方向,使F(x)严格减少,则从中任选一方向pk,并在此方向上移动一步: x(k +1) = x(k) + tkpk    (4.3-1) 其中tk > 0(称为步长因子)使 F(x(k +1)) = F(x(k) + tkpk) < F(x(k))         (4.3-2) 若此方法产生的序列{x(k)}收敛于x*,则此方法有效,否则无效。 方法:不同规则对应不同的方法。 注:(1) 下降方向pk的选取: 由泰勒展式知,当t充分小时 F(x(k) + tpk) = F(x(k)) + t [F(x(k))]Tpk +o(t) = F(x(k)) + t gkTpk +o(t) 其中o(t)为t的高阶无穷小,gk = F(x(k)) 由(4.3-2)知,应有gkTpk < 0            (4.3-3) 例如取pk = – gk (F(x)沿负梯度方向下降最快)称为最速下降 (2) 步长因子的选取: tk可沿射线x = x(k) + tpk (t > 0) 进行一维搜索来确定 例如,取 tk = argminF(x(k) + tpk)    (4.3-4)    称为最佳步长因子 实际计算不易求得,通常求不精确最佳步长因子 例如,使用“成功-失败”试探法 先取定一步长因子,若F(x(k) + pk) < F(x(k)),则成功,否则失败,再取步长因子/2比较,... 4.3.1  最速下降法 1. 迭代公式 取pk = – gk ( = F(x(k)))即为最速下降法,其迭代公式(以选最佳步长因子为例) k = 0,1,2,...    (4.3-5) 例1  设 (4.3-6) ——二次函数,其中A正定,则 ——可以求出最佳步长因子tk 事实上:因为g(x) = F(x) = Ax + b 所以gk = Ax(k) + b gk+1 = Ax(k+1) + b = A(x(k) – tkgk) + b = Ax(k) + b – tkAgk =gk – tkAgk 另一方面: 所以 而 所以 – [F(x(k) – tkgk)]Tgk = – [F(x(k+1))]Tgk = – gk+1Tgk = 0    (4.3-7) 从而0 = [gk – tkAgk]Tgk = gkTgk – tkgkTAgk       (4.3-8) 所以二次函数(4.3-6)最速下降法的迭代公式为
/
本文档为【4计算函数零点和极值点的迭代法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索