《计算物理基础》的基本教学内容*
2016-03-02蒋绍周林达斌梁先庆吕候军周宇璐顾运厅广西大学物理科学与工程技术学院广西南宁530004
蒋绍周,林达斌,梁先庆,吕 静,吕候军,周宇璐,顾运厅(广西大学物理科学与工程技术学院,广西 南宁 530004)
《计算物理基础》的基本教学内容*
蒋绍周†,林达斌,梁先庆,吕 静,吕候军,周宇璐,顾运厅
(广西大学物理科学与工程技术学院,广西 南宁 530004)
《计算物理基础》是(应用) 物理学专业的基础理论课程。当前,此课程相对较新,没有统一的教学内容。本文针对目前可以收集到的国内外相关教材进行了广泛的调研,对开设于大学本科二年级下学期或三年级的《计算物理基础》的基本教学内容做出了建议。
计算物理;Matlab;数值计算;计算机模拟
1 引言
最近几十年,随着计算机技术及相关数学理论的发展,计算技术在物理学的教学和科研中被广泛的采用。计算机的引入,不但大大提升了计算的速度,而且丰富了人们的研究方法。如:通过计算机的数值演算,可以得到难于进行解析分析的方程数值解,便于预测相关现象的演化行为;通过计算机的实验模拟,人们可以预判实验的结果,以用于指导实验,节省资源;基于第一性原理的数值模拟,人们可以得到包括大系统、复杂系统在内的很多信息。鉴于计算技术的重要性,2011年版的《高等学校(应用)物理学本科指导性专业规范》[1,2](以下简称《规范》)明确指出,《计算物理基础》是物理学与应用物理这两个专业的“物理基础理论课程”以及“专业必修课程”。然而,与普通物理以及四大力学等传统的物理学课程不同,目前此课程在国内的关注和受重视程度并不高,相当一部分高校甚至没有开设这门课程。由此导致的结果是,相关的教材相对较少,而且不同教材的授课内容差别很大。本文针对目前国内可以找到的中外计算物理教材进行了调研,尝试对这门课程的基本教学内容提出一些建议。
2 内容选取的基本原则
当前,《计算物理基础》在国内还没有较为公认的讲授方式,《规范》也只列出了这门课程的知识点和基本内容(见表1的第1、2列)。不同教材的授课内容差别较大,考虑到突出重点,不可能将所有教材的授课内容都囊括到教学中。鉴于此,我们需要对相关的教材内容作部分取舍,本文是基于以下考虑对内容进行选取的:
(1)计算物理作为一门应用性很强的课程,如果只在理论的层次进行教学,学生学起来的目的性会减弱。因此,不推荐采用纯理论的讲授方式,而是结合某一种编程语言,通过程序实例来进行教学。目前可以收集到的教材中各种编程语言的教材都有,如C、Fortran、Matlab、Mathematica、Maple等。为了使学生的精力主要集中在物理问题的解决而不是程序设计上面,不推荐采用编程要求较高的C和Fortran作为教学语言;又考虑到今后大部分的物理问题主要涉及数值计算,因此选择擅长数值计算且能够进行一定符号运算的Matlab作为教学语言。
(2)为了在教学中突出重点,尽量采用短小直白的例子说明一个知识点。对于一个例子同时涉及几个知识点的,总体的代码编写工作量也不宜太大,限制在30行内。
(3)本课程一般针对大学二年级下学期或三年级的学生进行开设,不同的学校开设时间不尽相同。因此,不宜涉及高年级物理课程相关知识点,所讨论的物理问题尽量限制在普通物理所涉及的范围内。
(4)教材[3]的知识点大致符合《规范》的基本内容以及上面几点,本文即以此为基础,在其他教材中选取作为其补充的内容和知识点。
3 基本教学内容
基于上述原则,通过对教材[3-20]的调研,将所建议的《计算物理基础》这门课程的基本教学内容(见表1,第4列)以及出自的教材(见表1,第3列)归纳于表1中。下面对所选取的内容作一些简要的说明,并给出相应的教学建议:
(1)表中带“*”号的章节较深或较数学化,因为Matlab已经将这些算法中的大部分集成到相应的函数中,即使不掌握数学细节也不会对处理物理问题有影响。但若对这些内容有一定的了解,会对物理问题的处理有帮助。另外,在实际教学过程中发现,有相当一部分学生会比较关心这些细节处理的问题,所以建议在教学过程中包含这部分内容。但只作简略的介绍即可,有兴趣的学生课外可自学及自由讨论。带“†”号的内容或例子原教材没有现成的程序代码,在实际教学过程中需要另外编写。但这里选取例子的实现代码都比较短,教学中使用的讲解时间不长,便于学生接受。教材[3]出现的知识点一般不再列出,有几处知识点有重复,是因为不同的教材侧重点或者讲法不太一样,相互借鉴会大有裨益。
表1 建议的基本教学内容
(2)教材[3]中虽然包含了一定数量的物理例子,但是在实际教学过程中学生反映物理实例太少,所以表1中包含了大量的物理实例。教材[3]中包含的相关物理例子散落于各章节,没有在表1的第3点中单独列出。这里对第3点列出的几个例子做些说明:前三个例子是在平方反比引力和斥力下物体的运动,不同教材的侧重点不一样。有的侧重于数值微积分、有的侧重于常微分方程的数值解法、有的侧重于从物理问题构建可以数值解的方程等,可以将这些例子放到相应的章节进行教学。因为文献[12]给出的例子很多,第四点没有列出具体的名称。考虑到光学的例子相对缺乏,建议采用其中涉及光的折射的几个例子进行教学。文献[12]中的代码是用Mathematica编写的,并给出了答案。实际教学中也可以将部分例子作为作业给学生练习,将其转换成Matlab的代码。另外,考虑到实际教学情况,没有引入《规范》中提到的需要物理知识较深的“量子多体问题,统计物理和复杂系统问题”。
(3)对于《规范》中提到的“数值计算概念性方案”,表1中主要选取了大部分教材都涉及的“蒙特卡罗方法”。这主要是考虑到这个方法相对比较简单,学生刚学过《概率论》,理解起来会相对容易一些。另外蒙特卡罗方法还比较适合于物理模拟和图像展示(如选取的普丰投针和布朗运动的例子),可以激发学生的学习兴趣。这里选取的另外一种计算方案是“遗传算法”。这是考虑到Matlab有现成的工具箱可以使用,对有兴趣参加数学建模竞赛的学生会有帮助。
(4)除了表1中所列的教材之外,其余能收集到的教材也做了调研,但是由于各种原因没有采用。教材[14]包含了很多理论力学的例子,部分例子已经在教材[3]中出现,其他例子有的太长,有的对正在学理论力学的学生来说过深,因此没有采用作为教材内容,但可推荐给学生课后学习之用;教材[15]过于数学化,侧重数学公式的推导,且用C语言作为编程语言;教材[16]起点较高,广泛涉及量子力学和统计力学等较深课程的知识;教材[17]涉及的数学知识较多,而物理实例少,可做理论书籍查阅;教材[18]内容涉及较多、较散、较难,只有笼统的算法介绍,缺少实例代码,可作为字典,以用于查阅相关专题的知识点使用;教材[19]为实验配套书籍,需结合相关实验,但是里面包含的实验数据处理方法可推荐学生在实验课上查阅;教材[20]也涉及过多的数学知识,缺少相应代码。整体来说,现阶段国内的教材相对起点低,适合本科生的学习;而引入的国外的教材一般是专著或者研究生教材,适合于研究生学习或作为科研使用,不太适合本科教学。
(5)前面涉及的内容基本都在数值计算方面,但符号运算对于(应用)物理学专业的学生同样重要。Matlab的MuPAD工具箱对符号运算有很好的支持,使用起来也很直观方便,但是目前没有找到相关的介绍教材或书籍。推荐在教学过程中结合Matlab的系统帮助制定相应的教学内容,对微积分和线性代数的基本符号运算做一个稍微系统的介绍。
4 小结
通过对当前国内可以找到的计算物理教材的调研,以及最近几年的教学总结和学生的反馈,本文对《计算物理基础》这门课程的基本教学内容给出了建议(见表1),并对一些相关的教学事项作了说明。这只是《计算物理基础》这门课程需要掌握的基本的内容,建议在实际教学过程中还涉及一些更高层次的内容,拓宽学生的知识面和计算能力。
[1] 教育部高等学校物理学与天文学教学指导委员会, 物理学类专业教学指导分委员会. 高等学校物理学本科指导性专业规范[J]. 物理与工程, 2011, 21(4): 3-26.
[2] 教育部高等学校物理学与天文学教学指导委员会, 物理学类专业教学指导分委员会. 高等学校应用物理学本科指导性专业规范[J]. 物理与工程, 2011, 21(4): 27-51.
[3] 彭芳麟. 计算物理基础[M]. 北京:高等教育出版社, 2010.
[4] 门云阁. MATLAB物理计算与可视化[M]. 北京:清华大学出版社, 2013.
[5] 彭芳麟. 数学物理方程的MATLAB解法与可视化[M]. 北京:清华大学出版社, 2004.
[6] 符五久,刘义保. 计算物理学[M]. 北京:中国原子能出版社, 2012.
[7] 郭立新,李江挺,韩旭彪. 计算物理学[M]. 西安:西安电子科技大学出版社, 2009.
[8] 顾昌鑫,朱允伦,丁培柱. 计算物理学[M]. 上海:复旦大学出版社, 2010.
[9] Giordano J G, Nakanishi H. 计算物理(第2版)[M]. 北京:清华大学出版社, 2007.
[10] 李立本. 计算物理学[M]. 北京:原子能出版社, 2009.
[11] 陈锺贤. 计算物理学[M]. 哈尔滨:哈尔滨工业大学出版社, 2003.
[12] 董键. Mathematica与大学物理计算(第二版)[M]. 北京:清华大学出版社, 2010.
[13] 马文淦. 计算物理学[M]. 北京:科学出版社, 2013.
[14] 彭芳麟,管靖,胡静,卢圣治. 理论力学计算机模拟[M]. 北京:清华大学出版社, 2002.
[15] 庞涛. 计算物理学导论(第2版)[M]. 北京:世界图书出版公司, 2011.
[16] Thijssen J M. 计算物理学(第2版)[M]. 北京:世界图书出版公司, 2011.
[17] 张海燕. 计算物理简明教程[M]. 上海:上海交通大学出版社, 2010.
[18] Hoffmann K H, Schreiber M. 计算物理学[M]. 北京:科学出版社, 2001.
[19] 陈奋策. Matlab在物理实验中的应用[M]. 厦门:厦门大学出版社, 2009.
[20] Wong S S M. 物理学和工程学中的计算方法[M]. 北京:世界图书出版公司, 2000.
TP3-4
A
1003-7551(2016)01-0046-03
2016-01-05
基金项目:教育部物理类专业教指委高等学校计算物理课程教学研究项目(JZW-14-JW-02);广西高等教育教学改革工程项目(2013JGZ100)
† 通讯作者:jsz@gxu.edu.cn