基于Manipulate 的大学数学课件制作

2021-01-20 08:48
普洱学院学报 2020年6期
关键词:控件程序设计代码

段 敏

合肥学院 人工智能与大数据学院,安徽 合肥 230601

1 数学课件制作综述

计算机辅助数学教学的核心是课件,尤其是要求有动态交互式操作的课件,其开发难度大,这也是教师,特别是数学教师很少用课件的原因之一。使用技术人员而非教学人员开发的课件,不利于体现教师个人的教学风格,而结合自己的教学艺术来开发课件,往往受到自身计算机技术,特别是程序设计技术的制约而达不到教学目的。

教师,特别是数学教师,上课时不能一遇到画图、复杂计算就强调原因,少讲、不讲甚至跳过,这不利于教学质量的提高。要让教师知道,电子计算机的出现使数学的教学面貌也焕然一新,计算机将某些定理精美而玄妙的证明改变为“精细”而“机械”的程序设计,把灵活的数学技巧改变为“呆板”的编程技术[1]。

就大学数学课程中,无论是高等数学,还是线性代数与解析几何等课程,若没有计算机的参与,就缺少了形象直观的图形,很多概念很难讲清楚。现在的教学强调以学生为中心,要调动学生的积极性,最重要的就是要让学生亲自动手,自己借助于计算机去“折腾”数学,在“折腾”的过程中去学习,去观察,去探索,去发现,而不是由老师教他们多少内容[2],由此诞生了数学实验课程的开设。在数学实验课程中,若能添上具有交互式操作的图形用户界面,必将大大提高教学质量,这就需要有很好的交互式课件来帮助教学。

如何选择开发交互式课件的工具软件,杨泽忠在其所著《CAMI 导论 计算机辅助数学教学》一书中提出所使用的数学课件编写工具一般有四类:第一类,用计算机语言来编写数学课件的方法;第二类,利用专门的课件语言来编写的方法;第三类,利用课件著作工具编写的方法;第四类,利用某些数学问题解决或发现学习的软件来编写数学课件的方法[3]。不管选择哪一类,学习难度由第一类依次递减,影响了数学课件的开发进程。

能否有一种软件能按照数学的思维方式开发课件呢?这种软件即要能做数值计算与符号运算,也能绘图并进行程序设计,更重要的是能否在程序代码中表示想调节的参数与交互式控件架起一个桥梁,使程序或课件的运行结果以图形用户界面展示给用户,以方便习惯于Windows 的用户操作。不要去调节代码中的参数,再重新生成课件等繁琐的操作,而且要开发周期短,甚至可以在教学时开发与交互式演示操作在课堂内完成,让学生体验到以过程为中心的教学方式。

Mathematica 是最符合数学教师使用的数学软件,6.0 以后的版本中开发的Manipulate 函数,架起了代码与图形用户界面交互式操作的桥梁,开发数学交互式课件也变得容易,不管从事高等数学、线性代数、概率论与数理统计、微分方程、数值分析等众多数学课程教学,只要教师按照自己的教学内容与教学方式,简单的几行代码,加上Manipulate 的包装,一个具有交互式操作的图形用户界面便跃然屏幕之上,通过简单的拖动,加上教师的讲解,数学思想一点点展现出来,胜过千言万语的讲解。

2 Manipulate 函数功能简介

Manipulate 是Mathematica6.0 以后版本新开发的用于交互式运行函数和命令的方式,是沟通开源式代码和图形交互式操作用户界面的桥梁与指针。有了它,就能创建一个图形用户界面来操纵任意表达式或图形,就能像使用Windows 图形用户界面一样方便。

Manipulate 的最一般书写格式为:

Manipulate[代码段,控件1,控件2,…,控件n]

实际写代码时宜采用缩进格式,以便于阅读与修改,养成程序设计的风格。

代码段是程序区,用于完成程序设计的书写,可长可短,反映的是算法思想的代码实现,更能体现程序设计风格的数学化,它实质是一种函数式的编程语言,有着像C 语言或Pascal 一样的结构化程序设计方式,教师只要有一种程序设计语言的基础,掌握Mathematica 的程序设计方法是很容易的。因为语言千变万化,但万变不离其宗,核心的语句都是4 类:赋值语句、基本运算语句、条件语句和循环语句,作用无非是用来指挥计算机执行4 类基本功能[4]。而选择Mathematica 书写代码,以思维方式数学化的深刻内涵为引领,定能编写出高质量的好程序、好课件。

控件1,控件2,…,控件n 区域中的控件,借助于Manipulate 映射到交互式图形用户界面。简单地讲,Manipulate 函数就是操控函数的变量,它能够调用各式各样的控件以用户想要的方式进行操控,最后完成一个或多个变量在其定义域内变化而产生的动态过程[5]。让教师真正体会到计算机辅助教学的核心内涵和学生的探究式与研究性学习方式,而且开发周期短,甚至可以在上课时边教学,边开发,学生能体会到数学推理、论证、计算的过程,能深刻理解数学思想。

3 通过案例掌握控件的使用方法

3.1 泰勒级数课件

泰勒级数的理解与深刻的数学思想内涵,对学生来说是个难点,不管教师如何讲解,总是达不到生动直观的形象理解。此时课件登场,通过教师的演示与改变参数,一会调节展开的阶数,一会调节在哪一点展开,还可选择被展开函数,调节区间范围观察逼近的效果。此课件甚至可以现场制作,让学生特别是师范生知道课件编写的流程,再加上教师的教学方法与自己独特的教学风格,师生互动,让学生深感数学的魅力所在。何谓教育数学,简言之,教育数学的目标是把数学变容易[6]。

通过泰勒级数课件的制作,把具有交互式控件操作的图形用户界面的课件中所要用到的一些控件代码的使用方法展示出来。

本文对控件的格式、功能与使用,放在代码中以注释的方式叙述,可能比罗列一大堆命令后再去使用可能效果要好。请输入以下代码并运行之,得到交互式图1。

g[x_]:=Sin[4*x]*Cos[x]; (*在此输入系统中没有定义的函数表达式*)

Manipulate[

(*绘出逼近的图形*)

Plot[Evaluate[{Normal[Series[f[x],{x,x0,n}]],f[x]}],{x,-a,a}],

(*以下显示标题*)

Item["泰勒级数演示",Alignment->Center],

(*以下是控件区域,是沟通代码与图表用户界面的桥梁,注释掉不运行,去掉注释即可运行*)

(*下面的控件操作,任意选择一行注释掉不运行,去掉注释即可运行*)

{{n,3," 请拖动滑杆以显示展开到几阶"},1,50,1}, (*相当于输入滑杆*)

{{f,Sin,"请选择函数"},{Sin,Cos,Tan,Exp,g}},(*以标签选择输入*)

(*以下是下拉式菜单选择输入*)

(*{{f,Sin,"请选择函数"},{Sin,Cos,Tan,Exp,ArcTan},ControlType->PopupMenu},*)

{{x0,0," 请选择在哪点展开"},ControlType->InputField}, (*以文本框输入*)

(*以下是圆按钮选择输入*)

{{a,1,"区 间 范 围"},{0.5->"[-0.5,0.5]",5->"[-5,5]"},ControlType->RadioButton},TrackedSymbols->All, SaveDefinitions->Manipulate]

图1 泰勒级数演示

总而言之,交互式输入通过调节控件类型选项,能够实现类似于windows 的文本框、下拉式列表框、选项卡、滑杆、微调按钮等常用的交互式操作;也可设置初值、标签等一些提示信息;还可通过行列布局命令实现交互界面的各对象的布局。

通过帮助文件,深入学习Manipulate 操作命令中的各种选项的使用方法,仔细品读示例与模仿练习,定能提高交互式界面的数学课件设计水平。

3.2 无穷小概念课件的制作

在高等数学中,有关无穷小量的概念学生较难理解,而通过下面的演示课件,见图2,拖动区间调节滑杆,观察图中两条曲线的贴近程度,等价无穷小的概念的核心思想表现的淋漓尽致,而且能动态输入函数,实现实时交互,极大地提高了教学质量与效果。

Manipulate[ Plot[{f,g},{x,-a,a}],

Item["以下体会等价无穷小概念",Alignment->Center],

Item [" 请在f [x] 与g [x] 中输入两个函数",Alignment->Left],

Item [" 然后拖动滑块,观察两条曲线",Alignment->Left],

Item["g(x)中还可输入Tan(x) ArcSin[x] ArcTan[x] Log[1+x] Exp[x]-1 等函数",Alignment->Left],{{f,x,"f[x]="},ControlType->InputField},

{{g,Sin[x],"g[x]="},ControlType->InputField},

{{a,2,"区间调节"},2,10^(-5),-10^(-6)}

]

图2 等价无穷小概念理解

4 结语

限于篇幅,以上只是精选了两则案例,其实大学数学课程中的许多概念,都可以编制出交互式操作的课件。数学的思想方法以算法的语言方式表现在代码段,想调节哪个参数对象或属性,只要在控件区设置好,一个简单的Shift+回车键,具有交互式操作的图形用户立即生成。Mathematica 数学软件中的Manipulate 命令,极大地降低了开发交互式数学课件的难度,广大教师早已把它融入到打造模块化课程的教学改革之中,并已取得了良好的教学效果。

猜你喜欢
控件程序设计代码
基于C++Builder 的电子邮件接收程序设计*
使用“填表单”微信小程序 统计信息很方便
医学专业“Python程序设计”课程教学改革总结与思考
基于.net的用户定义验证控件的应用分析
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
神秘的代码
高职高专院校C语言程序设计教学改革探索
一周机构净增(减)仓股前20名
一行代码玩完19亿元卫星