零点和根.ppt

上传人:创****公 文档编号:16779822 上传时间:2022-05-18 格式:PPT 页数:19 大小:162KB
返回 下载 相关 举报
零点和根.ppt_第1页
第1页 / 共19页
零点和根.ppt_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《零点和根.ppt》由会员分享,可在线阅读,更多相关《零点和根.ppt(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Matlab Math零点和根Bisection 我们知道 在1和2之间,先试x=3/2,因为x的平方大于2,那么 在1,3/222,.64271 ,32131 ,1651 ,831 ,411 ,211 M=2;a=1;b=3;k=0; while b-aeps x=(a+b) /2; if x2 M b=x else a = x end k=k+1;endInterval bisection观察一下a,b变化的情况: 程序结束需要多少次? 最后a,b是多少? 用format hex表示呢?为什么是这样的?Interval bisectionf(x) Find a very small int

2、erval, perhaps two successive floating point numbers, on which the function change sign.k=0; while abs(b-a)eps*abs(b) x=(a+b) /2; if sign(f(x)=sign(f(b) b=x; else a = x; end k = k+1; end f = inline(x2-2); a=1; b=2;计算sqrt(2)Interval bisection 二分法是慢的,用上面的代码,对任何函数她都需要运行52步,但是她是完全可靠的。这与我们后面介绍的方法不同。Newto

3、ns Method 对于求f(x) = 0的根,Newton法要求过y=f(x)上任一点的切线,并求切线与x-轴的交。迭代过程是)( )(1nnnnxfxfxxk=0; while abs(x-xprev)eps*abs(x) xprev = x; x = x-f(x)/fprime(x)endNewtons Method对于平方根问题,Newton法是优雅而有效的Mxxf2)(M零点就是nnnnnnxMxxMxxx21221Newton法k=0; while abs(x-xprev)eps*abs(x) xprev = x; x = 0.5*(x+M/x)end 1.500000000000

4、00 1.41666666666667 1.41421568627451 1.41421356237469 1.41421356237309 1.414213562373096步Newtons Method缺点: 函数f(x)必须是光滑的,要容易计算导数;初始猜想要靠近零点。优点:收敛速度快,二次收敛。如果函数的一阶和二阶导数连续,且初始值靠近零点,我们可以证明21)( )( 21nnnexffe)(21nneOeNewtons Method)( )(1nnnnxfxfxx下面构造一个让Newton方法无限进行而不收敛的例子)(1axaxnn)()( )(axxfxfax)(21)()( ax

5、xfxf|)()(axaxsignxfNewton方法不收敛,原因?00.511.522.533.54-1.5-1-0.500.511.5xsign(x-2) sqrt(abs(x-2)Secant Method用有限差分来代替导数的计算11)()(nnnnnxxxfxfsnnnnsxfxx)(1)( )(1nnnnxfxfxxk=0; while abs(b-a)eps*abs(b) c=a;a=b; b=b+(b-c)/(f(c)/f(b)-1); k=k+1;end 1.33333333333333 1.40000000000000 1.41463414634146 1.41421143

6、847487 1.41421356205732 1.41421356237310 1.414213562373107步1311)( )( )( )( 21nnnnneeffffeSecant Method如果f(x)的一阶导数和二阶导数连续)(11nnneeOeSuperline convergence251),(1nneOe即每作一次迭代有效位将增加1.6位再考虑一下 |)()(axaxsignxfInverse Quadratic InterpolationSecant方法用前两个点来确定第三个点,能不能用三个点呢?)(),(),(cfPcbfPbafPaIQIk=0; while abs

7、(c-b)eps*abs(c) x=polyinterp(f(a),f(b),f(c),a,b,c,0); a=b;b=c;c=x; k=k+1;end1.666666666666671.401515151515151.413895450421061.414213788335491.414213562373331.414213562373101.41421356237309a,b,c=0,1,2Inverse Quadratic Interpolation a,b,c = -2,0,2 a,b,c = -2.00001,0,1.99999看一下下面两组数据,IQI方法会发生什么情况?Zeroi

8、n Start with a and b so that f(a) and f(b) have opposite signs Use a secant step to give c between a and bRepeat the following steps until |b-a|eps|b| or f(b)=0 Arrange a,b and c so that f(a) and f(b) have opposite signs |f(b)|=|f(a)| c is the previous value of b If c=a, consider an IQI stepIf c=a,

9、consider a secant stopIf the IQI or secant step is in the interval a,b,take it If the step is not in the interval, use bisection.fzerotxMatlab中zeroin的算法实现是fzero. x = fzero(FUN,x0) %x0可以是数,或区间 x = fzero(besselj(0,x),0) %? x = fzero(besselj(0,x),0,pi) x = fzerotx(besselj(0,x),0,pi)-30-20-100102030-0.5

10、00.51xbesselj(0,x) ezplot(besselj(0,x),-30,30)函数调用 字符串表达式 cos(pi*t) besselj(0,x) Inline函数Function handle bessj0 z = fzerotx(bessj0,0,pi) function y=bessj0(x) y=besselj(0,x)符号表示 syms x F=besselj(0,x) z=fzerotx(F,0,pi)F=inline(besselj(0,x)-y,x,y)x = fzerotx(F,0,2,.5)fzerogui zeroin 的图形化描述 fzerogui(besselj(0,x),0 3.83);Fzerogui.m

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com