试论新升本院校理工专业高等数学教学引入数值计算的必要性
2014-10-16闫新生
闫新生
[摘 要]对于新升本院校的学生来讲,学习高等数学除了掌握必要的数学知识外,更重要的是培养数学素质,掌握应用数学知识解决实际问题的能力。本文试图结合高等数学的教学实践,探讨如何在高等数学教学中适时地引入数值计算,以便提高学生的数学应用能力。
[关键词]高等数学 数值计算 MATLAB 数学应用
[中图分类号] O13 [文献标识码] A [文章编号] 2095-3437(2014)16-0082-03
一、高等数学教学中引入数值计算的必要
本人作为一名多年从事高等数学教学的教师,结合多年的专科教学实践,以及对我院第一次招收的本科学生的知识结构情况的掌握,感到这些学生中的大部分数学基础知识和运算技巧都有欠缺,要想掌握严密的高等数学理论体系难度较大。另一方面,从应用型本科人才培养目标出发,我们也应当着重培养学生应用数学的能力,尤其是理工科学生,在今后的工作实践中,随时都可能遇到数值计算和数据处理问题需要解决。因此,教师在高等数学的教学中,应注意适时地引入数值计算和加强数据处理能力的培养,以便学生毕业后能尽快适应工作岗位的要求。
随着计算机的日益普及和数学软件的不断更新,有关数值计算、数据处理软件的日益成熟,教会学生掌握数值计算的技能已经变得相当容易。作为一名高等数学教师,教学中应该有意识地引入MATLAB辅助教学,加强学生运用计算机解决数学问题的训练,培养学生的实践能力。MATLAB作为一款成熟的数学软件,具有优秀的数值计算和数据处理能力以及强大的绘图功能。它无需专门训练,编程简单,编程有时就像做数学题一样。将MATLAB语言引入高等数学教学中,无疑是培养学生数值计算和数据处理能力的一条快速有效的途径。
二、高等数学教学引入数值计算的具体做法
对于应用型工科专业的学生来说,鉴于教学计划和学时的限制,不可能作为一门课程专门讲解数值计算方面的内容。MATLAB的数学函数库包含了大量的计算算法,包括基本函数、矩阵运算和复杂算法等。我们的做法是:不增加课时,精讲高等数学内容,在高等数学教学的同时,通过介绍MATLAB软件的基本应用,结合具体教学内容适时地引入MATLAB数值计算,并安排一定时间的上机实验,既提高了学生学习高等数学的兴趣,又让学生在掌握高等数学知识的同时,培养了利用计算机处理实际问题的能力,可谓一举两得。下面介绍MATLAB在几方面的应用。
(一)极限运算
在介绍两个重要极限时,对于第二个重要极限,以前总是从数列极限■(1+■)n开始,通过列表观察数列取值的变化规律。现在借助MATLAB语言,让学生自己在计算机上观察,效果更好。程序如下:
x=1:1000;
y=(1+1./x).^x;
plot(x,y)
(二)定积分运算
(1) 对于定积分运算,由于学生不定积分运算技巧的欠缺,掌握起来感到较难,我们的处理方法是,除了教给学生定积分的基本知识外,把定积分的计算交给计算机来完成。
有理函數的定积分计算起来较麻烦,利用MATLAB的符号运算,只要两条很简单的命令即可解决。如计算定积分■■.命令结果如下:
syms x
int(x/(x^2-2*x+2)^2,0,2)
运算结果
ans =
1/4*pi+1/2
我们知道,有些函数的定积分是没法应用牛顿—莱布尼兹公式计算的,这时就要用到定积分的近似计算。MATLAB的数值计算能力在这方面就更加有优势了。如计算定积分■ex2dx.
梯形法计算,命令结果如下:
x=0:0.01:1;
y=exp(x.*x);
s1=trapz(x,y)
运算结果:
s1 =
1.4627
辛普生法计算,命令结果如下:
x=0:0.01:1;
s2=quad(′exp(x.^2)′,0,1)
s2 =
1.4627
(2) 定积分数值计算的应用
汽车里程表原理。汽车的速度表用来计算汽车轮子转动的快慢,并把它转化为汽车前进的速度。那么里程表又是怎么计算行驶里程的呢?这就用到了定积分的实际意义,即通过计算速度曲线从初始时刻到当前时刻之间的曲边梯形面积而得到行驶的里程。通过该例,既加强了学生对定积分实际意义的理解,也锻炼了学生运用高等数学知识解释工程应用的能力。
假设某辆汽车在3小时内行驶的速度函数为:
v(x)=25(2sin2(2x)+■xcos2(■)),x∈[0,3]
求该时间段内汽车行驶的路程。
先画出速度曲线,命令如下:
x=0:0.01:3;
y=25*(2*(sin(2*x)).^2+5/2*x.*(cos(x/2)).^2);
plot(x,y)
用数值积分计算汽车行驶路程,命令结果如下:
x=0:0.01:3;
y=25*(2*(sin(2*x)).^2+5/2*x.*(cos(x/2)).^2);
s1=sum(y(1:300))*0.01
s2=sum(y(2:301))*0.01
s3=trapz(x,y)
f=inline(′25*(2*(sin(2*x)).^2+5/2*x.*
(cos(x/2)).^2)′,x);
[I,n]=quad(f,0,3)
运行结果为:
s1 = 169.9960 s2 = 170.0444 s3 = 170.0202 I = 170.0213 n = 165
(三)微分方程数值解
虽然我们在教学中教会了学生解几种典型的微分方程,但生产和科研中所处理的微分方程大多很复杂而且得不出一般解,实际问题的处理中更多的要求数值解。对初值问题,一般是要求得到解在若干个点上满足规定精确度的近似值,或者得到一个满足精确度要求的便于计算的表达式。因此,研究常微分方程的数值解是十分必要的。MATLAB有相应的求解函数解决这类问题,而且相当简单。
如求解初值问题:
■
按照学过的微分方程类型是无法求解的,只能求其数值解。
解: 令 y1=x,y2=y1′
则微分方程变为一阶微分方程组:
■
程序如下:
先建立函数文件
function dy=shuzhijie (t,y)
dy=zeros(2,1);
dy(1)=y(2);dy(2)=1000*(1-y(1)^2)*y(2)-y(1);
取t0=0,tf=3000,输入命令:
[T,Y]=ode15s(′vdp1000′,[0 3000],[2 0]);
plot(T,Y(:,1),′-′)
三、应注意的问题
(一)利用 MATLAB语言处理高等数学问题只能辅助教学,应避免学生过于依赖计算机解题
诚然,利用数学软件解题速度快、准确。但要知道,如果不明白数学原理,再好的软件也起不了作用。高等数学的教学目的始终是培养数学思维和数学方法的训练,教学中第一位的还是要让学生理解基本概念、掌握基本运算能力、加强实际应用的训练。只有这样才谈得上运用数学知识解决实际问题,运用数学软件处理工程实际中遇到的问题。一个实际问题建立不了数学模型怎么能用数学方法求解呢?利用 MATLAB语言解数学题只能起验证作用,不鼓励学生动辄就用计算机解题。要让学生明白再好的软件也是以准确掌握应用原理为前提的,不然,談不上应用更谈不上编程。
(二)教学中注意引入 MATLAB语言的时机
由于利用 MATLAB语言处理高等数学问题只是为了提高学生学习高等数学的兴趣,加强数学应用能力的培养,这就决定了教学中不可能占用过多的学时去介绍这方面的知识。教学实践中我们的做法是结合每章的习题课进行,尤其是结合实际应用类型的习题的求解。先有数学基础再介绍必要的MATLAB语言知识,然后让学生建立数学模型,最后运用数学软件求解。这既加强了章节知识的理解也同时训练了数学知识的应用和计算应用能力。
(三)注重提高学生解决问题的实践能力的培养
在引入MATLAB辅助高等数学教学时,教师不能仅限于学生会用计算机解数学题,而应注重数学知识的实际应用能力的培养,尤其对工科专业的学生来说,加强运用数学知识解决工程实际问题更为重要。比如在进行函数与极限教学时,特别要注意零点定理与介值定理结合导数应用中方程近似解的介绍,因为实际应用中的代数方程只能求其近似解。导数应用中,加强微分在近似计算中的应用的训练。定积分概念的教学中,除了让学生充分理解定积分的实际意义外,还要真正掌握定积分的元素法,会处理变力沿直线所做的功、水压力、引力等实际应用问题。在微分方程一章的教学中,更要注意与实际应用问题的结合,因为这一数学分支在数学的应用中尤其活跃。总之,学生学习高等数学的目的,还是为了应用数学知识解决实际问题,这也是应用型本科人才的培养目标所要求的。
[ 参 考 文 献 ]
[1] 金明阮沈勇编著.MATLAB实用教程(第2版)[M].北京:电子工业出版社,2008.02
[2] 艾冬梅等编著.MATLAB与数学实验[M].北京:机械工业出版社,2010.04
[3] 同济大学数学系编高等数学(第六版)[M].北京:高等教育出版社,2007.04
[责任编辑:林志恒]