E N D
XDU 使用现代化软件创造性地学好线性代数 给西电大一学生的讲座
西电牵头的教育部项目 • 往年我的讲座题目是“科学计算能力和MATLAB”,今年不同是由于一个新的情况。经过我们多年的努力,西电在线性代数课程的改革成就得到了教育部的认可。今年1月,教育部启动了“使用信息技术工具改造课程”的教改项目,西电申报的“用MATLAB和建模实践改造工科线性代数课程”被核准为18个子项之首。这个项目要求我校联合15个以上的大学,把现代化计算工具MATLAB用于线性代数课程,大大提高学生的科学计算能力,提高课程的教学水平,并使它真正成为教学计划各后续课的基础,提高学生全程培养的质量。
一。计算机应如何推动教育 1。CAD/CAM(计算机辅助设计和制造)成十倍地提高了产品生产和更新的速度; 2。计算机网络和通信的应用大大加快了经济全球化的速度; 3。计算机在各个技术领域的应用使人类认识自然规律的深度、广度和速度都达到一个新的水平。 问:计算机在教育中的作用有多大?如何才能充分提高教育的效率。
科学计算工具的发展 • 算盘是最早的计算工具 • 1630年发明了计算尺,它以后成为大学理工科学生的必备工具; • 1970年发明了计算器,在中国则从1980年起,大学中计算尺迅速被计算器所取代; • 计算机取代计算器的过程从1990年开始,到2000年。在发达国家大学中已经基本完成,中国尚需努力。
工具改进促进教学科研 • 计算工具的改进可以全面促进各门课程的教学和科研; • 计算器取代计算尺主要提高了精度,没有根本性的变革; • 计算机取代计算器更具有革命性的影响。与计算器取代计算尺的过程有三点不同: • (1). 效率大幅提高,达数十倍或更高; • (2). 它反过来影响理论研究和建模方法; • (3). 需要有一定的培训教育,才能掌握。
计算机和计算器的根本差距 • 计算器是一个一个数据进行计算,最多只能存储十来个数据,计算机则可以进行数据群的计算,把成千上万的数据放在一起进行分析。 • 计算器只能执行简单的少量的运算次数,而计算机可以把很复杂的运算集成起来。做成各种子程序,方便地调用。 • 计算机可以显示复杂的图形、声音、动画,发挥多媒体的功能。 • 计算机可以存储程序和成果,促进知识的积累。
计算机替代计算器的条件 • 1。价格能够普及到大学生;——个人计算机的发展和降价。 • 2。操作界面要像计算器那样方便;——科学计算语言的出现,如(MATLAB,Maple, Mathmetica等)。 • 3。功能确实成十倍、百倍地提高;——大量工具箱(子程序集)的出现。 • 4。不仅是数值计算,而且可以进行符号运算——即公式推导。
有士兵的能力,有将军的头脑 大学生怎么学各门课程? 1。弄清概念,掌握方法; 2。知道步骤,会用手工解最简单的问题。 以上是士兵该学作的,后面才是将军的任务 3。能将步骤变成一般问题的子程序; 4。能调用多种多样子程序完成复杂的任务。 过去的教学计划只教前两步,同学也只学这两步,这是不利于培养高层次人才的,到21世纪,要教后两步。我的讲座就是要激励大家来学习后两步。
理想的大学课程教学效果 • 教师讲清了基本概念,学生知道如何解决问题,然后把解题的方法变成一个个简单的程序。 • 今后其他课程遇到类似的问题,不必重新编程,而可以直接调用此程序。 • 解决综合性复杂问题时,能够分解为几个子问题,分别调用相关的各种子程序来解决。这就是做将军的工作。
需要同学们的自觉性 教育部提出,我们学校的计划都有‘计算机不断线’的要求,同学们买了计算机只玩游戏和上网也算‘不断线’吗?不是这样,至少是很低级,不断线的核心应该是在大多数课程中使用计算机解决课程的问题。这个问题光靠教师不行,也要靠同学的主动性。 你们进入了这个时代,但你们的许多师兄和老师没有这个福气,你们有这个条件而不利用,太可惜了!要珍惜!
二。计算机比计算器强多少? 我们用几个实例来说明: • 1。线性代数方程的解 • 2。函数表的生成 • 3。函数关系和曲线绘制 • 4。高阶代数方程的解 • 5。公式推导 • 6。有记忆和积累的能力。
例题1 线性代数方程 x1 + 2 x2 + 3 x3 -4x4= 2 3 x1- 5 x2 + 4 x3 +2x4= 0 7 x1 + 8 x2 + 9 x3 -5x4 = 2 5 x1 - 2x2 -3 x3 +6x4 = 3 新办法 :矩阵+MATLAB
用计算机来解例1 A=[1,2,3,-4;3,-5,4,2;7,8,9,-5;5,-2,-3,6]; B=[2;0;2;3]; X=inv(A)*B 程序运行结果为: • X = 1.2096 • -0.4688 • -0.9288 • -1.1287 即x1= 1.2096, x2= -0.4688, x3= -0.9288,x4= -1.1287
例1的应用推广 1。理论力学静力学都可归结为线性代数方程,一个空间物体平衡有6个方程,两个物体就加倍,工程结构该有多少阶? 2。电路理论中的稳态电路也可归结为线性代数方程组。每个环路或节点就是一个方程,其中电阻电路为实数代数方程组,交流电路为复数代数方程组。 3。线性微分方程解也归结为代数方程的解。
手工必须让位于计算机 如果代数方程的阶次更高,比如10阶,系数又是复数,你用手工怎么算? 计算方法研究的结果知道,代数方程求解的需要的乘法次数为n3/3,所以十阶方程要做300次乘法和相近次数的加法,复数乘法则相当于4次实数乘法。这1000多次的乘法中不能有一次错误,这是无法做到的。 所以讲矩阵、讲计算复杂性,而不讲计算机算法实现,是违背工程教学的目标的。
例2 三角函数表的计算 由于元素群运算功能,此程序只要两条语句 x=[0:0.05:pi/4]'; [x,sin(x),cos(x),tan(x)] 运行结果为: x sin(x) cos(x) tan(x) 0 0 1.0000 0 0.0500 0.0500 0.9988 0.0500 0.1000 0.0998 0.9950 0.1003 … … … …
例3 函数群运算功能的推广 任何函数 y=f(x),假如给出100个x,即求出100个y.为列表和绘图都准备了条件。 例如 程序为 dt=0.01;t=[0:dt:1.5]; % 设定自变量数组t w= 4*sqrt(3); % 固定频率 y=sqrt(3)/2*exp(-4*t).*sin(w*t + pi/3); 这151个t与y数据可为绘图语句plot(t,y)作准备。
例4 高阶多项式的求根 高阶代数多项式求根的问题已存在几百年,手工解很烦,用计算机解极简单: a=[1,2,3,4,5];X=roots(a) 运行结果为: X = 0.2878 + 1.4161i 0.2878 - 1.4161i -1.2878 + 0.8579i -1.2878 - 0.8579i
多项式的求根的推广 >> X=roots([1,0,0,0,0,1]),运行结果为: X = -1.0000 -0.3090 + 0.9511i -0.3090 - 0.9511i 0.8090 + 0.5878i 0.8090 - 0.5878i 由根反求多项式检验 >> a=poly(X) a = 1.0000 -0.0000 -0.0000 -0.0000 0.0000 1.0000
用图形检验 plot(X,’x’) 或 polar(angle(X),abs(X),’x’)
吴文俊院士论“数学机械化” 我国“数学机械化”的带头人,获得首届国家最高科学技术奖的数学家吴文俊院士对“数学机械化”的重要意义作了如下的阐述: “…今天,电子计算机已可以有条件地代替一部分特定的脑力劳动,因而人类面临另一场更宏伟的技术革命。处在又一个新时代的前夕。” 数学脑力劳动包括三方面的内容:‘数值计算’、‘公式推导‘与‘定理证明’。
“数学机械化”的当前水平 • ’数值计算‘的特点是‘易、繁、刻板和枯燥’,适合计算机实现,因此,它的机械化已经相当非常成熟; • ’定理证明‘的特点是‘难、简、灵活和美妙’。机械化的难度较大,是当前数学家们研究的热门,吴文俊院士获奖的一个主要成就也正在这个领域。 • ’公式推导‘则介乎其中,也已达到可以广泛应用的程度。
充分利用”数学机械化“的成果 • 吴文俊院士语重心长地提出:“我国在体力劳动的机械化革命中曾经掉队,以至造成现在的落后状态。在当前新的一场脑力劳动的机械化革命中,我们不能重蹈覆辙。” • 我们提出的“用计算机代替计算器” , “提高科学计算能力”就是为了在脑力劳动的机械化革命中不要落伍。其范围主要是‘数值计算’,少量的‘公式推导‘,因为MATLAB已把部分公式推导功能集成在其软件中。
提高科学计算能力的方法 • 1。学习MATrix LAB入门; • 2。结合各门课程,应用MATLAB去解决问题; • 3。通过矩阵建模,建立数据群的方程,发挥计算机处理海量数据的优势; • 4。利用图形功能说明问题; • 5。先用MATLAB数值解,后符号推理;
MATLAB入门光盘 它包含以下内容: (看演示) 1.《MATLAB入门》(完全版),它是一套录像,由四段组成,每段播放50分钟。2.《MATLAB入门》(精简版),它由完全版录像摘录成为两段,每段播放50分钟。3. 2005年线性代数教师培训研讨会资料。其中包括给教师讲的8节课的ppt课件,培训班的小结和参加培训教师的心得汇集。4. 2008年“用MATLAB提高线性代数教学水平的研究”鉴定会资料。5.陈怀琛教授所写的六本教材中的全部MATLAB程序集,文件名为chenprog6. 《线性代数机算和应用指导》中的全部程序集。
配套的教学资料(1) 《线性代数实践及MATLAB入门》 “语言篇”,电子工业出版社,2005.10初版,2009.1第二版 第一篇:MATLAB入门 第二篇:线性代数实践 第5章 预备知识 第6章 用行阶梯法解线性方程 第7章 用矩阵运算解线性方程 第8章 向量空间法解线性方程 第9章 线性变换及其特征 第10章 后续课中的矩阵建模
第二部分 线性代数的改革 改革的缘由和目标
线性代数课程改革的缘由 • 现在的线性代数教学大纲存在着重大的缺陷,主要是没有把“需求牵引”和“技术推动”作为动力: • “需求牵引”方面——不能满足工科后续课的需求,按所教的方法后续课无法用来解高阶、复数的矩阵题目;因此它们普遍不用线性代数解题。 • “技术推动”方面——解线性代数方程需要的乘法次数为n3/3,这样繁琐的运算,还在靠手工算题,那就注定了无法解n>3的问题,严重落后于后续课教育现代化的要求。
要使方程配平, 必须满足: 将所有项移到左端,并写成矩阵相乘的形式,就有:
对矩阵A进行行阶梯变换,键入程序ea471: A[3,0,1,0;8,0,0,2;0,2,2,1] U0rref(A) 得到 注意四个列对应于四个变量的系数,有
此处可取 ,则 均有整数解, 。因而配平后的 化学方程为: 对于比较复杂的反应过程,为了便于得到 最小整数的解,在解化学配平的线性方程组时, 应该在MATLAB中先规定取有理分式格式。即先 键入format rat,然后键入ea471,结果为:
把最简行阶梯形矩阵恢复为方程,就很容易看出应令 ,其余变量的整数取值就一目了然了。 这里举的化学反应式左右都只有两种物质,如果是三种物质,方程的阶次就到了6阶。手工怎么解?
一些典型的应用(2) • 静力学中的核心是平衡方程,一个空间物体有6个平衡方程,就是n=6的线性方程组,两个刚体相联,方程数n就加倍; • 电路课中稳态电路核心是基尔霍夫方程,n个节点(或回路)就有n个方程,交流电路更是复数方程,构成n元复数方程组。 • 线性代数教的手工解法解决不了,只好不用,还是用中学的代入法,这就是现状。后续课中要算的n都大于3,现代的科学计算问题n达到几百、几千,不教计算机结果是统统不用矩阵,简单的用中学的方法,复杂的只好不算。
不用“技术推动” • 从“需求牵引”的角度,我们知道,即使是大学后续课程,需要的是高阶、复数、超定的线性方程组。用中学的代入法、消去法是不行的,所以要引进线性代数,其实,它比中学方法更繁,因为它不找窍门,而是死算,但死算有一个好处,因为程序简单了,所以线性代数的好处只有与计算机结合才能显示。 • 线性代数不用计算机解题,不联系应用,不符合课程现代化的要求,落后于美国十多年;
一个比方 • 中学代数中的“代入法”、“消去法”相当于手推独轮车,解决个体户自留地中的运输问题。 • 大学学线性代数是“载重汽车”,解决大生产中大规模、长距离的运输问题。 • 载重汽车很复杂,要讲它的原理和设计方法很费时间,但许多人忘掉了最关键一点,要使载重汽车发挥作用,必须要用发动机,要加油(MATLAB),其次必须要学会开车(机算)、认路(建模)。如果仍然用手工,那么载重汽车还不如手推车,谁也不会用的。 • 现在的问题就在这里,我们在造“手工载重车”方面下的功夫很大,但在汽油发动机、开车、认路方面一点不教,所以在后续课的广阔天地中没人用载重汽车。要把大多数用汽车的与少数造汽车的区分开来,教会他们开车、认路、解决现代化大生产的需要,这是我们改革的目标。
矩阵在科学计算中的重大意义 • 矩阵是组织海量数据进行运算的最好的数学方法,如果矩阵运算仍然用单个元素运算来完成,那末人们宁愿用代入法或消去法等中学方法。至少它可以省掉一些运算量。 • 要使矩阵运算带来实际的好处,必须要有能进行海量数据运算、处理、绘图的工具,笔算无法显示矩阵优势,只有靠计算机。 • 如果计算机每次只对两个数进行运算,那它的效率和计算器差不多。计算机的优势只有在数据批处理中才能显示。 • 会矩阵不会计算机,是瘸子;会计算机不会矩阵,也是瘸子,要把两者的优势结合起来,才算真正进入了科学计算的殿堂。线性代数能完成这一点,对大学生,对现代化,将是功德无量!
我国教材的三个弱点 1.不注意从几何图形引入线性代数的概念,不用图说明问题。 2.不使用现代化计算工具,使得解题的范围无法扩大。 3.不联系应用实际,不了解科学和工业现代化对线性代数的需求。不能激发学生学习的热情。 国内的线性代数改革,多侧重于课程内部概念的讲法,但缺少两点:一是不注意与应用、与后续课等外部的关系的改革,二是不注意引进新技术,没有用现代化的计算和教学工具。这正是我们常讲的引领科技发展的两个动力:“需求牵引”和“技术推动”。少了这两点,创新的新思想、新课题就没法诞生。
机算和手算解题范围的对比 • 可以用下图表示数学软件对线性代数的作用。白色部分为手工能解的区,黑色区是手工不能解的区域,灰色区是计算太繁的区域,用了数学软件后全部都能解。不难看出,数学软件可以使线性代数较好地满足后续课和未来工程计算的需要。
大纲改革后的解题指标 1.解6元以上的实数线性代数方程组(力学); 2.解3元以上的复数线性代数方程组(电路); 3.会进行3阶以上的信号流图传递函数计算,即学会做文字变量的求逆运算;(信号与系统) 4.进行6阶3元以上超定方程组的求解; • 这是指教材中控制的例题和习题的深度,我们觉得,线性代数达到这个水平,与后续课就可以实现无缝衔接了。 • 实际上,只要学会使用计算机编程以后,阶数是没有上限的。
补丁书《线性代数实践…》 • 补充的内容为: • 1.后续课和工程中的应用实例; • 2.线性代数中所有概念的几何形象,甚至动画; • 3.解各种线性代数问题的MATLAB程序; • 4.适合计算机算的习题。另外就是MATLAB语言入门。它的宗旨是实现下面三句口号: • 线性代数抽象吗?看了本书后,你会知道它的概念都基于空间形象。 • 线性代数冗繁吗?学了本书后,你会懂得它的计算全藉助简明程序。 • 线性代数枯燥吗?读了本书后,你会发现它的应用极其广泛又精彩。
美国的做法 • 1990年开始,先组成了线性代数课程研究组(Linear Algebra Curriculum Study Group-LACSG)。8月,他们和工程界的代表,共同提出了几条建议,简称为LACSG Recommendations:要点是:(i),线性代数课程要面向应用,满足广大的非数学专业学生的需要;(ii),它应该是面向矩阵的; (iii),它应该是根据学生的水平和需要来组织的;(iv),它应该利用最新的计算技术;(v),对数学专业要另设课程提高其抽象性。 • 1992年NSF又资助了一个ATLAST计划,ATLAST是 Augment the Teaching of Linear Algebra using Software Tools (用软件工具增强线性代数教学)的缩写。该计划在1992 到 1997 六个暑期组织了许多学习班。使大批教师接受了科学计算语言的培训。从而在全国推动了线性代数与计算机的结合。
我校的改革过程(2005~2008) • 2005年5月~8月写出了《线性代数实践与MATLAB入门》, • 2005年9月在学校的支持下办了40余人的线性代数教师培训班,以稿为教材,讲8节课。并举行座谈,听取反馈意见。 • 2006年3月~2007年底,边试点,边编教材,2007.7出版新型教材《工程线性代数(MATLAB版)》。 • 2008 年5月项目通过教指委的鉴定,得到很高评价。
教指委鉴定小组的评价 • 本项目从工程技术应用的视角,审视了线性代数课程教学内容和教学方法,将工程背景、应用实例和现代科学计算软件融入了线性代数教学,符合国内外教学改革的方向和国际潮流,有助于实现“提高教育现代化水平”的目标,在国内线性代数课程教学中属于首创。 • 课题组编写的《线性代数实践及MATLAB入门》及《工程线性代数(MATLAB版)》两本教材,较好的体现了经典理论与现代计算手段相结合,将抽象概念形象化,使一些复杂的计算问题得以实现,激发了学生学习的兴趣,培养了解决问题的能力,提高了教学质量。为后续相关课程中应用线性代数知识打下了很好的基础。 • 本课题组的改革思想和取得的改革经验具有示范意义,… • …一致认为:该项目改革理念先进,特色鲜明,具有创新性,是一项高水平的教学改革成果,具有很好的推广价值。
配套的教学资料(4) • 《工程线性代数(MATLAB)版》 1。线性方程组与矩阵 2。矩阵运算及其应用 3。行列式 4。平面和空间中的向量 5。向量组的线性相关性 6。线性变换及特征值 7。在后续课中的应用举例