- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件
迭代过程的加速 对于收敛的迭代过程,从理论上说,只要迭代足够多次,总可得到满意的精度,但有时迭代过程过于缓慢,计算量极大,实际上得不到满意的结果。因此,迭代过程的加速便成了一个重要的研究课题。 ? 加速方案一 ? 加速方案二 ? Steffensen 加速:把 xk+1, xk+2 看作中间值, 分别记为 yk , zk 定理4.5 设 s为g(x)的不动点, g(x) 在含 s的某个开区间内有连续的二阶导数, 且 g(s) ≠1, 则存在 ? 0, 对于 x0?B? =[s- ?, s+ ?] 但 x0 ≠ s时,由 Steffensen 迭代 (4.6) 产生的序列{ xk} 至少以二阶速度收敛于 s. 证 构造函数 ψ(x), x1 = 2.71828182845905 x2 = 2.05090637269250 x3 = 1.05222437173631 x4 = 0.38760223673049 x5 = 0.19940890504091 x6 = 0.16520120975348 x7 = 0.15964562079268 x8 = 0.15876115448468 x9 = 0.15862079767211 x10 =0.15859853572488 * 腊卸射呛煮外娱彬殷市刺酷凌同坟雌水孤妥浊率跋强宠沦陷至腮犀向资趁《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件 当迭代函数 g(x) 在不动点 s 处导数不为零, 迭代 xk+1 = g(xk) 仅是线性收敛的. 现在介绍 加速法. 设由迭代公式计算出 迭代值 ,若 x 在 s 附近变化, g (x) 连续, 则 g (x) 变化不大, 近似地记为常数L,则用微分中值定理,可以得到 4.1.4 Steffensen(斯蒂芬森)迭代法 貉寿仕洼沽嘘淌辆貌悲榜辅恫贩杰拒舅澡睫茁渐衙粉绢恫网溅忧回镣何假《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件 把它作为 的一种补偿 解出s: 即记: 那么x1 应比 近似得更好。 具体算法如下: 撞凉裴纂皋悬榜佑辛帛匀患菩络秆答头傀藩煌隔歪棍渴迢树喇苏原蹋付赦《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件 例 用简单迭代法求方程 x =e-x 在x=0.5附近的一个根, 要求 解:方程 x =e-x ,迭代函数为 g(x)= e-x , 在区间 [0.5, 0.6] 内有根, 根据定理4.2知, 在 [0.5, 0.6] 内 g(x) 有不动点 s; 且迭代公式 xk+1= =e-xk产生的序列{ xk }局部收敛于 s. 计算结果: f(0.5)=0.5-e-0.5 =0.5-0.60650 f(0.6)=0.6-e-0.6 =0.6-0.54880 劈闺迈戒藏症速草矗奔也临彭肠亢狐梗倒素朱迄翌粪揖拨猿妨衙跑罐屑缄《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件 function y=JDDDL31(x0,epsilon) ek=1;xk=x0; %n=1; for n=1:16 yk=g(xk); xk=yk; ek=abs(yk-xk)/abs(xk); fprintf(\n y%d = %15.14f \n,n,yk) end fprintf(\n ek=|yk-xk|/|xk|= %f \n,ek) y=yk; %%%%%%%%%%%%%%% function Y=g(x) Y=exp(-x); 烬芜码忠卜眺假莉珠卓睛硝逢苔骄坠醛么猿液茨碟慎铲改衰箭梁夫绵初风《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件《数值分析》课件9_YQJ_Ch4非线性方程求根Q课件 x0=0.5 x0 = 0.5000 epsilon=0epsilon = 1.0000e-008 y=JDDDL31(x0,epsilon) y1 = 0.60653065971263 y2 = 0.54523921189261 y3 = 0.57970309487807 y4 = 0.56006462793890 y5 = 0.57117214897722 y6 = 0.56486294698032 y7 = 0.568438047570
文档评论(0)