问题 问答题

阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。

[说明]

求连续函数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(x)的根的过程。

 

 

答案

参考答案:

(1)(a+b)/2 (2)f(x),或f((a+b)/2) (3)|y|,或abs(y),其中y可由f(x)或f((a+b)/2)代替 (4)b (5)a

解析:

根据“说明”中对二分法的说明,我们知道当f(a)*f(b)< 0(即y1*y2<0)的时候,在区间(a,b)中必然存在f(x)的根。下一步就应该“取该区间的中点m”,所以空(1)就应该是将区间(a,b)的中点 m赋值给x,即答案为“(a+b)/2”;空(2)则应该是判断这个新的x带进函数中看结果y是否满足条件“f(x) ==0”,所以空(2)的答案为“f(x)”或者是“f((a+b)/2)”等其他等价的值。 得到新的f(x)值之后,首先判断其绝对值是否满足条件(几乎接近于0)小于0.001,所以空(3)的答案为“fabs(y)”或者“fabs(f(x))”、“fabs(f((a+b)/2))”都可以。 如果满足求解的条件(几乎接近于0)就说明x为函数f(x)的根,直接输出根x。如果不满足条件,根据题意我们需要判断f(a)与f(m)的符号是否相反,如果符号相反,则说明“f(x)==0”的根存在于新的区间(a,m)之间,就需要把m的值(也是x的值)赋值给b,创建新的 (a,b)区间用来求解,所以空(4)应该是将x的值赋给“b”;如果符号相同,则f(b)与f(m)的符号是相反的,说明“f(x)==0”的根存在于新的区间(m,b)之间,就需要把m的值(也是x的值)赋值给a,创建新的 (a,b)区间用来求解,所以空(5)的答案为“a”。 在做这道题的时候需要注意两点: (1)已知的条件“a<b”,如果忽略了这点,后面的空(4)和空(5)就很难做出正确的答案; (2)x为f(x)的根的条件是“几乎接近于0”,可能大于或者小于0,所以空(3)处在做判断的时候是需要绝对值小于0.001。

单项选择题
选择题