矩形法求定积分及其程序与程序框图的实现
――实例探索定积分思想,切实提高课堂效果
王亮 佛冈县第一中学 数学科
【摘 要】定积分“四部曲”思想,对高中生来说不易接受,教学上用计算机来演示矩形法求定积分的过程,可以帮助学生梳理定积分思想,并唤起对程序框图等相关知识的记忆,认识到数学知识也可以用电脑去实施检验的,激发学生学习数学的兴趣与热情,可以培养学生逻辑思维能力,以及提出问题、分析问题、解决问题的能力。本文主要探究在VC6下的程序设计思想及实现过程和将设计思想写成程序框图,可供学生思考及反思,可提高教学效果。
【关键词】定积分思想 程序框图 VC6 程序设计
在《1.5定积分的概念》这一节的教学过程中,求定积分的四步曲(分割--近似代替--求和--取极限)[1]对现年龄阶段的高中生来说比较抽象,难理解,老师需要对四步曲中的每一步都要讲清讲透,讲清为何这么做,这么做的理由又是什么。下面以VC6为例,谈谈定积分四步曲同计算机程序结合以及由此得出相应的程序框图并与数学课程整合的过程。
理论指导
如右图,要求出图1曲面(阴影部分)的面积,用一般方法,我们是无法求出的,因为有一边是曲的,不是直的。人们经过一系列的探索之后,发现有一种方法可以求曲面图形的面积,思路是这样的(如下图):先将区间[a,b]分成n个小区间,如果n足够大,以至于图中h1与h2特别靠近,此时的f(h1)≈f(h2), 上端曲的(①处)可以认为就是直的了(这就是以曲代直的原因)。此时的小曲边整部分面积近似等于小矩形面积,接着我们可以把分成的n-1个小矩形的面积累加起来,这就得到了曲面(阴影部分)的面积。课本上的第四步“取极限”是什么意思呢?意思就是说我们分的小区间数n要无穷大,这样误差才很小。
二、实践是检验真理的唯一标准
马克思最早提出“检验真理的唯一标准就是实践”[2]。第一部分的理论指导,符合我们的逻辑思维,但我们还要用实践去检验它,证明它。由此我根据理论指导,用一个求例子来分析定积分的四步曲思想,并用VC6作以下设计:
①分割,就是将区间[a,b]分成n个小区间,对应的计算窗口要有这样的功能:输入a,b和 n值,这些不是固定的,可以灵活变动数据,于是我设计了四个文本框,其中三个对应输入a,b,n的值,还有一个文本框用来输出定积分结果。
②近似代替,为了达到近似代替的目的,要求我们输入的n尽量大。
③求和:就是将每个小矩形面积进行累加,对此我设计了一个叫calSum的函数,用来计算各个小矩形面积的和。
④取极限:这也是要求我们输入的n值尽量够大,以减少误差的目的,但在计算机上运行时,若n很大,会大量消耗CPU,会造成窗口界面的卡死(有可能造成死机),为了解决这个问题,我采用线程技术,就是开一个辅助线程来执行calSum函数,这样界面就不会卡死了。
⑤设计二个按钮,一个是“开始计算”按钮,用来开个线程并计算定积分的,另一个是“关闭”按钮,点击它,以退出程序。
整个设计窗口如右图所示:
下面是对应的程序框图及主要程序:
输入积分下限a,积分上限b,区间分割数nvoid CINTEGRALDlg::calSum(){ float sum,i,l,h; sum=0;
输入积分下限a,积分上限b,区间分割数n
void CINTEGRALDlg::calSum()
{
float sum,i,l,h;
sum=0;
l = (b-a)/n;//计算矩形X轴方向的长
for(i=0;i
{
h = (float)pow(a+i*l,2) + 1;//将X轴方向的数字代入方程X^2+1中,求得矩形的高
sum = sum + l*h;//将每个矩形的面积累加
}
CString str;
str.Format("%.5f",sum);
m_out.SetWindowText(str);
}
s=s+L*H
开始
i < n ?
i=1,s=0,L = (b-a)/n
是
否
输出s
结束
H=(a+i*L)^2+1
i=
i=i+1
下面看看测试程序结果与实际误差
我们测试几组值,以检验计算结果与真实值的误差大小:
组数
积分下限a
积分上限b
区间分割数n
计算结果
真实值
第1组
3
9
100
237.84355
240
第2组
3
9
1000
239.78391
240
第3组
3
9
5000
239.95685
240
第4组
3
9
10000
239.97815
240
第5组
3
9
500000
239.99342
240
由实践数据可知,相同的上下限,当n越大时,结果越接近实际值240,这就用电脑程序实践证明了定积分四步曲思想(矩形法计算曲面面