首页 > 其他 > 详细

软考程序员2009年下午试题是否有误?

时间:2014-02-09 16:46:36      阅读:285      评论:0      收藏:0      [点我收藏+]

下午第一道考题,求连续函数f(x)的根,算法是二分法,

(方程f(x)=0的解)的最简单方法是二分法。为此,首先需要在若干点上检查函数值的符号,如果发现f(a)与f(b)符号相反(a<b),则在区间(a,b)中必然存在f(x)的根。因为当x从a变到b时,连续函数的值将从正变到负(或从负变到正),必然要经过0。区间(a,b)就是根的初始范围。
取该区间的中点m,如果f(m)=0,则根就是m。如果f(a)与f(m)符号相反,则根一定在区间(a,m)中;如果f(m)与f(b)符号相反,则根一定在区间(m,b)中。因此,根的范围缩小了一半。
依此类推,将区间一半一半地分下去,当区间的长度很小(达到根的精度要求,例如0.001)时,或者当区间中点处的函数值几乎接近于0(即绝对值小于预先规定的微小量,例如0.001)时,近似计算就可以结束了。

 

按题目的意思,只要是连续函数,在区间a、b之间,若f(a)与f(b)符号相反,则有且只有一个根,

函数的曲线应该是这样的:

bubuko.com,布布扣

也就是说,题目的意思是该函数是个单调连续函数。

根据连续函数的定义:

设函数f(x)在点x0的某个邻域内有定义,如果有 lim(x->x0) f(x)=f(x0),则称函数在点x0处连续,且称x0为函数的的连续点。 设函数在区间(a,b]内有定义,如果f(x)在x=b的左极限存在且等于f(b),即: lim(x->b)- f(x)=f(b),那么就称函数在点b左连续。设函数在区间[a,b)内有定义,如果f(x)在x=a处右极限存在且等于f(a),即: lim(x->a) +f(x)=f(a),那么就称函数f(x)在点a右连续。一个函数在开区间(a,b)内每点连续,则为在(a,b)连续,若又在a点右连续,b点左连续,则在闭区间[a,b]连续,如果在整个定义域内连续,则称为连续函数。

若仅靠连续函数,根本不能限制在区间内单调递增或者单调递减,如下图函数y=x/sin(x),在区间[2,8],f(2)和f(8)符号相同,按照题目的解法,就是没有根,实际上存在两个根。

bubuko.com,布布扣

 

所以我觉得这道题目本身就是错误的,至少出题老师的高等数学没学好。

 

软考程序员2009年下午试题是否有误?

原文:http://lhf552004.blog.51cto.com/3780195/1357464

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!