论工科线性代数的现代化与大众化

作者:陈怀琛 教授

数学与工程的结合在本世纪中最明显的特色就是计算机广泛应用于科学计算。但是在大学的数学教育中,并没有得到充分的体现,学生学习的主要仍是笔算,与未来的工作严重脱节。在线性代数课程中,这一点表现尤其明显。实践证明,线性代数课程的现代化改革将是提高大学数学教育应用水平的一个有效的切入点,本文将对此进行论述。

关于线性代数课程目标的争论和演变

从上世纪起,线性代数从一门较抽象的理论学科发展成为所有专业科学计算的技术基础,从少数数学家的象牙之塔进入到每个大学生的手头工具库。这一转换可以概括为“现代化”和“大众化”两个方面,没有任何一门其他课程会在短期内经历这样的巨变。如何认识和应对这个变化,并在有限的时间内,把最需要的内容教给具有不同需求的学生,使课程的改造能够以更自觉的方式,更明确的目标,在更广泛的领域向前推进,这是本文的主题。在本文中所说的“工科”,只是为了简短顺口,论述的内容也适用于理、经、管等非数学专业。

虽然线性代数已经列为大学的公共数学基础课,但要记住这个角色还相当新,其目标还非常模糊,它远未起到应有的作用。微积分已经在大学教学计划中存在了两百年,它和工科后续课已进行了无数次磨合。而线性代数的第一本研究生教材出现在1940年代,第一本本科教材出现在1959年,第一个CPMU(美国本科数学大纲委员会)建议大纲于1965年制订。由于课程当初主要用于数学系,因此其着重点是抽象的“N维向量空间”,目标是为更抽象的高年级数学课程作铺垫。“矩阵应用”的这个侧面则受到相当程度的忽视,与后续课的需要存在着巨大鸿沟。

20世纪后50年计算技术的高速发展,推动了大规模工程和经济系统问题的解决。使人们看到,线性代数和相关的矩阵模型是如微积分那样的数学工具。无所不在的线性代数问题,等待着各层次的工程技术人员快速精确地去解,修这门课程的学生绝大多数已是非数学系的。然而,这门课程却仍然沿用了为数学系设计的以抽象的N维向量空间为主线的大纲,对矩阵模型及相关的计算极度地忽视。大多数学生对这门课的反映是抽象、冗繁、枯燥、无用。他们在毕业并工作多年后仍普遍批评这门课“有用的不教,教了的没用”,提出了强烈的改革要求。

对这种要求的答复集中表现为1990年美国LACSG(线性代数大纲研究组)提出的五条改革建议。其要点是:要满足非数学专业面向应用的需要;要强调以矩阵运算为基础(不是向量空间);要从学生的实际水平出发(低年级);要采用最新的软件工具(用计算机).这四条强调的都是课程的实用性,降低其抽象性。为了适应少数学生深化理论的需求,加了第五条:对想读数学学位的学生应另开一门高年级课程。这些建议在美国的线性代数界得到了广泛的支持,1992年起,又由国家科学基金会(NSF)资助了为期六年的ATLAST计划,对教师进行数学软件的培训。美国当前的教学内容和教材,已经与20年前大不相同了。概括起来,一是现代化,普遍用计算机解决问题;二是大众化,使理论基础不高的普通学生都能听懂,并会用矩阵解题。MIT的G.Strang教授提出了“让线性代数向世界开放”的口号,听他视频课的已超过100万人。

中国的线性代数在1980年代开始进入大学,1995年,教育部数学教指委正式发布了对它的“教学基本要求”,它所用的恰恰是美国改革前的大纲,而且理论更深,实践为零。针对理论和实践严重失衡的现象,2005年起,西安电子科技大学开展了“用MATLAB提高线性代数教学水平”的研究试点。主要抓了“有用的不教”、“实践为零”的问题,先利用补丁教材《线性代数实践及MATLAB入门》,组织了全校的教师培训班。又编写了理论与实践结合的教材《工程线性代数(MATLAB版)》,在学生中进行了试点教学。目的就是强调矩阵建模和计算机应用那个侧面,这些工作得到了数学基础课程分教指委的赞同和高教司的支持。2009年,高教司设立了“利用信息技术工具改造课程”的项目,其中由西安电子科技大学牵头,18所大学参与,实施了“用MATLAB及建模实践改造工科线性代数”子项。两年多来,共有200多名教师、45000名学生参加了这项改革,由于利用了概念形象化的手段、算题简捷化的工具和丰富多彩的应用实例,受到参试师生普遍的欢迎。在2011年项目评审时得到了教育部高等学校数学与统计学教指委数学基础课程分教指委的高度评价。参试师生提出的主要诉求是增加上机实践的时数。

要补充实践内容,只要证明旧内容的不足,容易得到认可。但学时会有所增加,而且解决不了理论过难过深、数学系味道太重的问题。全面的改革,应该删掉部分工科当前不用的东西,这就容易引起争议,弄不好影响改革进程。因此这两年中,我们对理论简化的问题没有付诸试验。主要进行调查,只动口,不动手。现在机算的问题已经解决,我认为应该进入对理论教学内容作改革的攻坚阶段。这里最重要的出发点是“需求牵引”,因为后续课和毕业后工作的需求是客观存在并与时俱进的,按照客观需要决定教学大纲是课程磨合的好方法。这里特别要强调两点.

其一是把学生的近期需求与远期需求相区别。对于大学一年级来说,本科的后续课要用的内容,属于近期需求,必须尽力满足,而且应该列为必修的内容;远期需求是指未来工作或考研等可能用到的内容,不应列为公共基础课内容,可以到高年级时由少数学生选修。

其二是数学系学生要“搞数学”,非数学系学生则是要会“用数学”,这两者是很不同的。同样是“用数学”,层次差别也很大。再就是‘需要’和‘可能’往往难于兼顾,为达到最主要的目标,必须要忍痛割爱。所以选择课程内容和方法时要在这些方面下功夫。

工科对线性代数的需求及要增补的内容

我们主要以机械类、电子信息类、和控制类的教学计划为对象进行调查,研究它们的后续课程中有哪些地方用到线性代数。从调查的结果中可以发现,各专业都有十门以上的后续课要用线性代数。在文献中可以还找出类似的几十个例子.比如三坐标测量仪的数据分析要用矩阵,测量卫星轨道数据要解超定矩阵方程.频谱分析要用1024阶复数矩阵乘法,根据k点幅谱要求设计N阶最佳滤波器遇到的是N阶超定方程;数值方法课中N点的曲线拟合要解N—1阶超定方程;解偏微分方程的有限元法要解几十万阶的矩阵方程;…。可以说,凡是要用计算机解题的地方都要用矩阵。但后续课需要解的是高阶、复数的线性方程组,而我们的线性代数课程没有教学生矩阵求解的软件工具,包括数百万现在已是各行业骨干的教师及工程师都没学过。矩阵模型若不用软件工具.其效率还不如初等代数。而复杂些的,十个小时也算不出来。这些题目若按矩阵模型用计算机算,几分钟就解出来了。这不是在国际科学技术竞争中自甘落后吗?

说到底,工科机、电、控制专业所需要的数学,无非是代数和微积分.代数问题比微积分还多。毕业的学生遇到微积分还可以去查查书.找解答;碰到代数问题就一筹莫展。代数问题的特点是“繁”,“矩阵+软件”是针对这个特点的杀手锏。现在的线性代数只教前一半.那就是丢掉了这个杀手锏的精髓。稍复杂些的代数问题就不会解.而它占到了工程中数学问题的一多半。这种教学中的偏颇已经造成我国一代人才在数学能力上的畸形,严重影响了工科学生的培养质量。

除了解高阶方程这一头的缺失之外,在向量空间这一头也有问题。传统的线性代数总强调N维抽象向量空间的重要性。我们也在本科课程中进行了调查.可是到现在还没有找到一个有说服力的需求实例。有人指出.将一个函数展开为N阶傅里叶级数,可以看成是N维向量的叠加。是的,专门搞代数的人可以这样去理解,但绝大多数搞工的老师和本科教材都不会从这个角度去思考,而是用波形叠加来理解,这更加符合工科形象思维习惯。

对工科大学生来说,最重要的是看得见、摸得着的欧几里得空间,后续课中就有很多实际应用问题,有些是在现代化机械车间中就会遇到的。

  1. 例1 三坐标测量仪测得工件截面上五点的三维坐标,问这些点是否在一个平面上?求该平面的方程及各点误差;它们是否构成一个圆?求该拟合圆的方程。
  2. 例2 给出三角形刚体在平面上的初位置和终位置.问这个位移如何用矩阵乘法来表示?从初位置到终位置,如何分成十步来实现连续动画?
  3. 例3 任何刚体的空间转动能否及怎样用矩阵乘法表示?
  4. 例4 3D动画需要把三维物体的形象投影到二维的屏幕上,怎样用矩阵运算来实现投影?

这些都是很直观的“线性代数和空间解析几何”的问题,但按现在的不用计算机的教材教课,这些问题都是解不出来的。也就是说,在向量空间的教学内容上,喊的是N维向量空间,其实连二、三维的问题都没搞懂,而后者才真正是工科大学本科的迫切需求。当把上述问题用计算机软件来解时,空间解析几何又进入了新的层次。并且为学生理解和掌握三坐标测量、机器人和机械手、计算机图形学、2D,3D动漫技术、三维空间六自由度航行器运动学等广泛的现代化新课程作了准备。

线性代数花了很大篇幅讨论N维向量空间,这在当时也许是合理的。因为教学对象是数学系的研究生,强调的是推导和证明,那时还没有计算机,不能指望线性代数有多少工程应用价值。现在时代发生了巨大的变化,线性代数已成为科学计算的基础,教学对象是立体概念尚待建立的低年级学生(我教过制图,知道让有些人建立空间概念是多么困难,何况N维),计算机已普及到人手一台,强调的是面向现代化工程应用。目标、对象、条件都不同了,大纲怎么能一成不变呢?50多年来,线性代数的发展都是围绕着计算技术实现的,它的教学内容当然应该体现出时代的精神。

由于线性代数内容非常丰富,各类学生的需求在理论和应用两个领域又有很大的差异,可以设想,改革的大方案应该是把线性代数分成两门课。第一门是低年级公共课,强调矩阵方程的解和欧氏空间,强调形象教学和感性认识,强调计算机软件应用,以满足本科四年中各后续课程的科学计算需求为必达的起码目标;第二门是高年级选修课,它可以为数学系的后续课程做铺垫,也为可为考研做准备,其内容可有更高的抽象性。不过学第二门课也要有第一门课作为基础,因为任何高级的抽象思维必须建立在大量的感性知识之上。这样,第一门课就会变得较为形象而易学,全体理工科本科和大专学生都要修,所以要特别强调它的大众化方向。

解决好线性代数课的大众化问题

要解决好这个问题,首先要弄清楚工科毕业生究竟是如何使用数学的。开发Mathematica软件的数学家Wolfram在2010年指出,即使是美国,在学校内的许多课程仍然在用手算,而到企业和社会上,他们所用的都是CAD软件,即机算。如果仍然只会手算,他们将被解雇。“School Math(学校数学)”不向“Real World Math(真实世界数学)”靠拢,会造成巨大的鸿沟,浪费大量的社会资源,影响国民经济的发展,这段话对线性代数尤其适用。

工科学生学数学是为了“用数学”,数学系学生是“搞数学”(指研究数学),其实大多数数学系学生毕业后是做大、中学数学老师,也还是用数学,搞数学的是极少数。这两者有很大的不同,培养的方法也应该完全不同。举学车为例吧,在几十年前,当汽车还没有大批量生产时,车的质量不稳定,开车的人要不断地调整修理它的各种部件,开车的必须懂汽车的详细结构,培养一个司机和培养一个技术员差不多,要花很多时间;到了今天,由于汽车质量的提高和各种自动化装置的应用,学开车可以完全不了解车的结构,他们只要知道驾驶座周围的仪表和操纵杆会对车的运动产生何种影响,又认路,就能熟练驾驶了。学开车只要几天,开车大众化很容易实现。

“用数学”和“搞数学”的差别也类似,由于数学软件已经高度自动化,“用数学”者对于数学理论的推理和证明的要求可以大大降低,对计算的细节也无需深究,主要要知道所做计算的目标和物理意义,知道达到目标的多种途径及其优劣,能做出比较选择。还要知道数学软件中各种命令的用途,以及计算机可能作出的反应。正如钱学森指出的:“数学课不是为了学生学会自己去求解,而是为了学生学会让电子计算机去求解,学会理解电子计算机给出的答案,知其所以然。”

拿行列式作为例子。中国大部分线性代数书都从数序起讲,光N阶行列式的定义和它的性质就要花几个学时,但大部分的师生连二、三阶行列式的几何意义都不知道,对四阶以上行列式则从来没有算过,更没有用过。人们都知道行列式的用途是判解的存在性,再问一下,判解和求解哪个容易?多数人是答不出来的!其实,用高斯消元法解方程比按定义计算行列式快得多,即求解比判解的计算复杂度小很多(5阶差10倍,25阶差1023倍),与其费力判解,不如直接求解。用计算机算题都是直接求解,如果无解,计算机会告诉你:“行列式接近于零,解不可靠”。这时工程师要做的是从物理上找原因,决不必去重算行列式的。只有书呆子才会先算行列式判解,再去求解。如果有人按克拉默法则算N+1个行列式去求N个解,更是N重的书呆子了。老师教了学生所有算行列式的方法,不结合应用,貌似内容多、水平高,其结果很可能培养出来“不会用数学”的书呆子!舍简就繁的根源在于“搞数学”的人看来,最重要的是解的“存在和唯一性”,要从源头就有严格的证明,这就必须从严格定义出发,所以行列式便被奉为圣灵,放在线性代数的第一章第一节开讲。因为要笔算行列式,所以要引出并证明它的许多性质。而从“用数学”的人看来,既然行列式计算根本无助于求方程解,那么为了计算它而推导的性质都没有工程价值,完全可以不讲。只要以二、三阶行列式为例弄清它的几何意义,知道它等于零为什么意味着无解或向量组线性相关就够了,真正计算必须得靠计算机。

有些老师会认为这样讲行列式水平太低了。我建议您们看看Strang在教材中是怎么讲的。他特意把行列式列为第五章,并在序中写明了这样布局的意义,就是为了贬低行列式计算,避免误导学生真去算它。在这章中,他讲了行列式的十个性质、代数余子式以及克拉默法则,采用的方法都是举二、三阶行列式的例题来说明(不是证明)。几句话带过,就是只要你知道有这么回事,他的这本书就这样完全避开了任何N维空间的推导,同时他的课却得到了一百万的听众,在中国这样的书该被嗤之以鼻了。所以要想出版大众化的教材,评价的标准必须把易懂实用(而不是证明严密)放在第一位。大众化的线性代数不仅要能为普通大学的新生所接受,最好也能为高职高专的学生所掌握和使用,那就必须删去一切人为的“拦路虎”,把线性代数变得浅显易懂。

再来看线性方程组解的特性的讨论,其实难点就是研究欠定方程组的解空间,那是一个占学时很多,师生都感到摸不到头脑的主题,它在工程上的用途却几乎为零。任何一个正确建立的工程问题,必须存在确定的解,故其数学模型只可能是适定或超定,不可能是具有无数庸解的欠定方程组。欠定方程是条件欠缺造成的,工程师可以用“条件不足”为理由而拒绝欠定命题,超定命题则是工程师必须会解的,现在却不教。“大讲欠定,不讲超定”是线性代数“教了的没用,有用的不教”的典型。其实,数学界从来强调命题的“存在和唯一”,也就是说,如果解不满足唯一性,这个命题就没必要研究下去了!不知线性代数为什么例外,明明已由行列式为零判为庸解的命题,却还要花时间去研究这些庸解组成的空间?这绝不是工科的需求!目前知道,它的唯一的需求是来自线性代数自身的求特征向量,因为求的解不是一个点,而是一根过原点的线(即一维子空间),才出现欠定方程组求解的问题。

特征向量的计算实际上涉及三个串接的难关,第一个是求特征方程,它涉及到繁琐的行列式计算;第二个是特征根的计算,涉及一元高次多项式求根;第三个才是解欠定方程组。想用手算矩阵的特征向量必须过这三关,其中最难是第二关,因为手工只能求到二阶,到了三阶,这一关就过不去,在第三关上下再大功夫也是白搭。可见,即使是三阶(非老师凑好的)实系数方阵,特征向量就不可能靠手算求出,更无必要拉扯出更抽象的N维向量子空间。要想对学生有用,主要是讲清特征向量的概念,要计算必须得靠计算机。

上面举了两个例子,都是占学时很多的难点,却都不是工科本科所需要的重点,可以大大精简。其他的内容也可以用类似的方法(即按它对工科有无用处来判断取舍)来处理,在这个过程中,我们才能真正吃透线性代数的全部内容,并用各专业需求的胃液对它进行消化,创造出适合于相应专业的浓缩营养品,培养出真正会用数学的人才。不做这个消化工作,像反刍动物一样,把吃进去的素材全部照样吐出来喂学生,那是很不可取的。要做好消化工作,数学和专业教师的结合是必不可少的条件。靠清一色的同行教师来搞改革,很不利于创新思维的出现。作为工科出身的教师,我愿意同有志于斯的数学家合作,共同编写大众化的线性代数教材。

有些老师会反对,说你要删去的这些理论对培养学生思维能力多么重要。这要看学时约束条件,争论的焦点是:对非数学系低年级,在有限的学时内,什么是学生最需要并能够接受的内容。有些争论可能会持续较长的时间,为了不影响公共课教学大纲的制订,我们建议设置一门高级选修课,它可收容这些有争议的高深内容,而保证必修课程中内容的实用和精炼。公共线性代数的大众化每年将使几百万学生和技术人员受益,他们将接受概念简洁、目的明确的理论,并且会用计算机方便地解决遇到的代数问题,使数学用于现实世界,对我同的现代化事业作出巨大贡献。高级线性代数课程是为拟深造理论的高年级工科及数学系学生进行铺垫的。在大四开这门选修课,学生的理论和实践的基础都打好了,接受能力大大提高,而且选课的必是学生中的尖子,任课教师人数减少了,执教者必是教师中的精华。可以放手讲他们擅长的内容,教学质量必有很大的提高。学生学完后很快参加考研,效果肯定好得多(现在的考研题也该改,要理论与实践结合),何必要在低年级上那些太抽象的课,让90%以上的师生陪绑受罪、吃力不讨好呢。把线性代数分成两门课可以防止基本学时的膨胀,确实会是领导、各类教师、各类学生皆大欢喜的事,我们应该促成它的实现。

结语

对工科学生而言,数学课应该使他们有宏观的用数学的思想,要使工程师了解工程中可能遇到的各种数学问题的类别,并且知道应该用什么样的数学理论和软件工具来解决,这是一种高水平的抽象,由于计算机软件的高度发展和自动化,他人和前人的经验都已经集成在软件中,不必自己都懂,不一定要求掌握其编程、推导的细节。用了软件,后续课和工程中大量的线性代数以及其他数学问题,就有了多快好省的解决办法。所以“现代化”是“大众化”的基础。现在“现代化”的客观条件已经完全具备,主要是掌握软件工具的老师太少,需要形成一个学习和培训的环境,像美国在1992—1997年实行的ATLAST计划那样;“大众化”应该是我们奋斗的当前和长期的目标,需要各方面的专家权威进行更多的分析和论证,希望教育部的学术指导部门能予以足够的关注,能参照美国LACSG那样,组织各方面专家进行有充分准备的讨论,形成有权威的改革建议。

广告

0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论