孙文兵+杨立+君刘琼
【摘 要】线性代数作为工科专业一门基础数学课程在传统教学和学习中重理论而轻实践,导致线性代数不能为后续课程的学习发挥其实际应用价值。分析了线性代数教学改革中融入Matlab计算软件的必要性和可行性。结合Matlab在线性代数课程计算中应用实例,阐述了Matlab在线性代数课程教学改革中的意义。
【关键词】线性代数;Matlab;教学改革
1 线性代数教学中值得思考的问题
线性代数的授课对象以工科、管理学专业学生为主,这些专业的学生学习目的不同于数学专业,他们不从事线性代数理论研究,更在乎对后续课程学习的基础作用,因此从事线性代数教学的教师更要了解授课对象需要什么。传统的线性代数教学面临很多的问题值得教学工作者思考:一是过多抽象理论讲解缺乏与实际问题的联系。线性代数本来是一门很抽象的学科,如果教师教学中一味传授理论缺乏与实际问题的联系,学生学了以后觉得似懂非懂,理解困难,曾有学生问我,学了线性代数有什么用?是的,学了又不能解决实际问题有什么用,这是因为我们教学过程中忽略了线性代数的应用价值,当然这有一定的历史原因,线性代数作为大学必修课程从20世纪80年才开始引入[1],另一个原因是线性代数教材的编写不应以纯理论为主,应多结合实际。二是涉及到的计算多以笔算为主。线性代数涉及特别多的矩阵计算,低阶情况笔算还勉强可行,但计算量很大,而且大多是机械的加减乘除运算,一节课下来,教师板书几黑板,“忙”的不亦乐乎,然而收效甚微,繁琐的计算消耗了学生的学习热情。 第三,所教授的知识不能满足后续课程学习的需要。尤其工科专业后续课程往往要以线性代数为工具解决实际问题的计算,由于教授内容重理论忽视与计算机的融合,因此所学的线性代数知识并不能为后续课程计算提供帮助。由此可见,传统的线性代数教学方法必须进行改革。
2 线性代数教学与Matlab软件结合的必要性和可行性
面对大型的实际问题往往涉及到批量数据的计算处理,利用矩阵建模恰好能达到这一目的,很多大型的计算问题最终都转化为矩阵计算,因此线性代数在科学计算中发挥了关键的作用,这也是线性代数在工科后续课程中真正价值所在。所以线性代数的课程教学必须与科学计算相结合,一味强调抽象理论的学习和笔算方法,忽略了工科学生学习线性代数的目的所在。
线性代数中的笔算方法对于学生理解方法确实有所帮助,但是对于大型的实际问题几乎是纸上谈兵,寸步难行的。举个简单例子,实际中求10阶的行列式并不算大型问题,用行或列变换将行列式化为三角形行列式的方法计算行列式要进行339次乘除运算,在不出现任何错误的情况下,估计要10-20多分钟才能算出。而且这种计算对锻炼学生的计算能力几乎没有作用,只会降低学生的学习兴趣,而用Matlab软件只需一个命令便可轻松解决。
Matlab软件是一种以矩阵为基本单元的高级计算语言,具有功能强、效率高、简单易学的特点[2]。Matlab最初是美国Cleve Moler教授为方便矩阵计算而编写的使用Linpack和Eispack的接口程序,经过多年的发展Matlab现在已经成为各高校理工科多门课程基本教学工具,也逐渐成为大学生和研究生必须掌握的一门语言工具,对涉及到矩阵的计算问题使用起来非常方便,所以讲Matlab融入到线性代数的教学当中是行之有效的。
3 Matlab软件融入线性代数教学中的应用举例
下面举几个在线性代数教学中常见的计算问题:
例1 求矩阵的行列式、逆以及矩阵的秩。
在Matlab命令窗口中输入:
>> A=[3,-2,0,-1;0,2,2,1;1,-2,-3,-2;3,1,2,1];
>> det(A) % 求行列式的值。
输出结果ans = -11.0000
>> inv(A) % 求矩阵的逆。
输出结果ans =
-0.0909 -0.0909 0.1818 0.3636
-0.2727 0.7273 0.5455 0.0909
0.6364 0.6364 -0.2727 -0.5455
-0.7273 -1.7273 -0.5455 0.9091
>> rank(A) %求矩阵的秩
输出结果ans =4
这是一个求四阶行列式的值以及矩阵的秩和逆的问题,利用矩阵的初等变换笔算方法大家都有体验,计算麻烦而且不容出任何错误,用Matlab软件实现只需一个命令,简单至极。当然有人质疑,如果这些计算都用计算机代替了,不利于学生对概念的理解,所以教学中要把握好分寸,简单的计算可以帮助学生理解概念原理,但更重要的是引导学生学会科学计算法,因为工科学生掌握线性代数的目的是为后续专业课程中涉及到的计算问题做准备的。再看一个经济学中常见的应用问题:
例2 在一次投料生产中,获得四种产品,每次测试总成本如下表所示。
试求每种产品的单位成本。
解:设四种产品的单位成本分别为x1,x2,x3,x4,根据题意建立线性代数方程组:
在Matlab命令窗口输入:
>> A=[200,100,100,50;500,250,200,100;100,40,40,20;400,180,160,60]; % 方程组系数矩阵
>> b=[2900,7050,1360,5500]';%方程组右端常数项
>> x=A\b %对方程组求解
输出结果x = 10 5 3 2.
从上面几个简单例子可以看出,Matlab软件融入线性代数教学和学习中可以解决很多复杂机械的计算问题,提高学生的学习兴趣,为后续专业课程的学习中发挥线性代数的极大价值打下坚实的基础,也说明线性代数教学改革中融入Matlab科学计算软件的重要性。
【参考文献】
[1]陈怀琛.线性代数要与科学计算结成好伙伴[J].大学数学,(下转第301页)(上接第18页)2010(26):28-33.(增刊1).
[2]刘卫国.Matlab程序设计与应用[M].2版.北京:高等教育出版社,2006.
[3]刘金旺,夏学文.线性代数(修订版)[M].上海:复旦大学出版社,2008,6.
[责任编辑:曹明明]