论文部分内容阅读
摘 要:新课程改革的推进实施,使计算机的“算法”内容已经进入中学数学教材,算法设计的优劣需要上机检验,算法设计的改进需要调试修正,这就直接为“数学实验”在中学的开展提供了一种可能。笔者认为:“数学实验”为中学数学教学与信息技术的整合开拓了一个广阔的前景和新的研究领域,这对启发学生思维、开发智力、培养创新能力等方面,将会起到越来越大的作用。而且,对基础教学来说,是一种开创的尝试,是推动信息技术教学和数学教学的革新实验。
关键词:课程改革;数学实验;算法设计;程序设计
中图分类号:G434文献标识码:B文章编号: 1673-8454(2008)20-0049-03
一、引言
在传统的观念中,学数学只需动脑,不必动手做实验。实际上,与其他自然科学一样,数学也要使用观察和实验来形成、发展及检验理论,而且也把它视为一门“实验科学”,从问题出发,借助计算机,通过学生亲自设计和动手操作,体验解决问题的过程,从实验中去学习、探索和发现数学规律,从而达到解决实际问题的目的。
计算机的诞生使我们获得了高速而准确的计算工具,计算机在数学领域中的应用,使数学方法显示出勃勃生机,“数学实验”也就应运而生。“数学实验”的方法实际上是对数学模型进行“实验”,“实验”是在计算机上进行大量的数值和逻辑运算,这些运算的高精确度和高速度是用手工运算是很难完成的。所以说,现代的数学研究不再是笔加纸的年代了,应该进入信息时代了。
方法二:算法设计
Step1先计算出264,然后减去1;
Step2数据存储:利用数组
a(20)的每一个单元存放2n的每一位数字;
例如,若211=2048,则a(1)=8,a(2)
=4,a(3)=0,a(4)=2。
Step3 数据进位:按位相乘,按位记录。
运行结果如图2。
所以S=18446744073709551615。这是手算很难计算出的,同学们脸上露出了微笑。
三、高精度运算
高精度运算是同学们感兴趣的一个内容。笔者在教学中列举了计算“祖率”的题目。对这个题目进行“数学实验”,同学很自然地能够理解和接受,并能自己编写出程序和运行出结果。
祖冲之是我国南北朝时期杰出的数学家和天文学家,从小就“专攻数术,搜炼古今”,他在刘徽的割圆术的基础上不断创新,计算出圆周率在3.1415926 和3.1415927之间。
祖冲之不仅仅用小数形式表示圆周率,并且还用分数的形式来表示圆周率,他用 22/7作为约率,355/113作为密率。在密率中我们可以得到355/113=3.1415929……,而且密率易记,从分母到分子正好是113355。人们为了纪念祖冲之的伟大贡献,把它称为“祖率”。
算法设计:
可以模拟手工计算除法的过程,先求出商的最高位,把它打印出来,之后再用余数去除以除数,得到商的次高位数,依次类推。在这个过程中只要商不是一个有限小数,就可以一直进行下去,得到所需要的精度。
Step1输入所需要的小数点位数;
Step2a ← 355;
Step3b ← 113;
Step4d ←a除以b的整数部分;
Step5循环执行:将余数扩大10倍作为被除数a,继续计算a÷b,取其整数部分。
程序及运行结果:
Private Sub Form_Click()
Dim a As Integer
Dim b As Integer
Dim d As Single
e = InputBox("输入e=", "小数的位数") ’输入所需要的小数点位数
Let a = 355
Let b = 113
Let d = Int(a / b) ’
取a除以b的整数部分
Print d; ".";
For i = 1 To e
Let a = (a - d * b) * 10
Let d = Int(a / b)
Print d;
Next i
End Sub
程序运行时,当单击窗体后,屏幕上会显示出对话“输入框”之后请输入所需要的小数点位数。如图3所示。
程序运行的结果如图4。
在这个实验中,这样高精度的计算用手工是很难进行的,由此可以体会到“数学实验”的优越性。
四、模拟探索
在“数学实验”中,利用计算机进行对随机现象模拟探索是很有意义的。大家都知道,在自然界有许多现象是必然的,还有许多现象是偶然的,倘若在一组相同的条件下,它们可能出现,也可能不出现。例如:“晚上仰望星空见到流星”、“掷硬币得正面”等都是偶然事件。
在上课时笔者就拿“掷硬币”作为例子,说把一枚均匀的硬币掷在台上,出现正面或者反面预先是无法判断的。如果当掷的次数增加时,那么出现正、反面的情况会怎么样?这是个很有趣的数学问题。历史上有许多数学家做过这样的掷硬币实验,笔者列举了几位实验者的实验记录(如表1)。
从表1中可以看到,当投掷的次数越来越多,频率越来越接近0.5。笔者觉得让学生编写这样的程序进行“数学实验”是有益的。
算法设计:
利用随机函数rnd来编写,因为随机函数rnd能产生[0,1)区间的一个均匀分布的随机数。所以设置条件语句:ifrnd<0.5THEN来判断,当随机数小于0.5时,打印和统计硬币反面出现的次数;当随机数大于0.5时,打印和统计硬币正面出现的次数。投掷的次数由键盘输入。
Step1输入需要掷硬币的次数;
Step2f←0,设置统计硬币出现正面次数的变量名为f,赋初值为零;
Step3b←0,设置统计硬币出现反面次数的变量名为b,赋初值为零;
Step4控制掷硬币的次数;
Step5判断 rnd<0.5,若真打印出现正面的标记“f”,并记数;
Step6否则打印出现反面的标记“b”,并记数;
Step7打印出累计的硬币出现正、反面的次数。
把下面的程序输入计算机:
Private Sub Form_Click()
Dim n As Integer
Dim f As Integer
Dim b As Integer
n = InputBox ("输入n=", "投硬币的次数")
Let f= 0
Let b = 0
For i = 1 To n
IfRnd <= 0.5 Then
Print "f";
Let f = f 1
Else
Print "b";
Let b = b 1
End If
Next i
Print
Print "f="; f, "b="; b
End Sub
程序运行时,当单击窗体后,屏幕上会显示出对话“输入框”之后请输入所需要掷硬币的次数。
运行结果如图5。
这个程序模拟硬币投掷了60次的情况,我们可以看到正面出现了28次,反面出现了32次。同学们经过多次“数学实验”, 看到当投掷次数越来越多时,比率越来越接近0.5,他们验证了上面几位实验者的实验记录,对同学们来说体验到“数学实验”的意义。
此外,我对其它数学问题也作了“数学实验”的尝试,如求方程的近似解、作函数图像,指出它的单调区间等等。
例如:求方程x lgx=3的近似解。
解此题教师一般让学生采用在同一坐标系内画出y-lgx及y-3-x的图像,求得交点的横坐标x≈2.6,它是原方程的近似解。
用图像法求解,一是作图较困难,二是精度低。那么,我让学生用“迭代法”编写解这个方程的程序进行“数学实验”。这样开拓了他们的知识视野,加快了运算速度,提高了精度,取得了较好的效果。
算法设计:
把方程x lgx=3写成如下形式
x=3-lgx
这时确定x的一个初值代入方程的右边,得到一个新的x值,之后再把这个新的x值代入方程的右边,又得到一个新的x值,如此不断重复,直到计算出的数值与代入的数值逐渐接近为止,这时我们得到此方程的近似解。
即:取x=1代入,得
x=3-lgl=3
把x=3代入,得
x=3-lg3=2.52287875
这样不断迭代即可。由此学生不难编出了程序,通过“数学实验”,得到了较为理想的结果。
以上是笔者在教学中对“数学实验”所作的初步尝试,实验的结果和我们的体会是否正确,还需要作进一步的试验和研究。中学数学教学与信息技术的整合开拓了一个广阔的前景和新的研究领域,对启发学生思维、开发智力、培养创新能力等方面,将会起到越来越大的作用。
关键词:课程改革;数学实验;算法设计;程序设计
中图分类号:G434文献标识码:B文章编号: 1673-8454(2008)20-0049-03
一、引言
在传统的观念中,学数学只需动脑,不必动手做实验。实际上,与其他自然科学一样,数学也要使用观察和实验来形成、发展及检验理论,而且也把它视为一门“实验科学”,从问题出发,借助计算机,通过学生亲自设计和动手操作,体验解决问题的过程,从实验中去学习、探索和发现数学规律,从而达到解决实际问题的目的。
计算机的诞生使我们获得了高速而准确的计算工具,计算机在数学领域中的应用,使数学方法显示出勃勃生机,“数学实验”也就应运而生。“数学实验”的方法实际上是对数学模型进行“实验”,“实验”是在计算机上进行大量的数值和逻辑运算,这些运算的高精确度和高速度是用手工运算是很难完成的。所以说,现代的数学研究不再是笔加纸的年代了,应该进入信息时代了。
方法二:算法设计
Step1先计算出264,然后减去1;
Step2数据存储:利用数组
a(20)的每一个单元存放2n的每一位数字;
例如,若211=2048,则a(1)=8,a(2)
=4,a(3)=0,a(4)=2。
Step3 数据进位:按位相乘,按位记录。
运行结果如图2。
所以S=18446744073709551615。这是手算很难计算出的,同学们脸上露出了微笑。
三、高精度运算
高精度运算是同学们感兴趣的一个内容。笔者在教学中列举了计算“祖率”的题目。对这个题目进行“数学实验”,同学很自然地能够理解和接受,并能自己编写出程序和运行出结果。
祖冲之是我国南北朝时期杰出的数学家和天文学家,从小就“专攻数术,搜炼古今”,他在刘徽的割圆术的基础上不断创新,计算出圆周率在3.1415926 和3.1415927之间。
祖冲之不仅仅用小数形式表示圆周率,并且还用分数的形式来表示圆周率,他用 22/7作为约率,355/113作为密率。在密率中我们可以得到355/113=3.1415929……,而且密率易记,从分母到分子正好是113355。人们为了纪念祖冲之的伟大贡献,把它称为“祖率”。
算法设计:
可以模拟手工计算除法的过程,先求出商的最高位,把它打印出来,之后再用余数去除以除数,得到商的次高位数,依次类推。在这个过程中只要商不是一个有限小数,就可以一直进行下去,得到所需要的精度。
Step1输入所需要的小数点位数;
Step2a ← 355;
Step3b ← 113;
Step4d ←a除以b的整数部分;
Step5循环执行:将余数扩大10倍作为被除数a,继续计算a÷b,取其整数部分。
程序及运行结果:
Private Sub Form_Click()
Dim a As Integer
Dim b As Integer
Dim d As Single
e = InputBox("输入e=", "小数的位数") ’输入所需要的小数点位数
Let a = 355
Let b = 113
Let d = Int(a / b) ’
取a除以b的整数部分
Print d; ".";
For i = 1 To e
Let a = (a - d * b) * 10
Let d = Int(a / b)
Print d;
Next i
End Sub
程序运行时,当单击窗体后,屏幕上会显示出对话“输入框”之后请输入所需要的小数点位数。如图3所示。
程序运行的结果如图4。
在这个实验中,这样高精度的计算用手工是很难进行的,由此可以体会到“数学实验”的优越性。
四、模拟探索
在“数学实验”中,利用计算机进行对随机现象模拟探索是很有意义的。大家都知道,在自然界有许多现象是必然的,还有许多现象是偶然的,倘若在一组相同的条件下,它们可能出现,也可能不出现。例如:“晚上仰望星空见到流星”、“掷硬币得正面”等都是偶然事件。
在上课时笔者就拿“掷硬币”作为例子,说把一枚均匀的硬币掷在台上,出现正面或者反面预先是无法判断的。如果当掷的次数增加时,那么出现正、反面的情况会怎么样?这是个很有趣的数学问题。历史上有许多数学家做过这样的掷硬币实验,笔者列举了几位实验者的实验记录(如表1)。
从表1中可以看到,当投掷的次数越来越多,频率越来越接近0.5。笔者觉得让学生编写这样的程序进行“数学实验”是有益的。
算法设计:
利用随机函数rnd来编写,因为随机函数rnd能产生[0,1)区间的一个均匀分布的随机数。所以设置条件语句:ifrnd<0.5THEN来判断,当随机数小于0.5时,打印和统计硬币反面出现的次数;当随机数大于0.5时,打印和统计硬币正面出现的次数。投掷的次数由键盘输入。
Step1输入需要掷硬币的次数;
Step2f←0,设置统计硬币出现正面次数的变量名为f,赋初值为零;
Step3b←0,设置统计硬币出现反面次数的变量名为b,赋初值为零;
Step4控制掷硬币的次数;
Step5判断 rnd<0.5,若真打印出现正面的标记“f”,并记数;
Step6否则打印出现反面的标记“b”,并记数;
Step7打印出累计的硬币出现正、反面的次数。
把下面的程序输入计算机:
Private Sub Form_Click()
Dim n As Integer
Dim f As Integer
Dim b As Integer
n = InputBox ("输入n=", "投硬币的次数")
Let f= 0
Let b = 0
For i = 1 To n
IfRnd <= 0.5 Then
Print "f";
Let f = f 1
Else
Print "b";
Let b = b 1
End If
Next i
Print "f="; f, "b="; b
End Sub
程序运行时,当单击窗体后,屏幕上会显示出对话“输入框”之后请输入所需要掷硬币的次数。
运行结果如图5。
这个程序模拟硬币投掷了60次的情况,我们可以看到正面出现了28次,反面出现了32次。同学们经过多次“数学实验”, 看到当投掷次数越来越多时,比率越来越接近0.5,他们验证了上面几位实验者的实验记录,对同学们来说体验到“数学实验”的意义。
此外,我对其它数学问题也作了“数学实验”的尝试,如求方程的近似解、作函数图像,指出它的单调区间等等。
例如:求方程x lgx=3的近似解。
解此题教师一般让学生采用在同一坐标系内画出y-lgx及y-3-x的图像,求得交点的横坐标x≈2.6,它是原方程的近似解。
用图像法求解,一是作图较困难,二是精度低。那么,我让学生用“迭代法”编写解这个方程的程序进行“数学实验”。这样开拓了他们的知识视野,加快了运算速度,提高了精度,取得了较好的效果。
算法设计:
把方程x lgx=3写成如下形式
x=3-lgx
这时确定x的一个初值代入方程的右边,得到一个新的x值,之后再把这个新的x值代入方程的右边,又得到一个新的x值,如此不断重复,直到计算出的数值与代入的数值逐渐接近为止,这时我们得到此方程的近似解。
即:取x=1代入,得
x=3-lgl=3
把x=3代入,得
x=3-lg3=2.52287875
这样不断迭代即可。由此学生不难编出了程序,通过“数学实验”,得到了较为理想的结果。
以上是笔者在教学中对“数学实验”所作的初步尝试,实验的结果和我们的体会是否正确,还需要作进一步的试验和研究。中学数学教学与信息技术的整合开拓了一个广阔的前景和新的研究领域,对启发学生思维、开发智力、培养创新能力等方面,将会起到越来越大的作用。