浅析二分法及其Matlab和C程序实现资料_第1页
浅析二分法及其Matlab和C程序实现资料_第2页
浅析二分法及其Matlab和C程序实现资料_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浅析二分法及其 Matlab和C程序实现第一部分:二分法浅析用二分法求方程的近似解是紧跟在“函数的零点”之后的教学内容。从联系的角度看, 前面一节,学生已经学习了方程的根与函数的零点之间存在着对立统一的关系,这一节 则是介绍一种具体的方法来运用这一关系解决问题。从整个教材来分析,这一部分的内容是在“函数的应用”这一大章节之下。新课程标 准中强调函数的应用性,这里包括两个方面:一方面是函数在生活实践中的应用,函数 建模等内容属于这个范畴;另一方面则是函数在数学自身范围内的应用,“二分法”即是其中的代表。基于以上的分析,笔者给出了以下的一些教学建议,与读者朋友们分享。一、为什么要用二分法就通过试验

2、缩小搜索区间来讲,试验点不一定取中点,取其他的点也可以,那么为什么取中点呢?下面以搜索区间为0,1的情况作讨论。一种对所有搜索区间为0,1的方程f(x) = 0都适用的方法,即对集合 G=f(x) =0, f (X)连续,且f(0) f(1) < 0中的所有方程都适用的方法.一个合理的假设是:G中所 有方程f(x)= 0的根在0,1上均匀分布.设试验点是c,那么c将0,1分成0,c和c, 1两部分,它们的长度分别是c和1-c.由假设,通过试验保留的搜索区间是0,c(即 方程f(x)=0的根在0 , C中)的概率是c,通过试验保留的搜索区间是C,1的概率是1-c. 因此,通过一次试验保留的

3、搜索区间的期望长度为 c2+ (1 -c)2= 2c2- 2c+ 1=2(c- )2+ ,2 2容易看出,当c=的时候,通过一次试验保留的搜索区间的期望长度最小。这就是取中2点作为试验点的原因。二、引入方法方法1:已知商店里一件商品的利润 y与它的价格x之间满足函数关系y=x2-4x+3, 请画出这个函数的图像,并思考当价格为多少元的时候商店不盈也不亏方法2:创设问题情景:蹦极运动.设下落的时间t秒.人离开参照点“礁石尖端”的 位移为S(S=0表示人在礁石点处,向下取负,向上取正),开始下落时,时间t=0,在t 4,6时的变化如下表:t4. 04. 34. 64. 95. 25. 56. 0S

4、-5101-1018-3问:这段时间内人有几次通过礁石尖端处 ?方法3:使用“幸运52”猜测商品价格的游戏作情景.方法4:请同学们思考下面的问题:能否解下列的方程 x2-2x-1=0 lgx=3-x x4-3x-1=0特殊入手:不解方程求方程x2-2x-1=0的近似解(精确到0. 01).方法1、2、3都是以“实际问题”为情境引入.方法4以学生已有的认知水平:会求一元二次方程的实数解,对应二次函数的图像与二轴的交点坐标.让学生探究具体的一元二次方程的根与其对应的一元二次函数的 图像与二轴的交点的横坐标的关系,再探究一般的一元二次方程的根与其对应的一元 二次函数的图像与x轴的交点的横坐标的关系.

5、三、函数零点的处理用二分法求方程近似解的理论基础是零点存在定理.下面我们来看看教材上描述的 零点存在定理.如果函数y =f (x)在区间a,b上的图像是连续不断的一条曲线,并且 有f (a ) f (b)<0,那么函数y =f (x)在区间a ,b内有零点即存在c (a,b),使f (c)=0.由此可见,定理的题设部分有两个条件:(1) y =f (x)在区间a ,b上的图象是连续不断的一条曲线; f (a ) f (b)<0.学生在运用这个定理时往往会存在以下疑问: 我怎样去判断某一函数的图像在某一区间是连续不断的呢? y =f (x)满足条件(1)(2)就一定存在零点,那么是否

6、只存在一个零点呢? 若把条件改为f (a ) f (b)>0,则y =f (x)在(a,b)是否就不存在零点呢?对于问题,我们可以告诉学生我们前面所学的一次函数、二次函数、指数函数、对数函数、幕函数在它们各自的定义域内图像都是连续的.这些函数经过加减乘除或经过复合而成的新的函数在各自的定义域内图像仍然是连续的.对于问题,主要通过观察函数图像来总结.i | r图4A >3211人必恥0有四个零点/Xf/ / 1 K /'1f* /' t1/ 1:A 1i1 ./ /1140-11 2|4写*- / /t 1*11 /-2图61 /(1)对全部零点为单重零点既对应方程无

7、重根的情况.y=f (x)在区间a, b上的图象是连续不断的一条曲线且f(a) f (b)<0,则y =f (x)在(a,b)上有奇数个零点若y =f (x)在区间a, b上单调则y =f (x)在(a, b)上有唯一零点.y =f (x)在区间a , b上的图象是连续不断的一条曲线且f (a) f (b)>0,则y =f (x)在(a ,b)上有偶数个零点若y =f (x)在区间a , b上单调则y =f (x)在(a , b)上有无零点.可以看出连续函数的零点具有一个很重要的性质:函数的图象如果是连续的,当它通 过零点时,函数的值变号,也就是图象要经过该点要穿越x轴.(2)对多

8、重零点的情况/(x)=(a*-1)2(x-2)CV"3)入 =1是二重零点/U戶何1他2)x=l是三重零点“-图X从图7、图8可以看出偶数重零点不穿过x轴;奇数重零点穿过x轴函数若有一零 点为多重零点,当该零点为偶重零点时,图象通过该零点时,函数值不变号,也就是图 象经过该零点而不穿越x轴.当该零点为奇重零点时,图象经过该点时函数值要变号, 也就是图象经过该零点且穿越 x轴.处理好这个问题是本节课的关键.四、精度精确度的说明是一个无法避免的问题, 而且需要和初中学习的 “精确到”有所区分 . 教 学中不可能让学生掌握严格的、形式化的定义,而且教科书对此也作了简化处理:对于 达到精确度

9、&的界定是只要精确值所在区间的长度小于£,那么这个区间的所有的值就都是满足精确度&的近似值.那么,如何让学生明白这个含义呢?一个可行的方法就是通 过简单例子来说明问题最后,在学生思考、讨论及进一步分析的基础上给出精确度的 含义:“一般地,对于数值X,如果要获得它的满足精确度0. 01的近似值,就是找到一个包含X的区间a, b,只要I a-b|<0. 01即可”五、二分法的定义与步骤利用二分法求方程的近似解时, 学生用二分法求方程的近似解最大的困难就是第一步 . 第一步确定初始区间不好把握 . 要引导学生先研究函数的性质,画出函数大致图象,再 确定初始区间 . 如

10、果我们对函数的性质不了解,不能画出大致图象,问题比较麻烦,只 能采用尝试的办法去搜索它的初始区间 .六、信息技术的使用 有意识借助计算器和几何画板帮助学生探究得到零点个数,下面以 EXcel 为例引导学生求y=ln(2x+6)+3-3X的零点.先用画函数图象工具画出函数图象.确定初始区间为1 , 2,然后确定第一次迭代时每个单元格的公式,最后填充即可:X1(Xl+X2)/2X2f(X1)f(X1 +X2)/2) f(X2)f(X1)f(X2)f(Xi+X/2)f(刈 f(Xi +Xd/2)f(X2)精度迭代次数1. 51. 5078131. 5156250. 001072-0. 04198-0

11、. 08543-9. 15918E -05-4. 50126E-050. 0035870. 0156251. 51. 5039061. 5078130. 001072-0. 02041-0. 04198-4. 50126E-05 -2. 18796E-050. 0008570. 00781251. 51. 5019531. 5039060. 001072-0. 00966-0. 02041-2. 18796E-05-1. 03521E-050. 0001970. 00390625 91. 51. 5009771. 5019530. 001072-0. 00429-0. 00966-1. 035

12、21E -05-4. 59805E-064. 14E-050. 001953125101. 51. 5004881. 5009770. 001072-0. 00161-0. 00429-4. 59805E-06-1. 72346E-066. 89E-060. 000976563111. 51. 5002441. 5004880. 001072-0. 00027-0. 00161-1. 72346E-06 -2. 8677E-074. 3E-070. 0004882811211. 522. 0794420. 001072-3. 69741-7. 6885581540. 002229483-0.

13、00396111. 51. 7520. 001072-1. 58723-3. 69741-0. 003964201-0. 0017017555. 8686460. 521. 51.6251. 750. 001072-0. 73642-1. 58723-0. 001701755-0. 0007895521. 1688620. 2531. 51. 56251. 6250. 001072-0. 35445-0. 73642-0. 000789552-0. 0003800290. 2610250. 12541. 51. 531251. 56250. 001072-0. 1735-0. 35445-0.

14、 000380029-0. 0001860160. 0614970. 062551. 51. 5156251. 531250. 001072-0. 08543-0. 1735 -0. 000186016-9. 15918E-050. 0148220. 0312561. 5001831. 5002141. 5002446. 75E-05-1E-04-0. 00027-1. 80465E-08 -6. 74688E-092. 67E-086. 10352E-05151 5001831 50019815002146 75E-05-1 6E-05-1E-04-674688E -09-109724E-0

15、91 63E-093 05176E-05161. 5001831. 500191 1.5001986. 75E-05 2. 56E-05-1. 6E-05-1.09724E-091.72755E -09-4. 2E-101.52588E-05171. 5001911. 5001951.5001982. 56E-05 4. 67E-06-1. 6E-05-4.16389E-101.19598E -10-7. 6E-117. 62939E-06181 5001951 50019615001984 67E-06-5 8E-06-1 6E-05-759619E -11-270718E-119 43E-

16、113 8147E-06 191. 5001951. 5001961. 5001964. 67E-06 -5. 6E-07-5. 8E-06-2. 70718E-11-2. 62675E-123. 26E-121.90735E-06 201. 5001951. 5001951. 5001964. 67E-06 2. 05E-06-5. 6E-07-2. 62675E-12 9. 59574E-12 -1. 2E-129. 53674E-07 211. 5001951. 5001951. 5001962. 05E-067. 46E -07-5. 6E-07-1. 15526E-12 1. 532

17、49E-12-4. 2E-134. 76837E-07 22七、二分法思想的应用注意用二分法的思想解决其他问题.(2006 浙江 16 题)设 f(x)=3axJ+ 丁门11 , f(0) > 0, f(1) > 0,求证:a(I )a>0且-2 v v-1 ;b(n)方程f(x)=0在(0, 1)内有两个实根.证明:(略)(Ji )解法1:抛物线的顶点坐标为:'I ,3a 3a利用二分法思想L1在- 的两边乘以-,得a31b2- -.33a3又因为:-古“ b、(?+八血 f、而 |:二< .3a3a1£所以方程I ./-II在区间II 一与 ,内分

18、别有一实根 3a3a故方程I二H在二内有两个实根解法2采用“二分法”,只需证:区间(0, 1)两个端点处f(0), f(1)的符号都为正;在区间(0, 1)内寻找一个二分点,使这个二分点所对应的函数值小于0,它保证抛物线与x轴有两个不同的交点(因a> 0抛物线开口方向向上)综合、,由函数的图象 可知:方程f(x) = 0在(0,1)内必有两个不同实根.11?1在区间(0,1)内选取二等分点一,因f)= a+b+c= a+ (-a) =a< 0,224441 13所以结论得证.(若f( ) < 0不成立,可看f()是否为负,若还不成立,再看f()是否2 44为负,总之,在区间(

19、0,1)内存在一个分点,使它对应的函数值为负即可.)例2( 2006全国1112题)函数f(x) = X-1| + |x-191的最小值为()(A) 190(B) 171(C) 90(D) 45分析 因x-n|表示数轴上的动点x到点n之间的距离.当x-1| + x-19|最小时,x为 区间1 ,19内的任意一个分点;以此类推,当|x- 9| + |x- 11|最小时,x为区间9, 11内的任意一个分点;当x-10最小时,x=10.利用“二分法”的思想方法,当x是区间 1,19,2,18,3,17,,9,11共同二等分点,即 x=10 时,f(x)取得最小值, 所以 f(x)min= 10 -

20、1 + 10- 2 + 10-3 + + 1Q9 + 10-10 + 10 - 11 + + 10- 19 = 90.第一部分:二分法的Matlab和C程序实现第二部分主要通过一个实例来研究单变量非线性方程 f (x) =0的二分法求解及此方 法的收敛性,根据误差估计确定二分次数并进行求解。同时实现Matlab和C语言程序编写。从而掌握过程的基本形式和二分法的基本思想,在以后的学习过程中得以应用。一、弓丨言在科学研究与工程技术中常会遇到求解非线性方程f(x)=0的问题。而方程f(x)是多项式或超越函数又分为代数方程或超越方程。对于不高于四次的代数方程已有求根公式, 而高于四次的代数方程则无精确

21、的求根公式,至于超越方程就更无法求其精确解了。因 此,如何求得满足一定精度要求的方程的近似根也就成为了我们迫切需要解决的问题。 近年来,随着数学科学研究的不断进展,又更新了许多方程求解的方法。我们知道,对 于单变量非线性方程f (x) =0, 一般都可采用迭代法求根,由此产生了二分法。二、Matlab 实现function c,err,yc=bisect(f,a,b,delta)%f是要求解的函数%a和b分别是有根区间的左右限%delta是允许的误差界%c为所求近似解%yc 为函数 f 在 c 的误差估计 if nargin<4 delta=1e-5;end ya=feval( f &#

22、39; ,a); yb=feval( f ' ,b); if yb=0,c=b,return,end if ya*yb>0disp( (a,b)不是有根区间); return,endmax1=1+round(log(b-a)-log(delta)/log(2); for k=1:max1c=(a+b)/2; ye=feval( f ' ,c); if yc=0 a=c;b=c;break, elseif yb*yc>0 b=c;yb=yc;else a=c;ya=c; endif(b-a) end k,c=(a+b)/2,err=abs(b-a),yc=feval( f ' ,c) 例如,要求 f(x)=x3-x-1=0 在区间 1,2内的根 先在命令窗口中输入:>>fplot( xX3,0 ,1 2);grid回车后输出曲线图 现在再编写所求的非线性函数,输入: f=inline( xA3-x-1 ');bisect(f,1,2) 敲回车就能得到你想要的了、C 实现#i nclude"stdio.h"#i nclude"math.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论