王建卫
MATLAB语言在计算的可视化教学中的应用
王建卫
(东北林业大学 机电工程学院,黑龙江 哈尔滨150040)
为了解决计算的可视化教学问题,应用TRIZ理论的相反原则,提出了通过MATLAB语言程序设计实现计算的可视化的教学模式.在该模式中掌握MATLAB编程原理和提高应用软件的能力并重,进行了突出计算功能和绘图功能的教学设计.将MATLAB语言教学的主要内容归纳为MATLAB语言基础、计算和绘图3部分内容.教学实践证明,基于MATLAB语言实现计算可视化教学模式能够激发学生学习的效率,提高教学效果.
计算的可视化;TRIZ理论;MATLAB
在前苏联发明家G S Altshuller的领导下,前苏联的研究机构、大学和企业组成了TRIZ的研究团体,分析了世界近250万份高水平的发明专利,总结出各种技术发展进化遵循的规律模式以及解决各种技术矛盾和物理矛盾的创新原理和法则.建立了一个由解决技术,实现创新开发的各种方法、算法组成的综合理论体系,并综合多学科领域的原理和法则,建立起了TRIZ理论体系[1].自TRIZ理论诞生以来,国外就一直比较注重TRIZ理论的研究、教育和实践工作.我国对于TRIZ理论的研究还处于初级阶段,对于教学,特别是本科生的教学方面的应用需要加强.本文以相反原则为例,对MATLAB语言在计算可视化教学中的应用进行研究[2-3].
MATLAB是美国Mathworks公司推出的用于科学计算和图形处理的可编程软件系统,2004年推出的MATLAB 7.0版包括基本部分和专业扩展部分,其中基本部分有28个函数库,常用的函数约1 200多个;专业扩展部分为用于解决某一方面专门问题的各种子程序集.
由于MATLAB的函数繁多,应用范围广泛,在教学中,对下述问题的思考是必要的[4-5]:
1.1 以计算的可视化功能为主线的教学模式
以函数库的函数功能介绍、函数应用为教学过程的主线还是以计算的可视化功能为主线曾经是MATLAB课程教学中的2种模式[6-7].从TRIZ理论的观点来看,以功能的视点来教学是MATLAB语言教学的必然之路[8-9].
1.2掌握编程原理和提高应用软件能力并重
MATLAB是编程语言,也是软件环境,因此学习MATLAB既要培养编程能力,也要提高软件应用能力.在教学中应以MATLAB的某一当前主流版本为基础,注重提高应用英文软件能力,理解MATLAB编程的思想,重点讲述MATLAB编程的基本原理.
1.3突出计算功能和绘图功能
数值计算函数涵盖了数据分析、矩阵分析、多项式函数、数值插值与拟合和数值微分与积分等方面,符号计算函数涵盖了符号矩阵分析、符号多项式函数、符号级数、符号微积分、符号积分变换、符号微分方程和代数方程的求解等方面,因此符号计算具有更广泛的应用范围.
1.4函数讲解与大学数学内容的结合
由于MATLAB的函数很多,教学中不可能介绍各个函数库中的所有函数,因此应主要以高等数学和线性代数课程为基础介绍相应函数库中的常用函数[10-11].
综上可知,MATLAB语言的主要内容分为3部分:MATLAB基础(包括软件环境及数据类型、流程控制语句)、计算和绘图.
灵活应用函数是编写MATLAB程序的难点,而有些函数看似简单,但应用并不简单,这也是初学者的障碍.本文应用TRIZ理论的相反原则,选取了等量代换、求素数和三维绘图3个数学问题[12],用几个不同的函数编写不同思路的程序来解决问题,以说明不用常规的解决方法往往能够更好地解决问题.MATLAB 7.X版本是目前所使用的主流版本,本文下述的M文件均在MATLAB7.X的环境下运行通过.
例1 subs函数的应用.
syms a b x;%创建符号变量a,b和x
f1=subs(f,'a',sym('2'))%以符号常量2替换
符号变量a
f1 =
2*sin(x)+b
f2=subs(f,{a,b},{sym('2'),sym('3')})%
分别以符号常量2,3替换符号变量a,b
f2 =
2*sin(x)+3
f3=subs(f,{a,b},{3,2})%分别以标量2,3
替换符号变量a,b
f3 =
3*sin(x)+2
f4=subs(f,'sin(x)',sym('y'))%以符号变量
y替换符号表达式sin(x)
f4 =
a*y+b
f5=subs(f,{a,b,x},{2,2,sym(pi/3)})%
分别以标量2,3替换符号变量a,b,以符号常量
pi/3替换符号变量x
f5 =
2+3^(1/2)
f6=subs(f,{a,b,x},{2,2,pi/3})%分别以标
量2,3,pi/3替换符号变量a,b和x
f6 =3.7321
等量代换是高等数学中的基本问题之一,可用于解决一般的解析式求解问题和把复杂的计算问题简单化.为了达到一定的计算精度,辅助元的选择是等量代换的关键问题.在例1中,以符号计算为例,说明了通过等量代换计算新函数的解析式方法和应用等量代换实现精确计算的方法,这有助于帮助学生分析复杂的等量代换形式,从而建立代数问题的可视化解题思路,有助于提高解题效率.
例2求全部两位数的素数.
方法1 应用二重循环程序实现
p=1:99;p(1)=0;
for i=2:sqrt(m)
for j=2*i:i:m
p(j)=0;
end
end
n=find(p~=0);
p(n)
方法2 应用find函数和循环程序实现
p=2:99;
for i=2:sqrt(m)
n=find(rem(p,i)==0&p~=i);
p(n)=[];
end
p
方法3
sushu=[];
for ii=10:99
x=factor(ii);
if x==ii
sushu=[sushu ii];
end
end
sushu
执行结果:
sushu =
Columns 1 through 11
11 13 17 19 23 29 31 37 41 43 47
Columns 12 through 21
53 59 61 67 71 73 79 83 89 97
素数问题是数论的基本问题之一,例2中的方法1和方法2是通过经典的数值计算方法实现的,方法3是通过符号计算函数factor进行因式分解实现的.分析这3种方法,可见方法3具有简单、易懂的优点,这将有利于学生开拓解决数论问题的思路,实现数值计算和符号计算的同步应用.
方法1
x=-1:0.05:1;y=x; [x,y]=meshgrid(x,y); z=x.^2+2*y.^2; surf(x,y,z)
执行结果见图1.
方法2
syms x y;f=x^2+y^2;ezsurf(f)% -2π≤x≤2π,-2π≤y≤2π
三维绘图是高等数学中的难点和重点,简单的解析式往往对应着复杂的三维图形.例3中方法1是三维空间作图思路的MATLAB实现,方便地实现了三维曲面的绘制;方法2是通过更为简单的符号计算语句实现了快速三维绘图.这意味着三维图形绘制的方法不是唯一的,激发了学生学习计算问题的主动性,在一定程度上有助于培养学生的创新思维.
图1 函数的三维曲面图
开展TRIZ理论在课程教学中的应用研究能够更新传统教育的观念,有利于对学生进行创新教育和创新能力的培养.本文应用TRIZ理论的相反原则介绍了应用MATLAB语言程序设计实现计算的可视化教学的过程,并通过实际的课堂教学案例说明应用TRIZ理论进行教学的必要性.
[1] 黑龙江省科学技术厅.TRIZ理论入门导读[M].哈尔滨:黑龙江科学技术出版社,2007:19-73
[2] 张新颜.基于知识图谱的国内外数学问题解决研究可视化分析[J].数学通报,2015,54(8):14-18
[3] 王建卫,曲中水.MATLAB7.X程序设计[M].北京:中国水利水电出版社,2007:67-185
[4] 张维忠,唐慧荣.可视化教学内容设计的五大原则[J].电化教育研究,2010(10):99-102
[5] 成凌飞,高娜.培养本科生创新思维的知识可视化教学法[J].教育教学论坛,2012(36):53-55
[6] 孙欣,冯艳,吴志丹,等.MATLAB软件可视化效果在大学数学中的应用[J].沈阳师范大学学报:自然科学版,2014, 32(4):549-552
[7] 姚琼,高东娟.面向独立学院学生的线性代数课程“可视化”教学研究[J].大学数学,2013,29(1):6-10
[8] 李正学,程明松,杨洁.基于Matlab的智能计算课程可视化教学[J].教育教学论坛,2013(17):263-264
[9] 吴雅娟,杨王黎,梁吉胜,等.基于可视化技术构建《计算方法》课程探究式教学环境[J].西南师范大学学报:自然 科学版,2014(8):141-144
[10] 郭美荣,侴爱辉,夏德宏,等.可视化教学法在实验教学中的应用[J].实验室研究与探索,2012,31(11):128-130
[11] 阿荣.Maple在线性代数教学中的应用[J].高等数学研究,2013,16(4):97-99
[12] 韩明.将数学实验的思想和方法融入大学数学教学[J].大学数学,2011,27(4):137-141
Application of MATLAB language during the teaching of computation visualization
WANG Jian-wei
(School of Mechanical and Electrical Engineering,Northeast Forest University,Harbin 150040,China)
In order to solve the problem of computing visualization teaching,proposes the teaching mode of computing visualization realized by MATLAB language program design based on TRIZ theory.Mastering MATLAB programming principle and approving the ability of applying software are of the same importance in the mode.It makes the teaching design of the computation function and the plotting function emphasised.It concludes the main content as three parts such as the MATLAB foundation,computation and plotting.The teaching practice indicates that the teaching model of computation visualization realized by MATLAB language can stimulate the students' learning efficiency and improve the teaching effect.
computation visualization;TRIZ theory;MATLAB
1007-9831(2016)10-0070-04
TP312∶G642.0
A
10.3969/j.issn.1007-9831.2016.10.021
2016-05-22
王建卫(1973-),女,山东龙口人,副教授,博士,从事模式识别与智能系统研究.E-mail:jwwang2007@163.com