高中数学 第五章 第13课时《算法案例三》教案(学生版) 苏教版必修3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第13课时 5.4 算法案例
重点难点
重点:理解区间二分法的意义,学会分析类似的问题;通过案例分析,体会算法思想, 难点:理解二分法的算法思想和算法表示
学习要求
1.理解区间二分法的意义,二分法主要是采用了循环结构处理问题要会分析类似的问题;
2.能由流程图分析出期所含有的结构并用为代码表示出相应的算法.
3.GoTo 语句的认识及其他语句的进一步熟悉
【课堂互动】
问题:用区间二分法写出方程
013=--x x 在区间[1,1.5]内的一个近
似解(误差不超过0.001)的一个算法。 【算法设计思想】
令函数1)(3--=x x x f .如图,如果估计出方程()0f x =在某区间[,]a b 内有一个根*
x ,就能用二分法搜索求得符合误差限制c 的近似解.
取[a ,b]的中点0x ,如果f(0x )=0,那么0x 就是方程的根;否则判断根*
x 在0x 的左侧还是右侧,如果在左侧,就用[a ,0x ]代替区间 [a ,b]。如果在右侧,就用[0x ,b]代替区间[a ,b],如此循环下去,直到
|a-b| 0.001)时终止,此时* x ≈0x 。 算法如下: S1 取[a ,b]的中点)(2 1 0b a x += ,将区间一分为二; S2 若0)(0=x f ,则0x 就是方程的根;否则判断根*x 在0x 的左侧还是右侧: 若)()(0x f a f >0,则),(0*b x x ∈,以0x 代替a ; 若)()(0x f a f <0,则),(0*x a x ∈,以0x 代替b ; S3 若b a - 【流程图】 代码1: 0)(0=x f )()(0x f a f <0 开始 Y 结束 输入a ,b ,c )(a f ←13--a a )(0x f ←10 30--x x 输出0x )(2 1 0b a x += a ←0x b ←0x b a - N Y N Y N Read a,b,c 02 a b x +← While ||a b c -≥ And 3 0010x x --≠ If 3(1)a a --⨯3 00(1)x x --<0 0b x ← Else 0a x ← End If 02 a b x +← End While Print 0x 代码2: 10 Read ,,a b c 20 0() 2 a b x +← 30 3()1f a a a ←-- 40 3 000()1f x x x ←-- 50 If 0()0f x = Then GoTo 120 60 If 0()()0f a f x < Then 70 0b x ← 80 Else 90 0a x ← 100 End If 110 If ||a b c -≥ Then GoTo 20 120 Print 0x 【追踪训练】 1.在直角坐标系中作出函数x y 2=和x y -=4的图象,根据图象判断方程 x x -=42的解的范围,再用二分法求这个 方程的近似解(误差不超过0.001),并写出这个算法的伪代码,画出流程图。 【解】由图像可知方程x x -=42有一个根在[1,2]内。 a ←1 b ←2 c ←0.001 While b a -≥c 0x ←(a+b)/2 )(a f ←42-+a a )(0x f ←42 00 -+x x If )(0x f =0 Then Exit While If )()(0x f a f <0 Then b ←0x Else a ←0x End If End While Print 0x 流程图如下: