版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab MathCleve Morler著陈文斌()零点和根1Bisection 我们知道 在1和2之间,先试x=3/2,因为x的平方大于2,那么 在1,3/2 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;end2Interval bisection观察一下a,b变化的情况: 程序结束需要多少次? 最后a,b是多少? 用format hex表示呢?为什么是这样的?3Interval bisectionf(x) Find a very small interval, perhaps t
2、wo 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)4Interval bisection 二分法是慢的,用上面的代码,对任何函数她都需要运行52步,但是她是完全可靠的。这与我们后面介绍的方法不同。5Newtons Method 对于求f
3、(x) = 0的根,Newton法要求过y=f(x)上任一点的切线,并求切线与x-轴的交。迭代过程是k=0; while abs(x-xprev)eps*abs(x) xprev = x; x = x-f(x)/fprime(x)end6Newtons Method对于平方根问题,Newton法是优雅而有效的Newton法k=0; while abs(x-xprev)eps*abs(x) xprev = x; x = 0.5*(x+M/x)end 1.500 1.41666666666667 1.41421568627451 1.41421356237469 1.41421356237309
4、1.414213562373096步7Newtons Method缺点: 函数f(x)必须是光滑的,要容易计算导数;初始猜想要靠近零点。优点:收敛速度快,二次收敛。如果函数的一阶和二阶导数连续,且初始值靠近零点,我们可以证明8Newtons Method下面构造一个让Newton方法无限进行而不收敛的例子Newton方法不收敛,原因?910Secant Method用有限差分来代替导数的计算k=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.400 1.4146
5、3414634146 1.41421143847487 1.41421356205732 1.41421356237310 1.414213562373107步11Secant Method如果f(x)的一阶导数和二阶导数连续Superline convergence即每作一次迭代有效位将增加1.6位再考虑一下 12Inverse Quadratic InterpolationSecant方法用前两个点来确定第三个点,能不能用三个点呢?IQIk=0; while abs(c-b)eps*abs(c) x=polyinterp(f(a),f(b),f(c),a,b,c,0); a=b;b=c;c
6、=x; k=k+1;end1.666666666666671.451.4061.414213788335491.414213562373331.414213562373101.41421356237309a,b,c=0,1,213Inverse Quadratic Interpolation a,b,c = -2,0,2 a,b,c = -2.00001,0,1.99999看一下下面两组数据,IQI方法会发生什么情况?14Zeroin Start with a and b so that f(a) and f(b) have opposite signs Use a secant step t
7、o 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, consider a secant stopIf the IQI or secant step is in the interval a,b,take it If
8、the step is not in the interval, use bisection.15fzerotxMatlab中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)16 ezplot(besselj(0,x),-30,30)17函数调用 字符串表达式 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=f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石墨坩埚市场分析及投资价值研究报告
- 人员招聘行业市场调研分析报告
- 分成格的漆器餐盘产品供应链分析
- 耳钉市场发展前景分析及供需格局研究预测报告
- 粘度计市场分析及投资价值研究报告
- 5G战略行业相关项目经营管理报告
- 真空包装机细分市场深度研究报告
- 保险精算行业经营分析报告
- 化妆品研究行业经营分析报告
- 装煤机项目运营指导方案
- 劳动合同书中英文LaborContract
- 管理房屋拆除工程投标方案(技术方案)
- 2024年成人高等教育学士学位英语水平考试大纲
- 公安基础知识辅警考试1000题
- 部编版(2024版)七年级历史上册新教材背景下如何应对新教学-新教材变化分析课件
- 《弘扬教育家精神》专题课件
- 新课标视域下信息科技项目式作业的设计与实施
- 2024-2030年中国SI和ISV行业市场深度调研及发展趋势研究报告
- 人教版数学六上第五单元《圆》全单元教学设计
- 2022《建筑工程项目管理》形考1-4答案
- 部编版(2024)一年级语文上册《语文园地四》精美课件
评论
0/150
提交评论