用“牛顿迭代法”求根号2的近似值

一、提出问题,引入新课

1、作为高中生,大家都知道根号2的近似值是1.414,这是应该记住的常数,可你知不知道如何去求这个近似值呢?(提出问题,激发兴趣,开阔思路,启迪思维,导入新课)

2、学生回答:有学生说用二分法,有学生说逐步必近(因为无法显示,故用同音字替代,但追问如何二分,如何必近,就没有下文了。(在这里主要是让学生认识到不能机械的对书本上的知识采用“拿来主义”,老师说根号2是1.414,就是1.414,要有自己的疑问和思考,不能作知识的奴隶,要作知识的主人。)

3、介绍一种可Cao作的方法

    这里提供一种可Cao作的方法:制作一个直角边为1米的等腰直角三角形(为什么要1米呢?),根据勾股定理,斜边的长度应该是根号2米,然后量出斜边的长度即可得到根号2的大小,如果测量准确的话,斜边长大约为1414毫米=1.414米,即根号2约等于1.414。当然这么做,在理论上是可行的,但在实际cao作时难度较大,因为要保证制作的等腰直角三角形的那个直角为90度,不是容易的事情,如果有一点偏差,则测量斜边长度的误差就比较大了,从而得不到正确的结果。

4、引入新课

    今天,我们要采用牛顿的“迭代法”,用循环来解决这个问题,而且还可以调控其计算精度。(利用“牛顿”的名人效应,增强学生对这个方法的期待和认同,同时板书:用牛顿的迭代法求根号2的近似值)

二、新课教学

(一)、请同学们思考一下:“迭代”这个词从字面上来看是什么意思?

(学生回答基本正确。)

    根据学生回答加以总结:“迭”就是重复、反复的意思,“代”是代入、代换的意思。所以“迭代”就是一种不断代换的作,即不断用新的数据替换旧的数据,以达到自己的目的。正是因为要重复的代换,所以会用循环来实现“迭代”的算法思想,并用这种思想来求出根号2的近似值。(通过对“迭代”词语的解释,让学生对“迭代法”有个大致的了解。)

(二)、迭代原理介绍

    通过下面的步骤叙述,我们来体验用迭代法求根号2的原理。

    第一步:构造求根号2的函数f(x)=x*x-2,令f(x)=0,则根号2是其中的一个正根,也就是函数f(x)与x轴的其中一个交点。

    第二步:选择起始区间(为什么设置这个区间,后面自然明白)

    1、设置根号2的起始区间为[0,2],并令a=0,b=2(起始区间的选择不是唯一的,只要遵从下面选择区间的原则即可)。

    2、选择区间的原则:

    区间的选取是有原则的,其端点a和b对应的函数值必须遵从f(a)· f(b)<0,即f(a)<0,f(b)> 0(或f(a)>0,f(b)< 0),根据函数连续性的特点,其函数图像必定在此区间与x轴有交点,也即方程f(x)=0在此区间有一个根,而这个根就是根号2(只讨论正根)。按照这个原则选取区间就保证了根号2一定在这个区间内,这个原则也是我们后面取舍区间必须遵从的原则。

    第三步:迭代方法

    迭代要通过循环实现,要构造循环就要找到构造循环的条件。方法是让含根号2的区间[a,b]的两个端点不断的向根号2靠近,当它们之间的距离b-a小于我们预先给定的精度(比如0.00001)时,我们认为a或b的值就可以近似的表示满足精度的根号2的近似值。即:

当达到所要求的精度时,则b-a<=0.00001,可以用a或b中的任一个作为满足精度的根号2的值。

    当未达到所要求的精度时,则b-a>0.00001,此时先找ab中点的坐标:t=(a+b)/2

    计算中点的函数值:f=t*t-2

    中点t将原来的[a,b]区间一分为二,根据新产生[a,b]区间的两个端点的函数值必须满足f(a)· f(b)<0的原则,舍掉其中的一个区间,保留符合条件的另一个区间,具体的舍取通过下面的判断实现:

    若f=0,则无需代换,中点t即为根号2的值,输出t即可;

    若f<0,执行a=t,相当于a点移动到中点t(如图一所示),此时区间[a,b]缩小为原来的一半;

    若f>0,执行b=t,相当于b点移动到中点t(如图二所示),此时区间[a,b]也缩小为原来的一半。

用“牛顿迭代法”求根号2的近似值_第1张图片   用“牛顿迭代法”求根号2的近似值_第2张图片

            图一                                    图二

 


    经过上述替换,检查新区间[a,b]的两个端点之间的距离b-a是否达到预先设定的精度要求?若b-a>0.00001,则没有达到要求,还要继续计算中点坐标和对应的函数值,判断函数值情况,将a或b移动到中点产生新的[a,b]区间,并再次检验,经过这样反复的迭代,每次迭代都会去掉一半的区间,而保留下来的[a,b]区间也就越来越小,当b-a<=0.00001时,说明已经符合设定的精度要求,此时输出t即可(为什么输出t即可呢?而不是先前所说用a或b中的任一个作为满足精度的根号2的值呢?可提问学生回答)。

你可能感兴趣的:(数据结构)