MATLAB在高等数学教学中的应用研究
2012-04-29李娜仁庆道尔吉
李娜 仁庆道尔吉
[摘 要]高等数学已经被大部分高校列为重要的公共基础课,该课程内容多,概念抽象,理论严密,对学生后续专业课程的学习以及研究生入学考试都有着不可忽视的作用。然而,近年来,学生学习兴趣每况愈下,不及格率大大增加。本文提出将传统的高数教学方式进行适当改革,将具有强大科学计算功能的计算软件MATLAB应用到高等数学的教学中,给出了MATLAB分别在极限、导数运算、积分运算、微分方程中的应用实例。作为教学的辅助教学手段,使机算与枯燥的手工计算相结合,大大提高了学生的学习兴趣和动手能力,活跃了课堂气氛,最终提高教学效果。
[关键字]MATLAB 高等数学 导数 积分
[中图分类号] G642.0[文献标识码] A[文章编号] 2095-3437(2012)11-0066-03
一、引言
高等数学这一课程已经被大部分本科院校列为培养计划中重要的公共基础课,它对学生后续的学习以及思维素质的培养都起着重要的作用。该课程理论严密,观点抽象,内容多而且复杂。掌握好该课程的基本内容不仅为学生深入学习后继课程奠定了基础,而且对培养学生的综合素质及能力是一个良好的训练、提高过程。在学习高等数学过程中,学生的逻辑思维能力、运算能力、抽象分析能力、综合与推理能力都可以得到锻炼。而传统的教学方式主要以课本的数学知识为基础,概念、公式为主,加上工科院校学习任务重,课时紧,各科教师迫于学时的压力,在课堂教学很难注重数学知识的应用。尽管老师们一再强调高等数学的重要性,但数学的抽象和严谨,足以使大部分学生望而生畏,学生感到数学的许多东西都是看不到,摸不着,太抽象,太枯燥,致使学习兴趣每况愈下,不及格率大大增加。所以有必要对高等数学的教学方式进行适当改革。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。此后,公司不断推出新的版本,直到2012年3月,公司推出了MATLAB的最新版本MATLAB7.14。
MATLAB可以进行矩阵运算、绘制函数图像、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。该语言主要有以下几个其他语言无法比拟的特点:
(1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来:(2)具有完备的图形处理功能,实现计算结果和编程的可视化;(3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;(4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。可以说,MATLAB语言已成为国际上最具吸引力、应用最为广泛的科学计算语言。
基于MATLAB 的以上特点,我们可以将MATLAB和高等数学课程有机结合起来,把传统的笔算改为笔算与机算相结合,实现理论与实践相结合,大大提高学生对高等数学的学习兴趣和学习热情,从而可以提高教学质量。同时,该软件的绘图功能,可以将图形直观的呈现给学生,有助学生对图形的识别和部分概念的理解。下面,我们从几个不同方面来说明一下MATLAB在高等数学教学中的应用。
二、 MATLAB在高等数学教学中的应用
(一)MATLAB在极限中的应用
极限是高等数学中一个非常重要的概念,同时也是研究高等数学的一个基本工具。为此,极限概念的理解以及求极限的运算就是学生必须要掌握的内容。在MATLAB中,可以通过命令“limit()”实现函数的极限计算。同时,我们可以利用MATLAB的画图功能,帮助学生理解相关概念。
例1:计算■x sin■。
在MATLAB的命令窗口输入:
subplot(1,2,1)
fplot(‘sin(1/x),[-0.001,0.001])% 画出函数y=sin■,x∈[-0.001,0.001]的图形
subplot(1,2,2)
fplot(‘x*sin(1/x),[-0.001,0.001]) %画出函数y=x sin■,x∈[-0.001,0.001]的图形
syms x
limit(x*sin(1/x),x,0)% 求函数在变量x趋于0的极限
limit(x*sin(1/x),x,0,‘left)% 求函数在变量x趋于0的左极限
limit(x*sin(1/x),x,0,‘right)% 求函数在变量x趋于0的右极限
执行结果:
■
1图表明函数y=sin■的值在-1与1之间波动,函数有界,但没有极限,x=0是函数的振荡间断点。2图表明函数y= x sin■的值不断振荡,但离0的值越来越近,即趋近于0。通过命令“limit()”可以求出函数的左右极限和极限,给学生提供了方便。同时恰当应用matlab的画图功能,有助于学生对图形的掌握和概念理解。
(二)MATLAB在导数运算中的应用
导数是高等数学的一个基本概念。相关的内容有复合函数求导,隐函数求导,多元函数的偏导数以及导数的应用极值问题等等,是高等数学教学中非常重要的一部分内容。
例2:z=exsiny2,求■,■,■,■。
在MATLAB的命令窗口输入:
syms x y z
z=exp(x)*sin(y^2);
diff (z, x)%求z对x的偏导
diff (z, y)%求z对y的偏导
diff (z, y,2) %求z对y的2阶偏导
diff (diff(z, x), y) %求z对x的偏导数再对y求偏导
执行结果:
ans =exp(x)*sin(y^2)
ans =2*exp(x)*cos(y^2)*y
ans =-4*exp(x)*sin(y^2)*y^2+2*exp(x)*cos(y^2)
ans =2*exp(x)*cos(y^2)*y
利用命令“diff( )”, 可以求出函数对指定变量的任意阶导数或者偏导数,运算相当方便。
例3:求函数y=2e-xsina x 在[2,5]的最值点和最值。
在MATLAB的命令窗口输入:
syms x;
[xmin,ymin]=fminbnd(‘2*exp(-x)*sin(x),2,5); %求最小值点和最小值
[xmax,ymax]=fminbnd(‘-2*exp(-x)*sin(x),2,5);%求最大值点和最大值,转化为求-y的最小值点和最小值,
xmin,ymin,xmax,-ymax%输出原函数的最小值点,最小值,最大值点和最大值
fplot(‘2*exp(-x)*sin(x) ,[2,5])
执行结果:
xmin =3.9270
ymin =-0.0279
xmax =2.0000
-ymax =0.2461
利用命令“fminbnd ( )”可以求出函数在指定区间的最小值以及最小值点,如果想计算函数的最大值和最大值点,只需要转化为求该函数的负值函数的最小值和最小值,再用该命令即可完成。其实,另外一种方法,可以利用画图命令画出函数的图即可找出最值。
(三)MATLAB在积分运算中的应用
高等数学中的积分运算包括不定积分,定积分和二重积分等。
例4:计算■■。
在MATLAB的命令窗口输入:
syms x;
y=(x*(1+x)^3)^(-0.5);
int(y,0,+inf)
执行结果:
ans =2
利用命令“int (f,v,a,b)”可以求出函数f关于变量v在区间[a,b]的定积分,如果省去v,则求出的是关于syms定义的符号变量的积分,如果省去a,b则得到的就是不定积分,并且结果不自行添加积分常数C。如果想要计算二重积分,首先要转化为累次积分,再利用该命令指定积分变量积分即可。可见该命令用起来十分方便。
(四)MATLAB在求解微分方程中的应用
所谓微分方程就是含有未知函数及其导数的方程,在数学和物理上都有很多的应用。常见的微分方程有可分离变量微分方程、齐次方程、一阶线性、常系数(非)奇次线性微分方程。
例5:求微分y″+2y′+y=0方程满足初始条件y(0)=4,y′(0)=-2的特解。
在MATLAB的命令窗口输入:
syms x;
equ=‘D2y+2*Dy+y=0;
y=dsolve (equ, ‘x)%求方程的通解
y1= dsolve (equ, ‘y(0)=4,Dy(0)=-2 , ‘x)%求方程满足初始条件的特解
执行结果:
y =C1*exp(-x)+C2*exp(-x)*x
y1 =4*exp(-x)+2*exp(-x)*x
在表达式中,符号Dy表示对变量y的一阶导数,Dny表示对变量y的n阶导数。命令“dsolve (‘equation, ‘var)”可以求出自变量为“var”的方程”equation”的通解,若“var”缺省,则默认自变量为变量“t”。如果求的方程的满足初始条件的特解命令为“dsolve (‘equation, ‘cond1,cond2,…, ‘var)”。
以上介绍了MATLAB软件在高等数学教学中的4个方面应用,利用并不复杂的命令可以实现高等数学中的很多基本计算,而且准确率高,运行效率高。其实MATLAB的应用远远不仅如此,将MATLAB与高等数学有机结合起来,给学生提供了动手验证的机会,枯燥的纯手工计算不再乏味,同时大大增加了学生学习高等数学的兴趣,提高了教学质量,起到了不错的教学效果。另外学生掌握了一个功能强大的计算机软件,对以后的科学计算研究也是大有裨益的。
[ 参 考 文 献 ]
[1] 同济大学数学系. 高等数学第六版[M].北京:高等教育出版社,2007.
[2] 王沫然. MATLAB与科学计算[M].北京:电子工业出版社,2006.
[3] 唐新华.MATLAB在微积分中的应用[J].科技信息,2009,(16).
[4] 周德亮,白岩.用MATLAB解决高等数学中的图形问题[J].数学的实践与认识,2002,(1).
[5] 菅小艳.MATLAB在高等数学中的应用[J].计算机时代, 2011,(5).
[责任编辑:戴祯杰]
[收稿时间]2012-09-08
[基金项目]内蒙古工业大学高等教育教学改革项目课题(2011056,2011063)。
[作者简介]李娜(1982-),女,硕士,讲师, 研究方向:计算数学。