当前位置:首页  >  毕业论文

MATLAB在大学物理中的应用

时间:2020-08-06来源:毕业论文

摘要 目前,科学计算在科学技术发展中所起的作用越来越明显,通过计算机进 行科学计算来解决实际问题的能力日益成为广大理工科学生在今后的工作或科 研中所必须拥有的能力,而我国的本科教育在这方面还存在缺陷。本文提出将 科学计算内容逐渐引入到理工科大学物理的教学中,在学生的基础课阶段就开 始培养这方面的能力,以使其在后续课程的学习中能得到锻炼和提高。同时, 大学物理的教学过程本身也需要加入科学计算的内容来配合其不断扩展的教学 内容,并激发学生学习物理知识的兴趣。而且,由于科学计算具有成本低,上 手快,操作性强等特点,可以广泛应用于大学物理探究性教学过程,这在培养 学生科学观念、探索精神和创新精神、科学思维能力和智力等方面都有着重要 的实际意义。 论文的主要内容包括以下几个方面: 1) 在了解理工科各专业常用的数值计算方法的前提下,选择合适的内容通 a MATLAB引入到大学物理的教学中,并讨论在教学内容上和教学过程中应注 意的问题。 2) 在MATLAB环境下编写通过科学计算解决物理问题的实例。实例中要体 现:提出问题一理论分析一科学建模一编程运算"评价检验的科学研究过程, 培养学生科学探究的能力和科研中应有的基本素质。 3) 分析当前在教学内容实施上存在的主要问题,并讨论如何在现有的环境 下将MATLAB引入到大学物理的教学中,从而提高学生通过科学计算处理实际 问题的能力。
科学计算,MATLAB,大学物理

目录

摘要 I

Abstract  II

第一章绪论 1

1.1科学计算能力的重要性 1

1.2国内本科教学在相关能力培养上存在的问题 2

1.3理工科大学物理课程的特点 2

1.4物理学与科学计算的关系 4

1.5论文工作的目标与意义 6

1.6 参考文献 7

第二章 MATLAB语言及教学内容概述 9

2.1 为什么选择MATLAB 9

2.2 MATLAB应用于大学物理的主要内容 11

2.3 MATLAB应用于大学物理的原则 17

2.4参考文献 19

第三章MATLAB应用于大学物理的实践与分析 21

3.1 实践的途径与方法 21

3.2实践教学内容的结构与特点 24

3.3目前存在的主要问题 24

3.4 需要采取的措施 26

3.5参考文献 28

第四章 MATLAB应用于大学物理教学案例 29

4.1案例一:天体轨道运动的模拟 29

4.2案例二:气体扩散的计算机模拟 38

4.3 参考文献 46

致谢 47


第一章绪论

随着信息科技的发展,计算机已成为设计规划、生产制造和科学研究等理工科各个领 域不可缺少的重要工具,通过计算机进行科学计算与模拟也开始成为从事上述领域工作的 人员所必需具备的能力。然而,国内理工科专业的本科生在这方面的能力上还比较欠缺, 与发达国家相比有着一定的差距。本章在指出科学计算能力对理工科学生的重要性之后, 结合理工科大学物理课程的特点、数值计算与物理学的相互关系,提出通过MATLAB 件将科学计算与模拟融入理工科大学物理的教学过程,目的在于提高学生善于运用计算机 解决实际问题能力,同时激发学生学习物理的兴趣,提高大学物理的教学质量。

1.1科学计算能力的重要性

随着计算量的增加和复杂性的提高,人类的计算工具也在不断的发展,从最初的石子、 树枝、刻刀、算筹,到后来的纸笔、算盘、手摇计算器,以及现在电子计算器和计算机的 普及。而这些计算工具的发展又促进了人类计算水平的不断提高。其中最引人注目的是计 算机的出现,它的出现彻底的改变了人类以往的计算模式,使人类的计算能力指数上升, 而计算本身也逐渐成为人类科学研究的一个方向。

使用计算机通过计算方法或数值模拟的手段去解决科学或工程中的关键问题,简称为 科学计算。⑴随着计算机的广泛使用与科学技术的迅速发展,使用计算机进行科学计算已 成为科学研究、工程设计中越来越不可缺少的一个环节,人们使用计算机来解决那些困难 性和复杂性很难用解析方程和人类的脑力去完成的问题。

自理论分析与科学实验之后,科学计算已成为人类认识世界的重要手段。它融和了理 论分析和科学实验的特点,广泛被用在科学研究,工程与生产领域,并取得了丰硕的成果。 最近半个世纪科学研究的实践使人们越来越清楚的认识到,当代科学研究方法应该由实 验、科学计算及理论三大环节组成。

随着我国高等教育大众化的逐步实现,本科教育对于相当一部分学生来说都不再是最 终教育,而成为更高一级教育的准备。因此,学生在大学里不但应该学习很多知识,而且 应该掌握各种科学的方法,以获得比中学更高层次的发展。这些能力包括获取新知识的能 力,科学概括和分析计算能力,实际动手能力以及形象表达自己思维的能力。

目前,许多高校对低年级的理工科学生开设了C、Java、BASIC等计算机语言和程序 设计的课程,其目的就是在于提高学生通过科学计算来解决实际问题的能力。然而,在后 面课程的学习中,当学生在解题或处理数据时,基本上还是用计算器来完成。⑵其效率极 低,不仅浪费了大量宝贵的学习时间,而且使学生在建模思维的创新上受到很大的限制。 其原因主要是由于在后续课程中缺乏对学生运用科学计算处理实际问题的系统培养。

1.2国内木科教学在相关能力培养上存在的问题

对学生实际运用科学计算来分析研究问题的能力培养不够,有的学生直到毕业时也 不能使用科研论文中常用的科学计算方法进行数值模拟和对数据的分析处理。

数学软件如MATLAB, MATHEMATIC, MAPLE, MathCAD 是高效快捷的计算工具, 已经在科学研究和工程技术的各个领域广泛应用,但在国内在教学中重视不够,许多学生 甚至教师不仅不会用数学软件,甚至不知道有哪些数学软件可用。

在物理学教学中一直保持纯理论的公式推导,而不是理论分析与数值计算相结合的教 学模式。学生只能通过抽象的逻辑分析去思考复杂的物理内容,而缺乏更形象具体的手段 去研究问题,不少学生因此丧失了学习物理的兴趣,也严重制约了我国基础物理教学水平 的进一步的提咼。

在计算机语言的教学中,主要以C语言和FORTRAN为主,难度较大,大多数本科生 在学习以后还不能真正应用,只能是纸上谈兵。少数院系虽然比较重视对学生科学计算能 力的培养,但相关的课程往往要在高年级时才开设,学生学的计算机语言在本科生阶段的 课程学习中基本用不上。

第一章绪论

随着信息科技的发展,计算机已成为设计规划、生产制造和科学研究等理工科各个领 域不可缺少的重要工具,通过计算机进行科学计算与模拟也开始成为从事上述领域工作的 人员所必需具备的能力。然而,国内理工科专业的本科生在这方面的能力上还比较欠缺, 与发达国家相比有着一定的差距。本章在指出科学计算能力对理工科学生的重要性之后, 结合理工科大学物理课程的特点、数值计算与物理学的相互关系,提出通过MATLAB 件将科学计算与模拟融入理工科大学物理的教学过程,目的在于提高学生善于运用计算机 解决实际问题能力,同时激发学生学习物理的兴趣,提高大学物理的教学质量。

1.1科学计算能力的重要性

随着计算量的增加和复杂性的提高,人类的计算工具也在不断的发展,从最初的石子、 树枝、刻刀、算筹,到后来的纸笔、算盘、手摇计算器,以及现在电子计算器和计算机的 普及。而这些计算工具的发展又促进了人类计算水平的不断提高。其中最引人注目的是计 算机的出现,它的出现彻底的改变了人类以往的计算模式,使人类的计算能力指数上升, 而计算本身也逐渐成为人类科学研究的一个方向。

使用计算机通过计算方法或数值模拟的手段去解决科学或工程中的关键问题,简称为 科学计算。⑴随着计算机的广泛使用与科学技术的迅速发展,使用计算机进行科学计算已 成为科学研究、工程设计中越来越不可缺少的一个环节,人们使用计算机来解决那些困难 性和复杂性很难用解析方程和人类的脑力去完成的问题。

自理论分析与科学实验之后,科学计算已成为人类认识世界的重要手段。它融和了理 论分析和科学实验的特点,广泛被用在科学研究,工程与生产领域,并取得了丰硕的成果。 最近半个世纪科学研究的实践使人们越来越清楚的认识到,当代科学研究方法应该由实 验、科学计算及理论三大环节组成。

随着我国高等教育大众化的逐步实现,本科教育对于相当一部分学生来说都不再是最 终教育,而成为更高一级教育的准备。因此,学生在大学里不但应该学习很多知识,而且 应该掌握各种科学的方法,以获得比中学更高层次的发展。这些能力包括获取新知识的能 力,科学概括和分析计算能力,实际动手能力以及形象表达自己思维的能力。

目前,许多高校对低年级的理工科学生开设了C、Java、BASIC等计算机语言和程序 设计的课程,其目的就是在于提高学生通过科学计算来解决实际问题的能力。然而,在后 面课程的学习中,当学生在解题或处理数据时,基本上还是用计算器来完成。⑵其效率极 低,不仅浪费了大量宝贵的学习时间,而且使学生在建模思维的创新上受到很大的限制。 其原因主要是由于在后续课程中缺乏对学生运用科学计算处理实际问题的系统培养。

1.2国内木科教学在相关能力培养上存在的问题

对学生实际运用科学计算来分析研究问题的能力培养不够,有的学生直到毕业时也 不能使用科研论文中常用的科学计算方法进行数值模拟和对数据的分析处理。

数学软件如MATLAB, MATHEMATIC, MAPLE, MathCAD 是高效快捷的计算工具, 已经在科学研究和工程技术的各个领域广泛应用,但在国内在教学中重视不够,许多学生 甚至教师不仅不会用数学软件,甚至不知道有哪些数学软件可用。

在物理学教学中一直保持纯理论的公式推导,而不是理论分析与数值计算相结合的教 学模式。学生只能通过抽象的逻辑分析去思考复杂的物理内容,而缺乏更形象具体的手段 去研究问题,不少学生因此丧失了学习物理的兴趣,也严重制约了我国基础物理教学水平 的进一步的提咼。

在计算机语言的教学中,主要以C语言和FORTRAN为主,难度较大,大多数本科生 在学习以后还不能真正应用,只能是纸上谈兵。少数院系虽然比较重视对学生科学计算能 力的培养,但相关的课程往往要在高年级时才开设,学生学的计算机语言在本科生阶段的 课程学习中基本用不上。

1.3理工科大学物理课程的特点

这一节内容将结合理工科大学物理的相关特点来阐述为什么要将大学物理教学与培 养学生科学计算能力相结合。

第一,大学物理是理工科大学面向全体学生的一门基础课。其教学内容有力学、热学、 电磁学、光学和近代物理等关于自然界许许多多的现象与规律。具体的教学目标包括让学 生理解基本的物理概念和常用的物理规律去解释现实生活中的一些物理现象,学会用数学 的语言描述现实世界和定量解决实际问题的方法。因此,与数学和计算机等其他基础课程 相比,大学物理是最具有应用性,并和现实世界联系最紧密的一门课程。如果我们希望让 较多的理工科学生都能养成用计算机科学计算来解决实际问题的习惯,以便在后续课程中 得到进一步的应用和拓展来不断提高这方面的能力,那么在国内现有的条件下就必须和大 学的基础课相结合进行,而最适合的课程之一就是物理。

而且,在大学物理课程中加入科学计算也是顺理成章的。传统的物理学在解决实际问 题的时候,总是先根据已有的物理规律来对现实问题进行分析、抽象和建模从而得到描述 该问题的方程,然后通过所学的数学知识来得到方程解的表达式,最后把和实际问题相对 应的数值代入计算得到结果。现在我们要做的只是让学生在处理一些超出他们数学知识以 外的问题时,别忘了使用他们所学的另一门关于计算机的基础课而已。

第二,大学物理教育是培养学生科学素质最有效的手段,它在培养学生科学观念、探 索精神和创新精神、科学思维能力和智力、科学的方法、科学精神和科学作风等方面别无 替代。而这些都必须建立在学生对大学物理这门课程有足够重视和兴趣的基础上。为此, 人们不断地对大学物理教材、教学内容进行调整和更新,努力促进大学物理教学内容的现 代化,同时还积极利用计算机多媒体等现代教学手段。在这些方面的改革提高了大学物理 的教学效果,主要表现在有助于学生理解物理概念,增加学生对近代物理知识以及高新技 术内容的了解。

但是在学生对物理概念理解清晰,知识内容不断扩充和更新的同时,处理问题的思想 和方法却没有得到足够的发展。教师在授课过程中较多的使用传统多媒体技术传递文本、 图形、动画等内容来展示现实世界中的物理现象,而学生课后一般是通过传统的数学方法 解决一些比较理想化的物理习题。这一矛盾往往会减小学生学习物理的兴趣,更束缚他们 创造和探索的精神。当然,对于物理的初学者来说,要解决所有的物理问题是不实际的, 但是当学生接触到的物理问题范围远远大于他们所能解决的时,大学物理对于他们的印象 也许真会成为“科普讲坛”。⑶

演示实验在解决这方面的问题上起到了很重要的作用,它帮助学生把很多物理现象和 物理知识联系了起来,活跃了课堂的气氛,增加了学生的学习兴趣。演示实验有它自身的 规律、作用和效果,就是在微机技术、显示技术迅速发展和日趋完善的今天,它们也不可 能替代演示实验独特的作用和效果,这就像仿真实验不可能取代物理实验一样。⑷但是演 示实验不可能把所有的物理现象都演示出来,特别是对于近代物理的内容往往无能为力。 而且演示实验一般只能定性的解决问题,显然大学物理的教学也不能只满足于定性的解决 问题。我们当然希望物理演示实验的发展能跟上大学物理内容更新与扩展的速度,实验的 效果与质量也不断的提高,就像物理学家总希望能通过实验来很好的验证一些新的理论, 但这即使在科研上也很难实现,更何况演示实验还有其特殊的要求。⑷

在这种情况下,我们希望通过引入科学计算的方法来把学生能解决的问题增加一点, 离实际更接近一些。通过计算机的科学计算可以避免很多繁琐和高深的数学计算与推导, 计算结果还能通过图像很直观的展示,与传统的多媒体课件相比,让学生通过计算机科学 计算来模拟物理实验,使学生由观看变成参与,由被动接受变成主动研究,从而增加学生 的学习兴趣,培养他们积极探索与创新的精神。而这种科学计算的方法在目前物理学的发 展上面也起了很重要的作用,并开始和实验一样成为物理学发展的一个部分,这将是我们 在下一节要讨论的问题。

所以,从这个角度来看,把科学计算这一新的解题方法引入到大学物理教学中对于大 学物理教学本身也有很好的促进作用。

1.4物理学与科学计算的关系

这节内容将从物理学与科学计算的关系来阐述两者在发展过程中是相辅相成、紧密结 合的,计算物理已逐渐成为物理学的一大分支,所以结合大学物理来介绍基本的科学计算 方法是必要的,也是合适的。

传统的物理科学分为理论物理科学与实验物理科学两大分支。理论物理科学是从一系 列的基本原理出发,经过数学的描述,并求出显式的解析解,进一步利用这些解析解的结 果与实验和观测结果对比,用以解释已知的自然现象,并预测未来。实验物理科学则以实 验和观测为手段来发现新的物理现象,为理论物理科学提供新的理论规律的素材,并检验 理论物理科学的推论的正确程度及使用范围等等。

然而,客观的自然现象是极其复杂的。在计算机没有发明之前,人们不得不采取各种 方式来回避过于庞大的计算问题,而大量的关键问题,又非得进行庞大的计算不可。例如, 一旦我们透彻地解决了线性问题之后,接踵而来的就是远比线性现象更为广泛的非线性现 象,对于非线性问题,我们已经掌握的解析方法极其贫乏。而除了非线性问题之外,物理 学乃至整个自然科学看待世界的方式都是原子式的,即我们总是可以把一个现象理解为它 的组成成分的相互作用的结果,于是我们就有了分子,原子,电子等基本的科学观念,这 种做法一直都是充满胜利的,然而这种胜利也是伴随着沉重代价的,即当我们重新面对复 杂现象时,不得不从它的组成成分开始考虑,显然这种做法给我们带来了繁重的计算任务, 因为迄今为止,人类对于三体问题的精确解析求解已经是有点一筹莫展了,更何况常见的 那些动辄包含了成千上万成员的系统呢?因此在很大一部分情况下,我们唯一的选择,就 是直接的计算。

在二次大战期间,美国在研制核武器的过程中就出现了这样的问题。一方面,核武器 要消耗大量的核材料,不能做多次试验。另一方面,核反应所牵涉的物理过程非常复杂, 用传统的数学物理方法是不能解那一大套的方程组的。于是,承担这一任务的洛斯阿拉莫 斯实验室的科学家们开始动用数字计算机。四十年代初期美国数字计算机的水平,以哈佛 大学的Mark-I为例,每秒只能做三次加法运算,这是一台继电器式的计算机。但是,和 人的手算相比较,它不仅速度快,而且还可以整天整月的持续进行工作。这台从今天的眼 光来看水平极低的计算机,却在美国原子弹研究的过程中起了重要作用,以至在后来公开 发表的洛斯阿拉莫斯实验室的历史中也为它写下了单独的一页。

当时在洛斯阿拉莫斯实验室工作的科学家冯.诺伊曼敏锐的意识到了计算机的极大发 展前途,在原子弹研制成功之后,开始专门从事计算机原理和试制的工作。他奠定了现代 电子计算机的理论基础,并指导制造出第一代电子管式的电子计算机,然后又将这一科技 新成果直接用于支持美国氢弹研制的工作。就在电子计算机的出现,原子弹和氢弹相继研 制成功的过程中,计算物理科学作为新的物理学分支也应运而生了。

从原则上说,凡是局部瞬时的物理规律为已知,或已被作为假设,要由局部的联系组 合成大范围的联系,有瞬时的规律发展成为长期的规律,都可以利用计算机来模拟。注意 到曲线可以用折线来逼近,非线性问题也可以用大量局部瞬时的线性问题的组合来逼近, 而这些大量的局部瞬时的线性问题又可以用计算机来模拟。因此,对于传统研究方法望而 生畏的非线性问题,计算物理则能得心应手,应付自如。“非线性”和“线性”,“变系数” 和“常系数”这些传统概念间的不可逾越性,在现代高速计算机的面前消失了。⑸

近几十年来,随着计算机的飞速发展和研究问题的日益深入复杂,计算机模拟实验的 应用范围越来越广泛,规模也越来越大,计算机模拟实验在物理研究中也越来越重要。尤 其在非线性物理、格点规范理论、统计物理、凝聚态物理等领域出现了一批以做计算机模 拟为主的物理学家,物理方面的论文约有30%用到了计算机模拟,出版了大量有关计算机 模拟在物理学中应用的专著,还出现了计算物理中心这样的研究机构。

就像人们形象的把计算物理看成是“纸上的”实验物理和用现代高速计算机武装起来 的理论物理那样,理论物理学、实验物理学和计算物理学三者是相辅相成、紧密结合的, 他们的关系可用图1-1表示。

物理学的发展推动了计算机和科学计算方法的更新,而通过计算机科学计算又促进了 物理学的进一步发展,两者紧密结合使计算物理逐渐成为物理学的一大分支。因此,在理 工科的大学物理教学中加入一些科学计算的内容是物理教学内容更新与发展的必然要求, 同时也为学生在处理物理问题时铺设了除理论与实验以外的又一条道路。

 

1-1物理学三大分支关系示意图

 

1.5论文工作的目标与意义

综上所述,通过计算机进行科学计算来解决实际问题的能力是广大理工科学生在今后 的工作或科研中所必须的,而我国的本科教育在这方面还存在不少问题。本文提出将科学 计算内容逐渐引入到理工科大学物理的教学中,在学生的基础课阶段就开始培养这方面的 能力,以使其在后续课程的学习中能得到锻炼和提高。同时,大学物理的教学过程本身也 需要加入科学计算的内容来配合其不断扩展的教学内容,并激发学生学习物理知识的兴 趣。而且,由于科学计算具有成本低,上手快,操作性强等特点,可以广泛应用于大学 物理探究性教学过程,这在培养学生科学观念、探索精神和创新精神、科学思维能力和智 力等方面都有着重要的实际意义。

论文工作的具体目标包括以下几个方面:

1) 了解物理学中常用的数值计算方法,选择合适的内容通过MATLAB语言渗透到大 学物理的教学内容中。内容的选择上要考虑全面性和可行性。

2) 编写一些以专题形式出现的相关教案,其中要体现科学性、趣味性、实践性等教学 原则以及探究性的教学方式。

3) 数学软件在物理中的应用日趋广泛,如何在基础物理课程的教学中反映出来,是值 得人们思考的问题。文章要对如何在现阶段进行相关内容的教学进行探讨。

1.6参考文献

[1] 数值分析,孙志忠 袁慰平等编,东南大学出版社,2002. 2,第2版,P1

[2] MATLAB及其在理工课程中的应用指南,陈怀琛,西安电子科技大学出版社,2004年

11月,第二版

[3] 拓展物理教学途径 适应国防建设需要,陈心中 徐润君 程建中,物理与工程,Vol. 14,

No. 6 2004

[4] 关于演示实验,潘维济,大学物理,Vol. 20 No. 10 2001

[5] 计算物理学,秦元勋编著,四川科学技术出版社,1984.7,第一版


东南大学硕士学位论文


第二章 MATLAB语言及教学内容概述

2.1为什么选择MATLAB

从20世纪80年代起,出现了一些科学计算软件。因其具有高效、可视化和推理能力等 特点,在国外的大学教育和科学研究中,正取代原有的FORTRAN和BASIC等语言。这类 软件在目前应用比较普遍的有3Ms,即MAPLE, MATHEMATICA和MATLAB,它们的功能 大同小异,又各有所长。目前在工程界流行最广的MATLAB语言占据了数学计算软件市场 的主导地位。

2.1.1 MATLAB的发展与应用

MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,它的名字 MATrix和LABoratory两词的前3个字母组合而成,是于20世纪70年代后期,由时任美国 新墨西哥大学计算机科学系主任的CleveMoler教授出于减轻学生编程负担的动机而创建 的。自1984年由美国MathWorks公司推向市场以来,经历十年的发展与竞争,现已成为国 际公认的最优秀的工程和数值应用开发环境。

MATLAB功能强大,简单易学,编程效率高,深受广大学生和科技工作者的欢迎。在 欧美各高等院校,MATLAB已经成为许多理工课程的基本教学工具,成为大学生、硕士生 以及博士生必须掌握的基本技能。在文献2]中指出,美国已有300多种有关MATLAB语言 的书籍,仅Prentice-Hall出版的将MATLAB用于各门课程的教材就超过百种,其范围包括: 微积分、矩阵代数、应用数学、物理、力学、信号与系统、电子线路、电机学、机械振动、 数值分析、有限元法、计算机图形学、自动控制和通信技术等。

在国内外各类杂志和论文集发表的含有关于MATLAB内容的文章数量也不断增多。到 目前为止,在著名的IEEE/IEE Electronic Library (IEL)数据库①上就能查到22000多篇相关 文章,并且数量逐年增加,如图2・1所示。甚至在国际著名的自然科学杂志《Nature》②上 都有相关文章400余篇。近20年来,在我国国内发表的涉及MATLAB内容的各类文章也开 始逐年增加,图2・2列出了最近在中国期刊全文数据库③中搜索到的相关文章数量及发表时 间,从中可以发现近几年来,国内的MATLAB用户数量增加也非常快。

① 该数据库提供美国电气电子工程师学会(IEEE)和英国电气工程师学会(IEE)出版的205种期刊、6500余种会议录、1480 余种标准的全文信息。

② 该周刊创建于1869年,其办刊宗旨是“将科学发现的重要结果介绍给公众…,让公众尽早知道全世界自然科学知识 的每一分支中取得的所有进展。”

③ 该数据库收录1979年至今约7400多种国内综合期刊与特色期刊全文。

 

2.1.2 MATLAB 的特点

从上一节内容可以看到MATLAB在短短的二十几年内得到了快速的发展和广泛的应 用,原因主要在于其拥有以下几个特点:⑶⑷

1) 拥有图形窗口式的操作界面和直观易懂的编程规则,数学符号和表达式贴近人们的思 维方式,使初学者很容易上手。

2) MATLAB开发初期便有专门的数值分析研究组织来保证其具有精确高效和健全标准的 内部库函数,这些函数调用格式简单,计算结果可信度高。

3) 集成了强大的数据可视化功能,可以方便迅速的用图形、图像、声音、动画等形式表 示计算结果,帮助逻辑思维。

4) 以实数或复数矩阵作为基本的数据类型,使得编程语法简洁明了。有些应用C FORTRAN需要上百条语句才能完成的计算在MATLAB环境下只需几行便可完成。而且 MATLAB还提供了与上述两种语言的应用程序接口。

5) MATLAB具有很好的可扩展性,提供了很多由从事不同领域研究的专业人士经过多年 开发的专业化工具箱,包括最优化处理、信息处理、逻辑控制、小波分析、偏微分方 程和金融分析等,而且用户还可以根据需要开发自己的工具箱。

综上所述,我们之所以选用MATLAB作为计算工具,是因为用它进行编程简单明了、 省时省力,初学者很快就能掌握编程的思路和方法,并能得到很高精度的结果。与C FORTRAN等语言相比,应用MATLAB可以让学生从繁重的编程劳动中解放出来,使他们 能更多的体会到用计算机通过科学计算解决物理问题所带来的方便和乐趣,并且有更多的 时间和精力去研究问题中所包含的物理规律。而且,对于理工科特别是工科大学生来说, MATLAB在他们今后的学习、科研和工作中会有很大的用途,在基础课阶段就让他们接触 这一工具有助于他们在今后几年的大学课程中不断应用与深化。

2.2 MATLAB应用于大学物理的主要内容

在绪论部分已经谈到,我们提出将MATLAB应用到理工科大学基础物理教学过程的目 的一方面是为了提高理工科大学生用计算机解决实际问题的能力,另一方面是希望通过科 学计算的方法拓展原有大学物理知识的应用范围。因此,在相关教学内容上也应包括两个 方面的内容,即常用计算方法的介绍和应用MATLAB解决的大学物理问题。但是,在实际 内容的安排上,我们将两者有机的结合起来,基本以大学物理的教学内容为主线,穿插介 绍相关的计算方法,从而让学生在物理问题的解决过程中顺理成章的接受各种计算方法。 2.2.1关于计算方法的介绍

在对计算方法的要求上有所选择,对于那些通用的计算方法⑸,如线性方程组的数值 解法、非线性方程的数值解法、数据的插值和拟合、数值积分和数值微分、常微分方程 的解法等,由于主要涉及到的是数学内容,在今后的相关数学课程中会详细的讲解,而且 在实际的科学计算中已经形成了非常普遍和成熟的程序包,在MATLAB中也有标准的内部 函数来完成,一般并不再需要人们去自己编写,因此对于这些方法的原理只作简单的介绍, 或者是给出一些相关的文献让有兴趣的同学自己去阅读理解,重在教会学生如何把这些方 法使用到我们解决具体问题的主程序中。

对于一些在物理和工程上常用的特殊计算方法,如分子动力学法(MD)⑹、蒙特卡罗 法(MC)⑺、模拟电荷法(CSM)⑻、表面电荷法SCM)⑼等,我们需要在学生能理解 的范围内对原理作较为详细的解释,并尽量寻找一些简单的、学生容易接受的物理模型作 为例子或习题让学生在实践中体会与理解。

首先,有的方法是伴随着计算物理的产生发展起来的,或者也可以说正是由于这些计 算方法的发展才使得计算物理逐渐成为物理学研究的一大分支,如分子动力学法和蒙特卡 罗法。而且,这些方法在前沿的物理学研究中仍在不断的应用和发展,因此,他们应该作 为物理研究的一种方法在课程中介绍给学生。虽然大学物理教学的对象绝大部分都不会从 事物理学的研究,但是,有些方法的思想是值得理工科大学非物理专业的学生去体会的, 例如蒙特卡罗技术虽然最早用于核物理的计算机模拟,但是在后来这种技术被广泛的应用 于物理学其他方向的研究中,甚至在生物、化学、电子工程、光学工程和动力工程等一些 专业也开始应用这一技术计算模拟相关问题。在学科交叉日益明显的今天,让理工科其他 专业的学生多了解一些物理学研究中的方法对他们今后在各自专业的发展有着重要的作 用。

其次,对于一些在其他专业使用较多的计算方法,如模拟电荷法和表面电荷法等,这 些方法虽然在物理研究中不常用,但是它们包含了很明显而且很简单的物理概念。例如, 模拟电荷法基于电磁场的惟一性定理,将电极表面连续分布的自由电荷或介质分界面上连 续分布的束缚电荷用一组离散化的模拟电荷予以等值替代,这样,应用叠加原理,将离散 的模拟电荷在空间所产生的场量叠加,就得到了原连续电荷所产生的空间电场分布。显然, 从本质上看,模拟电荷法就是广义的镜像法。所以在大学物理范围内介绍这种方法是比较 合适的,在避免了镜像法复杂的理论推导的情况下,让学生体会到了这一物理原理在工程 上的用途,并能解决很多比较实际的静电场数值计算问题。如图2・3是通过模拟电荷法计算 的金属球板系统的场分布,而且还能方便的计算这一系统的电容C=149.1414pF与用镜像法 通过解析方法得到的值C=149.2130pF符合的很好何。

2-3金属球板系统的电 势和电场分布。金属球的 半径为lcm,球心和平板 表面的距离为2cm o图中 的虚线表示电场线。

表面电荷法的原理更为简单,利用金属导体所带的电荷都分布于导体表面的物理原 理,并认为孤立系统电极的电势是由系统内所有表面电荷叠加产生,通过解线性方程组就 可以得到导体表面各处的电荷密度,并进而计算得到场域内各处的场量分布。图2・4是运用 表面电荷法计算得到的二极电镜的电势分布。这种方法的原理对于物理初学者来说很容易 接受,而通过计算机的帮助就能解决很多实际工程应用上的问题。需要说明的是,电子透 镜包括静电透镜和磁透镜,它们组成了电子光学系统。按透镜的形状还可分为筒形透镜和 多极透镜,在多极透镜中使用最广泛最典型的是四极透镜[⑴,这里以二极电镜为例,目的 是让学生自己动手去计算模拟使用广泛的四极电镜的相关问题,这既锻炼了学生利用计算

机解决实际问题的能力,又很好的激发了学生学习物理的兴趣。在介绍了磁场计算的方法 后还能让学生进一步去研究磁透镜的问题,从而也为以后要从事这方面工作和研究的同学 打好一定的基础。


 


 

2.2.2应用MATLAB解决的大学物理问题

由于我们的主要目的是为了培养学生应用MATLAB解决物理问题的能力,并辅助理工

科大学物理(包括物理实验)的教学,因此,我们的教学内容主要围绕理工科大学物理的 相关内容展开,并在MATLAB软件的帮 助下对问题有所拓展。

在力学部分,通过欧拉方法计算模 拟了三维球体斜抛运动的轨迹,并考虑 了球体在受到空气阻力和因自身旋转而 产生的麦格纳斯力后的运动情况,模拟 了足球中“香蕉球”的飞行轨迹。图2・5 计算了足球旋转的角速度方向不同时的 飞行轨迹。我们还通过4阶龙格■库塔方法 以太阳系中的行星为例,计算模拟了物 体在有心力场中的运动情况。通过计算分析了影响行星各种运动轨道形状的原因,并证明 了开普勒根据第谷的观察数据总结出的行星运动三定律。具体的内容可以见第四章选列的 教案。

在电磁学部分,我们在介绍用MATLAB解线性方程组的方法后,通过解稳恒电流中的 基尔霍夫方程组处理了复杂的立体电阻电路问题⑸,如图2・6。在静电场的计算中,我们主 要介绍了表面电荷法、模拟电荷法、有限差分法和蒙特卡罗法的应用,并通过比较分析了 各种方法的优缺点和适用范围。在磁场的计算中我们主要通过MATLAB计算模拟了无限长 直导线周围的磁场分布,通过磁力线的描绘,让同学形象的了解了在两根平行放置的无限 长直导线中通有同向和反向电流时的不同的磁场分布情况和受力情况,如图2・7和图2・8 Zj\ O


 


亥姆霍兹线圈轴线上的磁场分布,并和实验曲线及理论曲线作了比较,三条曲线符合的很


好,如图2・9和图2・10所示。①通过这些例题可以让学生自己动手去计算一些其他情况下的 磁场分布,例如多根直导线平行放置时的磁场分布,不同半径的多个载流线圈的磁场分布 等探究性问题,对于一些问题还可以在计算机模拟之后通过设计实验去验证。例如图2・11 和图2・12是三个载流线圈组合后产生的磁场,从图中可以看到通过适当的选择线圈的半径 和电流大小同样可以产生均匀分布的磁场。

在热学部分,主要介绍了物理学研究中常用的蒙特卡罗方法,教学生如何用计算机产 生均匀分布的随机数以及对其进行检测。最后我们用这种方法模拟了分子的扩散运动,并 计算了分子扩散过程中系统爛的变化情况,说明了不可逆过程的爛增加原理。具体的内容 可以见第四章选列的教案。


 

 

 

 

 


实验所用的仪器为HCC-2型霍尔效应测磁实验仪。


在光学部分,我们计算模拟了几何光学中球面镜对入射光线的反射,从中可以发现球 面镜对平行光线的反射其实并不汇聚到一点,只有当球面镜的宽度和曲率半径相比很小时 才出现焦点。如图2・13所示。接着我们通过时域的有限差分法2计算模拟了电磁波的传播、 叠加和反射透射现象,如图2・14和图2・15所示。


 

(b)

2-15平面电磁波遇到介质时的透射与反射现象

通过计算模拟了单色光的光栅衍 射图像,从图2・16中可以清楚的看到 缺级现象,和理论结果符合的很好。 最后通过计算模拟汞绿光的牛顿环 和氨氤激光的迈克尔孙干涉图像,形 象的表示了两者的不同之处。

在数据处理部分,介绍了应用 MATLAB对数据进行线性和非线性 的最小二乘拟合方法,并对学生在实 验室测得的具体实验数据进行拟合, 并计算相关物理量。图2・11为通过非 线性最小二乘法拟合的受迫振动的 幅频特性曲线,并计算了阻尼因子 5

2.3 MATLAB应用于大学物理的原则

教学原则是依据已发现的教学规律和一定的教育目的,对教师和学生提出的在教学过 程中必须遵守的基本要求。[⑶物理学科教育与教学,有其自身的特点,根据对物理教学规 律和教育目的的理解,提出以下教学原则,即科学性原则、实践性原则、趣味性原则和全 面性原则。在将MATLAB应用于大学物理的过程中,我们也要考虑到以上的教学原则。

科学性是指:物理教学过程中教学思想、内容、方法的正确、准确与先进。在科学性 原则上,我们要让学生明确并不是通过数值计算出来的结果就是正确的这一前提。在教学 的过程中,要时刻让学生存在怀疑的态度。对于具体的问题,我们总是先要用编写的程序 去计算存在解析解的问题,通过比较验证后再去计算我们不知道答案的问题,这也是计算 物理学研究的方法。

实践性是指:在教学过程中要让学生自己思考和动手,要将教学内容和工程技术、自 然现象结合起来。在实践性原则上,要让学生通过自己修改或编写程序去计算问题,除了 计算教师所给的练习题外,还要鼓励他们去寻找工程应用或科学研究上的实际问题。同时 还要加强数值模拟和实验的关系,这不仅包括对实验数据的计算机处理,还应包括通过对 实验的模拟和预测,进而有目的的指导学生去实验、去创造。

趣味性是指:在教学过程中要使教师乐教、学生乐学,并创造愉快的学习环境。在趣 味性原则上,要考虑到所教学的对象是物理初学者,培养他们对物理和对科学研究的兴趣 是基础教学的重要任务,通过数值计算和模拟可以解决学生很多繁琐的理论推导和数字计 算,这本身可以提高学生学习的兴趣,同时,我们还要尽量用图像和动画的方式把计算结

①所用的实验仪器为同济大学生产的B6-2型珀耳共振仪。 果展示给学生,并创造灵活、宽松、愉快的教学环境。

全面性是指:在教学内容和师生认识上要考虑周全。在全面性原则上,我们既要面向 全体学生,又要因材施教。对于不同专业的学生要有不同的要求,对于不同水平的学生也 要有不同的评价标准。在教学的内容上也要考虑全面性,教师要尽量了解各种常用的计算 方法,更要对大学物理的教学内容有全局的把握。在培养学生的能力上也要考虑全面,既 要培养学生学习物理知识和编写程序的能力,又要注重培养他们科学探究和创新的能力。


2.4参考文献

[1] 3MS FOR INSTRUCTION, PART 2: MAPLE, MATHEMATICA, AND MATLAB, Norman Chonacky and David Winch, COMPUTING IN SCIENCE & ENGINEERING JULY/AUGUST 2005

[2] MATLAB及其在理工课程中的应用指南,陈怀琛编,西安电子科技大学出版社,2004 年11月,第二版

[3] 理论力学计算机模拟,彭芳麟等,清华大学出版社,2002年2月,第一版

[4] 精通MATLAB6.5版,张志涌等,北京航空航天大学出版社,2003年3月,第一版

[5] 数值分析,孙志忠、袁慰平等编,东南大学出版社,2002.2,第2版

[6] An Introduction to Computational Physics, TaoPang, Cambridge University Press 1997, P186-212

[7] Compytational Physics, J.M.Thijssen, Cambridge University Press, First Published 1999, p271-296

[8] 工程电磁场数值计算,倪光正、杨仕友等,机械工业出版社,2004年3月,第一版,

P202-221

[9] 电磁场及电离子光学系统数值模拟,储璇雯、谢志行,浙江大学出版社,1991年9月, 第一版,pl70-224

[10] 金属球与无限大导体平板系统电容的计算与讨论,欧红叶、胡先权,渝西学院学报(自 然科学版),2004年3月,第3卷,第1期

[11] 应用电子光学新编,尹函春、张晓兵等,东南大学出版社,2005年2,第一版,p71-73

[12] 电磁波时域有限差分方法,葛德彪、闫玉波,西安电子科技大学出版社,2002年4月, 1版,pl9-31

[13] 物理课程与教学论,封小超、王力邦,科学出版社,2005年7月,第一版,p80-85


第三章MATLAB应用于大学物理的实践与分析

在国内,将大学理工课程内容与数学软件相结合的教学实践还处于起步阶段,怎样结 合我国目前的实际情况找到一种合理的实现办法是值得探讨的。本章对目前如何合理的将 MATLAB应用于大学物理教学实践的具体实现方法和相关内容进行了讨论,并对以后的 发展提出了一些建议和展望。

3.1实践的途径与方法

在前面的内容中已经讨论了提高我国理工科大学生的科学计算水平的重要性和必要 性,因此预计在今后的几年里,相关内容的教学将会成为教改的一个重要内容。但由于这 在我国本科教学中还属于一个较新的事物,还缺乏很多相关的教学经验以及政策和硬件上 的支持。下面结合目前所在学校的实际以及教学实践的情况列举了几种在大学物理教学过 程中引入MATLAB语言进行科学计算的途径。

3.1.1以公选课的方式开设MATLAB在大学物理中的应用课程

目前在国内大部分高校都对本科生开设公共选修课,其目的在于针对学生的不同兴 趣,提高其各方面的知识水平。一般开设为期一学期32〜48学时的较为系统的课程,学 生根据自己的兴趣和课程安排进行选择,期末通过考核后获得相应学分。

通过这种方式开设MATLAB在大学物理中的应用课程可以系统的介绍相关的内容, 包括力学、热学、电磁学、光学和近代物理知识。对一些数值计算方法和原理也可以作比 较详细的讲解,并能有充裕的时间介绍一些关于MATLAB语言的使用方法,使学生更加 顺利的完成对相关问题的计算。如果能把课时分为2 : 1的课堂讲解和上机实习,教师在 机房实时的解决学生遇到的问题,启发学生的解题思路,会取得更好的效果。由于大学物 理是理工科大学生的一门基础课,教学的对象很广,不存在专业的限制,再加上期末会有 相应的考核,因此教学效果会有所保障。

笔者通过教学实践的途径在学校开设了 MATLAB在大学物理中应用32学时的公选 课。课程前8个学时用来介绍MATLAB的基本功能和用法,后24个学以专题的形式介 绍在MATLAB平台上运用各种计算方法处理力学、热学、电磁学、光学以及实验数据处 理等几方面的内容,取得了良好的效果。有一些同学的课程作业已被放入所编的教案,有 的将作为例题供以后的教学所用。有一些学生通过这次课程的学习,开始对应用MATLAB 来处理自己学习上的问题产生了浓厚的兴趣,在后面的实验课程中开始主动用计算机来处 理实验数据,有的甚至想到通过用数值模拟的结果和实验结果进行比较的途径来检验模拟 计算结果和实验结果的准确性,体现了研究型的学习方式。还有的学生在后来的学习中通 过申请学校的 SRTP 项目(Students Research Training Program)继续钻研关于 MATLAB 应用方面的问题。这次课程的缺陷在于没有相应的上机实习和指导的环节,虽然在讲课的 时候穿插让学生自己思考讨论的环节,有时还让学生上讲台给大家演示自己所编的程序运 行结果,但大多数学生在上机时的问题不能及时解决。而且因学生较多而无法很好的关注 到每一个学生的学习情况,只能被动的接受学生的提问,而没有时间去主动找学生进行交 流讨论,影响了一些学生的学习效果。

3.1.2以专题的形式嵌入大学物理教学

在大学物理教学过程中,一些教学经验较为丰富的高校会在课时允许的范围内开设 一些介绍书本以外物理知识的专题课,或将原有传统的习题课转变为效果更好的小班讨论 ⑴,限于学时限制,有的讨论课还会延伸到课外,其目的在于拓展学生的知识范围,提 高学生学习的主动性与积极性。

MATLAB与大学物理的结合也可以加入到专题课和讨论课的范围内。前面已经谈到 计算物理的发展非常迅速,已逐渐成为物理学研究的一大分支,因此在大学物理的专题课 中介绍一下相关内容是合适的。而且,与其他近代物理等专题相比,数值计算和模拟方面 的内容更容易让学生主动的参与进来,从而改变传统专题课接近科普讲座的局面。教师可 以结合自己教学的进度和学生的具体情况,在一个阶段内容结束的时候,选择相关合理的 内容结合MATLAB的数值模拟演示来给学生介绍如何用数值的方法解决物理学上的问 题,而这些问题往往无法或很难用解析的方法处理。还可以把一些对于这方面内容感兴趣 的同学集中起来在小班讨论课上对某些问题作更深入的探索,并鼓励其创新。由于这种方 式和大学物理教学同步进行,一些通过图像表示的数值模拟结果能作为演示实验的补充来 加强学生对物理概念的理解,同时还能解决很多物理原理简单却无法用传统的解析方式解 决的问题,所以对于大学物理本身内容的教学也能起到很好的辅助作用。反过来,学生在 学习大学物理内容出现一些问题时,也能想到试着用所学的MATLAB软件从数值的途径 去解决,从而促进他对数值方法的学习。

限于学时限制,也许不可能在每部分内容结束后都进行一次对相关问题进行数值模拟 的专题,但是,由于大学物理课往往按专业分班,因此可以结合班上学生的专业情况来开 设专题。例如,对于机械、动力等专业学生可以在力学和热学部分开设,电类专业的则可 在电磁学部分开设。那么,像这样直接以专题的形式介绍MATLAB在一些具体问题上的
应用,而不事先比较详细的介绍MATLAB的具体用法,学生是否能接受呢?诚然,这样 做会使一些学生在开始的时候遇到困难,但是这种困难不会很大,也不会持续太久。因为 目前理工科大学的学生在一进高校就会学习一门计算机高级语言,包括C++, VC++, Java 或是FORTRAN,有些教育水平较高地区的学生甚至在中学时就接触过以上内容。而这些 计算机语言的规则和MATLAB语言在很多地方都是相似的,MATLAB语言与他们相比 在规则上更宽松,在界面上更友善,因此学生能在很短的时间内了解MATLAB语言的基 本用法,并开始用它来处理遇到的问题。

3.1.3建设计算物理实验室

随着我国对基础教学重视程度的提高和资金投入的增加,国内很多大学的基础物理实 验室都得到了很大的发展。不少实验室引进了计算机来辅助实验教学,有的实验室还建设 了机房,以供学生预习实验并查找相关资料。

在这种条件下,我们可以把这些计算机充分的利用起来,把学生机房改成计算物理实 验室,更好的利用现有的资源。首先,可以让学生实验完后在计算机上通过数学软件处理 数据,从而使计算机贯穿在实验前预习, 机高效准确的处理实验数据,并通过图 线直观的表现出来,这一过程无论在目 前的科研还是生产上都是非常普遍的。 因此,在让学生手工处理一些实验的数 据并掌握相关处理原理之后,可以允许 并鼓励学生用计算机来处理他们实验 得到的数据。第二,在计算物理实验室 开设一些用数学软件处理实验数据的 讲座,学生在课上可以了解计算机处理 数据的方法和原理,为接下去的实验做 好准备。第三,一些课题性实验需要首 先进行计算机模拟,然后有目的的进行实验并验证模拟结果,这可以让学生按照实验的分 组在计算物理实验室内进行相关的模拟计算,教师也可以进行一些辅导。在大学物理专题 课后的一些小班讨论涉及到数值模拟问题的同学也可以分组在这类实验室进行。教师还可 以设计一些包括理论建模——程序设计——实验验证等一系列过程在内的科学探究性案 例作为选修或课题实验让学生选择,从而使学生通过分组在这类实验室和物理实验室进行 类似科学研究的活动,培养其科学探究和创新的能力。机房的设计可以如图3・1所示,通 过改变原有排排坐的布局,让学生在和谐的自然分组环境下形成组内团队配合、相互交流 的研究型学习气氛。

3.2实践教学内容的结构与特点

在教学内容的组织上,为了配合以上的教学方式,提出将教学内容按专题的形式组织。 每一专题自成一个系统,包括:

① 物理原理和计算方法的介绍,这部分内容要考虑到学生的接受能力,对一些比较深 奥的物理原理要作相应的简化,对于一些复杂的计算方法可以只给出结果,推导过程通过 参考文献的形式让有兴趣的同学去研究;

② 对范例程序的分块讲解和验证,通过将整个程序按功能分成若干个小段,结合解决 问题的顺序分别进行介绍,这种方式对于初学者来说是最容易接受的,同时还对每个程序 段进行验证,体现科学的严谨性。

③ 对物理问题的计算模拟以及对结果的讨论,这里主要是通过已有的程序计算模拟一 些理论上很难或者不能解决的问题,最终通过图像或动画的形式展现结果,并对结果进行 分析讨论。

④ 提出一些相关的问题留给学生自己思考和动手解决,并鼓励他们通过理论或实验的 途径去分析验证自己的结果,勇于创新。

⑤ 列出相关的参考文献,供学生参阅并进一步研究。

在每个专题中,学生都能经历提出问题一理论分析一科学建模一编程运算"评价检验 的科学研究过程,从而培养他们科学探究的能力和科研中应有的基本素质。每个专题涉及 大学物理内容的一个或两个方面,或者介绍一到两种计算方法,专题之间并无太大的依赖 性,可以独立进行。具体的案例可参阅第四章内容。

如果把所有的专题集中起来则是一个覆盖大学物理各个章节内容以及各种常用计算 方法的完整讲义。这种组织方式可以很好的配合上述各种灵活多变的教学方式。在课时比 较多的情况下,可以按大学物理的教学内容系统的介绍各个相关专题;在课时较少时,则 可针对学生的不同兴趣或不同专业介绍一两个相关专题。

3.3目前存在的主要问题

上两节内容列举了几种在目前的实际情况下,将MATLAB等数学软件引入到大学物 理基础课教学的途径和方法。由于将科学计算内容和理工科相关课程教学相结合在我国本 科教学中还属于一个较新的事物,还缺乏很多相关的教学经验以及政策和硬件上的支持。 上述的几种方法只是在目前高校教学过程中打的一些“擦边球”,还存在着不少需要解决 的问题。

1) 由于相关内容的教学没有纳入学校对学生的培养目标和教学计划,一方面引起不 了学生的足够重视,学生对此内容的学习全凭个人爱好,无法大面积提高理工科学生应有 的利用科学计算方法处理实际问题的能力。另一方面也无法对教师的授课质量进行监督与 评价。对于其他课程的教学都有相应的教务科或教研组进行对本课程的教学监督与评价, 从而使教学更规范合理。而通过上述方式开设的教学由于灵活性比较大,没有相应的教研 组进行对课程的建设和教学的监督,这在很大程度上影响了教学的效果。

2) 相关内容教学的师资力量比较薄弱。由于MATLAB等数学软件引入国内教学的 历史比较短,在师资力量方面还很薄弱。特别是一些主要从事物理课程教学的教师,有很 多不了解MATLAB等数学软件的用途,无法将科学计算的应用和他们丰富的理论或实验 教学经验有机的结合起来。由于没有统一课程的开设,很难组织起一些地区性或全国性的 教学讨论和交流活动,这在很大程度上会制约师资力量的壮大和课程建设的发展。

3) 在学校开设相关内容的教学时需要一些比较优秀,并且能和基础物理教学相配合 的教材,但国内在这方面的教材建设还存在很大的缺陷。目前在市场上主要存在三类相关 图书,第一类是纯粹介绍软件应用的书籍,这类书籍虽然能帮助学生和教师熟悉各类计算 软件,但不涉及物理学的一些计算方法和程序设计思想,与物理教学没有联系。第二类是 国内自己编写或引进国外的计算物理书籍,这类书籍虽然和物理学联系紧密,但物理知识 起点较高,一般只适合于物理系本专业学生使用,而不适合大面积的基础物理教学。第三 类虽然是介绍基础物理问题的计算机解法,但这类书籍的主要模式是物理问题加计算机程 序,缺乏对学生的正确引导和探究能力的培养,而且所用的编程语言一般为C FORTRAN等高级编译语言,程序比较复杂,计算结果往往以数字形式出现,抑制了学生 对相关内容学习的兴趣。

4) 培养大学生应用数学软件通过科学计算的方式解决实际问题的能力是一项系统工 程,需要在大学各阶段的学习中系统化的落实,在各门理工课程中不断应用和深化,从而 使学生养成一种良好的习惯。在基础课中引入这方面的内容是为了学生在以后专业课的学 习中打好基础,这只是这项系统工程的开始,而不是全部。但是,在目前的理工科大学中, 许多相关课程里面都没有加入通过科学计算来处理本专业问题的内容,这严重的阻碍了对 学生相关能力的培养。

以上问题是笔者在教学实践过程中切身体会到的,在不同学校不同环境的教学过程中 也许还会出现其他一些问题,这些问题都有待我们去努力解决。

3.4需要采取的措施

大面积的提高理工科大学生应用计算机通过科学计算解决实际问题的能力是一项长 期而艰巨的任务,要真正实现这一目标还有很长的路要走。在文献2]中,长期从事这方 面工作的陈怀琛教授指出,要较快的推动这项事业的发展需要同时依靠行政和学术两方面 的力量,调动教师和学生两方面的积极性,并采取以下几项措施:

1) 学校要把大学生“科学计算能力”作为培养目标之一,明确规定一种科学计算语 言,纳入教学计划;学校要有一定的机关(例如教务处教学研究科)经常检查。进行质量 监督,不能放任自流。要有一个负责大学生“科学计算能力”培养提高的专家组,负责制 订落实的办法。包括安排必要的基本课时,每个年级的达标要求,在各门后续课中规定分 担的责任等。

2) 在教学计划中开设“科学计算语言”必修课程。选择的语言对工科而言以MATLAB 为宜,对理科也可在MATLAB与MATHEMATICA中慎重选择。因为这不仅要考虑当前 课程和教师能力,还要考虑后续课程教材和毕业后的工作需要。课程时间不必太多,大概 一个学分即可。关键是要在以后的各门课中通过反复使用来深化。

3) 明确各门理工课程都是“培养科学计算能力”的责任单位,各门课程中的分析计 算都要尽量用一种科学计算语言,并明确一些课程的特定任务。数学课首先要责无旁贷, 在线性代数、计算方法等课中介绍其计算工具是理所当然的责任。其他如静力学和直流电 路中以矩阵法解线性代数方程为重点,交流电路中以解复数矩阵代数方程为主等等。有些 课程也可以用自己特有的计算软件,例如电子线路课。总之应该有这样的要求:教学大纲 中必须反映该课程在使用科学计算软件后的更新点。所谓“计算机不断线”就应该体现在 各门课程中都不断使用,而不是在每学期放一门计算机课来点缀。

4) 对于各门课的任课教师的科学计算能力要提出一定的要求,也要进行必要的科学 计算软件的培训。美国国家基金会(NSF)曾两次资助过ATLAST计划,它是Augment The Teaching of Linear Algebra Through the use of Software Tools (用软件工具增强线性代数教 学)的缩写。该计划在1992年到1997年中的6个暑期组织18个工作点。共有来自各 大学的425位教师参加,进行MATLAB用于线性代数的培训讨论,其成果出版并放在网 上由全国共享,这个办法既培养了教师,又得到教材资料,可以参考,也可用于其他课程。

5) 在计算机的硬件和软件方面,各校要进行必要的补充投资,使学生能用得起计算 机,用起来方便、合法。

6) 对学生的科学计算能力,要通过适当的统一考核、竞赛等,实际检查实施的效果, 使各课教师和学生重视起来。因为科学计算能力的重要性绝不在建模能力之下,这件工作 可以像“建模”那样,通过竞赛等方法,调动学生的积极性。也可以选择一些班进行试点 对比,总结出更好的经验。


3.5参考文献

[1] “大学物理”课程中恢复与建设小班讨论课的尝试,陈惟蓉吴念乐,物理与工程,

Vol.15, No.l, 2005

[2] 大学理工科要把“科学计算能力”当作一个重要培养目标,陈怀琛,中国大学教学2005 年第9期


第四章 MATLAB应用于大学物理教学案例

4.1案例一:天体轨道运动的模拟

在夜晚璀璨的星空中,有许多无法被我们肉眼所观察的行星正围绕着闪烁的恒星运动 着,它们的运动虽然都遵循牛顿的万有引力定律,但是运动周期和轨道形状却各不相同, 为什么这些宇宙的旅行者都能按照自己的既定路线有条不紊的赶路呢?这节内容将通过 MATLAB编写简单的程序来研究以太阳为中心的天体运动情况,从中你们会找到问题的答 案。

4.1.1背景知识和计算方法介绍

1)万有引力定律

任何一个质点®以引力

吸引任何另一质点加2,其中位矢戸的大小为两质点之间的距离,方向由®指向加2,G 万有引力常数6.67x10-11•焙T)。

对于由许多质点组成的扩展物体,吸引力是作为一个物体上的所有质点对另一个物体 上所有质点的作用力之和来计算的。引力也可以是物体位置和方向的复杂函数。然而,如 果扩展物体是分布成球对称的,则引力定律仍可写成(1)式,只是现在位矢戸是物体中心 间的距离。

在这节内容中我们假设太阳和行星的质量为球对称分布,在每种情况下都假设太阳的 质量远大于行星的质量,从而使整个系统的质量中心很靠近太阳的中心。并且认为太阳在 系统内的位置是稳定的,它的中心在坐标原点。卫星在起始速度和起始位置矢量所决定的 平面内运动。我们取这个平面为卩平面。

在这种情况下,行星的运动微分方程可表示为:

半一斗 ⑵

dt r

由于我们要处理的是很大的距离和很长的时间单位,因此在这种情况下用天文学上常

用的天文单位(AU)来表示距离,高斯年Year)来表示时间会比较方便①。这时公式2)

可写为:

d2r 4

一二 r 3)

2)四阶龙格■库塔法解微分方程

四阶龙格■库塔法⑵是解带初值的常微分方程最普遍的数值方法,与欧拉方法相比,它 的精度更高,相应的推导过程也比较复杂,在这里我们只把结果介绍给大家。

在物理学中,多数的运动学问题都能归纳成以下形式:

 

公式(5)、(6)所表示的解有很大的实用价值,在后面的例题和练习中希望大家不断 的学习和体会,直到能够熟练运用这一方法。我们可以通过MATLAB编写一个自定义函数 4()来实现以上内容,并保存为rk4.m®,具体脚本语句如下:

function xout = rk4(x,t,tau,derivsRK,param)

half_tau = 0.5*tau;

Fl = feval(derivsRK,x,t,param);

t_half = t + half_tau;

xtemp = x 4- half_tau*Fl;

F2 = feval(derivsRK,xtemp,t_half,param);

xtemp = x 4- half_tau*F2;

F3 = feval(derivsRK,xtemp,t_half,param);

t_full = t + tau;

xtemp = x 4- tau*F3;

F4 = feval(derivsRK,xtemp,t_full,param);

xout = x + tau/6.*(Fl + F4 + 2.*(F2+F3));

4.1.2建立计算模型

前面提到我们将用四阶龙格■库塔方法来求解行星的运动微分方程,在MATLAB程序

中我们首先要给出初始位置和初始速度以及在程序中要用到的一些常数: %*设定初始位置和初始速度.

h=l ;

rO = 1; vO = h*(2*pi*r0);

r = [rO, 0] ; v = [0, vO];

state = [ r (1) , r (2) , v (1) , v (2)];

%*设定物理常数

gm = 4*pi^2; %Grav. const. * Mass of Sun (auA3/yrA2)

mass = 1.;

%设定时间步长和总的计算步数

tau = .001;

nStep = 6* (1/tau);

time = 0

从以上程序中可以看到,我们首先设定了初始位置和速度,为了简单方便,我们将初 始位置定在x轴上,由于速度方向总是沿轨道的切线方向,所以相应的初始速度只有y 量。同时我们还把初始速度的大小设定为2矶的h倍,这样我们就能通过控制h来得到不 同的轨道形状。例如,若设定rQ=lAU,则当h取1时,行星轨道为圆形(参见4丄4节

①在MATLAE中,自定义函数的函数名必须和保存的文件名一致。
内容),如果h取其他值,我们就能对应得到椭圆、抛物线或者双曲线轨道。

接下来我们要编写以下的语句在循环中调用自定义函数rk4.m,并为其提供相应的参 数。

state = rk4(state,time,tau,'gravrk',GM);

r = [state(1) state(2)];

v = [state(3) state(4)];

time = time + tau;

其中'gravrk •表示的是公式(4)中等号右边的函数形式,在这个问题中应为:


GMsuny


 


将其编写成如下的自定义函数gravrk (s, t,GM),并存为gravrk.m

function deriv = gravrk(s,t,GM)

r = [s(1) s (2)];

V = [s(3) s(4)];

accel = -GM*r/norm (r) A3 % 引力加速度

deriv = [v(1) v(2) accel(1) accel (2)];

到此,我们就有了完整的计算程序,接下来需要检验一下它的准确性。

4.1.3检验计算结果的准确性 1)轨道的稳定性及机械能守恒

宇宙中天体的运行轨道形状和周期是非常稳定的,正是因为这样,我们的祖先往往以 此来制定他们的时间标准。这里,我们运用以上的程序计算几个周期的运行轨道,可以由 轨道的重合程度来判断计算结果的准确性。同时,引力是一种保守力,在保守力场中运动 的物体机械能是守恒的(不考虑相对论效应)。运动天体的机械能包括两部分,即动能

Ek =>v2和势能u = — 因此我们还可以通过对机械能的研究来判断计算结果

r

的准确性。

在计算运动轨道的循环过程中,需要建立一些矩阵来存放每一步计算得到的位置、速 度、动能和势能等物理量。由于在这里我们只重视行星机械能的变化情况,所以为了计算

方便把其质量设置为1。具体的程序如下:

for i=l:nStep

%*计算新的位置和速度.

state = rk4(state,time,tau,'gravrk',GM);

r = [state (1) state (2) ] ; % 4th order Runge-Kutta

v = [state (3) state (4)];

time = time + tau;

%*记录作图用的位置矩阵.

Sx(i) = r(l);

Sy(i) = r(2);

%*记录作图用的时间和能量矩阵.

times(i) = time;

kinetic(i) = .5*mass*(v(l)A2+v(2)A2);

potential(i) = - GM*mass/(r(1)^2 + r(2)A2)A.5;

end

图4亠1是6个周期内行星的运动轨迹,其初始位置r0=lAU,初始速度vO=2piro,时间 步长取0.001yearo图4・1・2给出了相应的动能、势能和总机械能的变化情况。从中我们可 以看到,行星能在一个稳定的轨道上运动,而且其机械能始终保持不变。由于行星的动能 和势能也保持稳定,我们能判断行星在这种初始条件下的运行轨道是一严格的圆形(见 4.1.4节内容)。

0 1 2 3 4 5 6

Time (year)

4-1-2行星机械能随时间的变化

通过改变初始速度的大小,我们可以得到其他形状的轨道。例如,当我们取r0=lAU? vo=O.8*2pir。时,我们得到了椭圆运行轨道。图4亠3和图4亠4计算得到了6year内的行星运 动轨道和相应能量随时间的变化,时间步长取0.001yearo从图中可以看到,在这种情况下, 行星的运行轨道仍是稳定的,它的动能和势能随时间呈周期性变化,但总的机械能保持不 变,仔细观察还能发现,这时行星绕太阳运动的周期已经不再是lyearTo

 

2) 行星的角动量守恒

由于在太阳的有心力场中,引力作用在行星上的力矩为0 (戸x= 0),因而行星的角 动量是守恒的。即:

L = r x mv = C (9)

其中C为常数。

由于行星在xy平面内运动,所以这时其角动量只有z分量,我们可以在程序中加上以 下语句来计算行星角动量随时间的变化。

Lz(i)=mass*(r(l)*v(2)-r(2)*v(l));

计算过程中取初始位置rO=lAU,初始速度vO=2piro,时间步长取O.OOlyear,结果如图

4-1-5所示,整个过程中行星的角动量

5.03 1 1 1 1 1

不变,误差仅为7.5816e-011o

5.025 - -

通过以上的一些验证,我们可以相

5 02 - -

信只要选择合适的步长,用四阶龙格・

库塔方法可以很精确的得到星行绕日 巳5015 ■

运行的轨道。下面我们将通过改变初始 501 -

条件,运用以上程序来研究轨道形状与 5 005 -

哪些因素有关。 5! J 2 3 i 5 !

Time (year)

4-1-5行星角动量随时间的变化

4.1.4对行星轨道形状的研究

在上面的内容中我们已经知道,行星在运动过程中的角动量不变。接下来我们讨论在 保持角动量不变的情况下,改变不同的初始位置和相应的初始速度对轨道形状的影响。把 程序的初始条件改为以下形式:

L=2*pi*(l 2); r0 = 1; v0 = L/rO;

 


 


4-1-6角动量相同初始位置不同时行星的运动轨迹

图4・1・6是在保持角动量L=2*pi*(l人2)不变,r0分别取0.3AU、0.5AU、0.6AU和1.0AU 时行星的运行轨道。我们可以看到对应不同的初始位置,出现了双曲线、抛物线、椭圆和 圆四种不同的轨道形状,其中双曲线和抛物线轨道是不稳定的,以此轨道运动的天体最终 会离开太阳系而被其他引力场所捕获。那么行星运行的轨道到底是由什么决定的呢?由文 3]知道,行星的运行轨道是由所谓的有效势能决定的,有效势能U龙的表达式如下:


T2

其叫为引力势能,爲被称为是离心势能V

 

Distance (AU)

4-1-7行星绕日运动的势能曲线

图4亠7是行星角动量L=2*pi*(l人2)时,有效势能随离太阳距离r的变化曲线,图中顶上 一条是行星的离心势能曲线,底下一条是引力势能曲线,中间便是上述两条曲线合成的所 谓有效势能曲线,正是这条曲线决定了行星绕日运行的轨道形状。请结合图4亠6和图4亠7, 找出行星运动有效势能最大值与其运行轨道的关系,并通过修改上述程序计算验证。

上面已经验证,行星在运动过程中满足角动量守恒,这使行星运行速度随半径r的变化 而变化。图4亠8是在角动量L=2*pi*(l人2), r0=0.58AU时,行星在椭圆轨道各处的速度与r 的关系,显然,行星在近日点的速度要大于远日点。在程序后加入以下一段语句,我们可 以通过动画的形式更加形象的展示行星运动的各种特征。

hl=line( 'Color',[0 0 0], 'Marker' , '.' , 'MarkerSize' ,20, 'EraseMode' , 'xor');

i=l;j=l; while 1

set (hl, ' xdata ' , Sx (i) , ' ydata ' , Sy (i) , ' zdata ' , Ecf 1 (i) ) ; %定位彳丁星

pause (0.000005) %控制运动速度

i=i+l;

if i>n

i=l;j=j+l;

end

图4亠9所示,在角动量L=2*pi*(l人2), rf)=0.58AU时,行星运行的动画,轨道下方是行 星在有效势能面上的投影。通过动画可以看到行星在运动过程中速度大小的周期性变化①, 同时还能形象的观察到行星有效势能的变化。通过改变初始位置,可以得到不同形状的运 行轨道,从中可进一步理解行星有效势能对其运行轨道的影响。

 

4.1.5思考与练习

1) 修改本节附录中的程序,通过静态与动态的图像,研究在相同的角动量和不同的初始 位置情况下,行星运动轨道与有效势能的关系,通过你所观察到的现象总结出其中的 规律。

2) 修改程序,研究在相同的角动量时,不同的rO所对应的椭圆或圆轨道的周期T与『0的关 系。注意,在这个问题中,编程计算周期T时要考虑其准确性,这一点很重要。

3) 开普勒根据第谷的观察数据总结出行星运动三定律:①行星沿椭圆轨道绕太阳运动,太 阳位于焦点之一。②同一行星的矢径r在单位时间内扫过的面积为常数。③对不同行 星,a3/T2=C9 a为椭圆长半轴,T为行星绕太阳运动的周期,C为常数。请设计证明的途 径并修改程序,通过计算结果证明上述的开普勒行星运动三定律。

4) 运用四阶龙格■库塔方法,寻找合适的步长去解决你所知道的各种单摆问题,并检验其 正确性。逐渐增大摆的振幅,看看你从中能发现什么现象。

5) 宇宙中的三体问题总是显得古老而神秘,因为人类在很早的时期就注意到了这个问题, 甚至给出了它所满足的动力学方程,但总是无法得到解析的结果,请参考阅读文献 [5]⑹[7],试用数值方法探索一下日■地■月这一经典的三体系统。

①动画中的速度大小只是相对值,它的绝对值会随计算机的性能变化

4.2案例二:气体扩散的计算机模拟

系统的状态和结构的无序度是与它的混乱程度相联系的,混乱程度愈高,其无序度愈 大,反之则小。物理学中常用爛来反映孤立系统的无序度,而它们两者是怎样联系起来的 呢?在这节内容中,将用蒙特卡罗(随机行走)法通过MATLAB来模拟气体的扩散现象, 同时观察该系统爛的变化,从中可以体会到无序度与爛的密切联系。

4.2.1蒙特卡罗方法简介

蒙特卡罗(Mont—Carlo)方法是利用连续产生的无规数求解的一种计算方法。这个计 算方法以概率和统计中的理论与方法作为基础,并用世界著名的摩洛哥赌城蒙特卡罗命 名,这也象征性的体现了该方法的特点。这个方法在初创阶段只是作为“不得已的最后手 段”来应用,但是随着计算机和计算技术的发展,蒙特卡罗方法已成为研究物理问题的重 要手段,甚至有的人认为计算物理的成功来自于它能用蒙特卡罗技术很好的解决过去不能 处理的热力学和量子力学问题,由此可见这一方法在物理学研究中的重要性。⑻

蒙特卡罗方法在物理工程中有着广泛的应用,例如对于分子运动学,粒子输运现象, 布朗运动,放射性衰变等现象,由于问题本身有一定的无规性,同时又具有一定的统计规 律性,用这个方法很合适。在核工业中大量应用蒙特卡罗方法进行许多实际问题的理论计 算和计算机模拟。1953年,这个方法第一次被成功的应用于解决统计热力学问题,使这个 方法在统计物理学中得到广泛的应用。

蒙特卡罗方法一般可分为直接蒙特卡罗法(Direct Monte Carlo)>蒙特卡罗积分(Monte Carlo integration)和麦曲罗保利斯法(Metropolis Monte Carlo)。⑶前两种方法将分别在正 文和以后的专题给大家介绍。第三种方法较为复杂,有兴趣的读者可以参考文献[8][10] 关内容进行学习。

4.2.2随机数的产生

蒙特卡罗计算的核心是随机性,因此在计算中我们要用计算机产生的随机数模拟自然 随机过程。混合同余法是产生随机序列数rbr2, ...,rk}的常用方法。用常数a乘上前一随机 数口再加上另一常数c后除以M,取它的余数作为下一随机数切1:

ri+1 =( + c) mod M (1)

ri (种子)的值经常由用户提供,mod是计算机为求余数所设的内置函数,这是最基本 的移位操作直到获得输入数据的最不重要部分,因此我们期望舍入误差的随机性来产生随 机序列⑴】。由于这一过程并不是真正意义上的自然随机过程,因此这种随机数往往被称为 伪随机数或贋随机数。

MATLAB和其他许多计算机高级语言一样都配有自身的随机函数,其调用的语句如 下:

rand('state', sum(100*clock));

这行语句用来产生我们需要的0〜1之间平均分布的随机数。MATLAB产生随机数的原 理与上面类似,因此它也需要一个“种子”数来开始循环产生随机数序列。为了使每次运 行时的“种子”数不同,这里通过时钟函数clock产生的时间值来作为“种子”数开始每 次循环。

4.2.3气体分子的随机行走

假设在一个空旷圭寸闭的房间中心滴上一滴香水,挥发的香水分子随机的与空气中的粒 子发生碰撞,最终会扩散到整个房间。这里我们将通过计算机模拟400个分子在二维平面 内的随机运动情况,在MATLAB中定义一个400X2的矩阵来存放这些分子的位置。其中 每一行代表一个分子,第一列存放位置的x分量,类似的第二列存放其y分量。

rand ( ' state ' , sum (100*clock) ) ; %随机数严生器

ns= 2X16; %总时间步数 np=400; %分子数 ss = 1 ; %步长

% 分子随机运动- - -

p = zeros(np,2);

for a = 1:ns

for c = 1:np

theta = rand*2*pi;

p (c,1)= p (c,1)+ss*cos(theta); if p (c, 1) > 100 %边界条件

p (c,1)= p (c,1)-2*ss*cos(theta);

end

if p(c,1) < -100

p(c,l)=p(c,l)-2*ss*cos(theta);

end

p (c,2)= p (c,2)+ss*sin(theta);

if p(c,2) > 100

p (c,2)= p (c,2)-2*ss*sin(theta);

end

if p(c,2) < -100

p(c,2)=p(c,2)-2*ss*sin(theta);

end

end

end

通过以上的一段MATLAB程序可以让这些分子“动起来”,这里我们选择步长ss=l, 并在极坐标下通过随机数产生函数给出分子随机的运动方向,之后再回到笛卡儿坐标系中
换算出每个分子位置的x、y分量。在程序中可以看到,我们设置了每个方向上-100-100 的边界,当分子遇到边界时会发生弹性碰撞。现在我们就建立了一个有400个分子在二维 平面内的扩散模型,但是在作进一步模拟之前,我们要对其准确性做一些基本的测试。

4.2.4对随机数的测试

为了检测上述随机行走程序是否准确, 我们要进行一个简单的测试。假设所有的分 子最初都在原点位置,那么经过一步计算以 后,原点应该不再有分子,如果我们使用的 随机数很好的话,就应该能得到各个方向均 匀分布的分子,它们形成一个以原点为圆 心,半径为1的圆环。

如图421所示,我们得到了圆环状、半径为1的粒子分布图,400个分子在圆环上的 分布也是很均匀,这说明我们的随机数是可行的。

接下来,我们通过跟踪单个分子的运动路线,看看它的运动是否确实具有随机性,还 是有某种趋势。

由图4・2・2和图4・2・3可以看到,单个分子的运动路线也是随机的,不存在任何趋势。

①由于程序中的随机数产生函数的“种子”和时间有关,所以每次运行程序时得到的分子运动轨迹都是不同的。

4.2.5方均距离vR?〉

从统计的角度来看,如果我们要模拟气体的扩散过程,那我们就需要非常大数量的分 子数。而这里为了提高计算效率,我们只模拟了 400个分子的运动,这样是否还能正确的 反映气体扩散的统计学性质?为此,我们来讨论一下分子距原点的方均距离<便>与计算步 数的关系。

如图4・2・4所示,第i个分子在经过N步随机行走后距原点距离为R,对n个分子每步的 位移平方求和后取平均值就得到了所有分子距原点的方均距离r2>:

[r2 ) = _ 工(山订 + + …+ AxzW )2 +(Ay + Ay.2 + …+ AyzW)2

i=l

上式可通过在已有程序中加入以下一段语句来 实现:

%RMS

%方均距离

lTemp = lTemp + (p(c,1)x2 + p (c,2)A2);

rms (a, 1) = a;

rms(a,2) = lTemp/np;

这段语句被加在程序的循环体内,并定义了一个 NX2的矩阵rms,它的第一列用来存放步数,第二列 用来记录VR2〉。

接下来,我们就可以通过改变程序中的步长和分 子数来研究它们和VRb的关系o 这里,我们也可以从理论上来得到上面各个量的关系,从而通过比较来检验我们程序的准 确性。

把公式(2)进一步展开可以得到下面的表达式:

/ \ 1 n

\r2/ —工(山订 +山池 +••• +AxzW)2 +(Ay + Ay.2 +••• +Ay.^)2

n t=i

If 2 2 2

=_ Ax + Ax,? +・・・ + /\%训 +2Ax Ax,? +2Ax 订 + 2Ax-2 Axz-3 + • • •

n z=i ' ~

需要注意的是,公式(3)对任意行走都有效。如果是随机行走,大致等价于在任意 方向走一步,如果是很大数目的随机行走,公式(3)中的交叉项将消失[⑴,只留下:

]n

Q _ 工 AxJ + Ax/22 + • • • + AxzW2 + Ay./ + Ay/22 + • • • + AyiN2 n /=1

=N与工

n i=i

= Nr2

其中r为步长。从式4)中可以看到,当步长取定时,R2>和计算步数N成正比。 由于公式(4)成立的条件是n的数目足够大,所以可以此来判断我们选择的分子数量是否 达到精度要求。


 


 

4-2-5不同步长时YR?〉与步数的关系曲线 图4-2-6步长为1时理论曲线与数值曲线的比较

从图4-2-5中可以看到,计算得到VR?〉与步数的关系曲线是呈线性关系的,其斜率为 所取步长的平方,与公式(4)符合的很好。在图4・2・6中,通过理论曲线与数值曲线的比

较,更能清楚地看到我们对分子数量和随机数的选取能很好的反映出统计规律。由于边界 条件的限制,想一想再经过更长时间以后,R2>的变化趋势会是什么样?

如图4-2-7所示,就像我们所预测的, R2>最终趋于一个稳定值。由于气体分子 最终会充满整个边界以内的区域,在这之 后的任何时刻这种状况都不可能发生变 化。相应的,所有分子离原点的方均距离 VR2〉也会趋于稳定。

同时我们也能发现,随着时间的变

化,系统的混乱程度在不断的提高直到分 子在区域内达到稳定分布。接下来,我们 就来研究系统的无序度——爛o

4.2.6

爛是孤立系统无序度的一种量度,在数学形式上,它可以事件发生的几率来定义为:

S=-C^P(z?j)lnP(z?j) (5)

i,j

其中01.443,公式(5)表示系统的爛是对系统处于某一状态的几率乘以该几率的自 然对数的积的负数求和。该表达式是由香农提出的信息爛的定义,单位为bit,它和热力学 爛的转换关系为:[12][13]


现在来讨论一下爛在我们这个气体扩散模型中是什么意思。在刚开始的时候,我们的 系统处在一个非常有序的状态:所有的分子都处于原点。这时系统的爛为零,系统不存在 任何的无序度。随着时间的推移,分子开始不断的向外扩散,这时系统出现了无序状态, 爛开始逐渐增加。在原有程序中,我们要在循环中加入以下一段语句来计算系统在不同时 刻的爛。

%ENTROPY

hx = histc(p(:,1), -100:20:100);

hy= histc(p(:,2), -100:20:100);

for i = 1:10

for j = 1:10

S(i, j ) = hx(i)/np * hy(j)/np;

if S (i,j) == 0

E (a, 2) = E (a, 2) - 0;

E (a, 1) = a;

else

E(a,2) = E(a,2) - 1.443* (S (i,j)*log(S(i,j)));

E (a, 1) = a ;

end

end

end

我们用MATLAB的histc函数来建立 一系列与坐标相应的区域,然后记录每一 时刻分子落在这些区域里面的数量。在程 序中我们等大小的划分了 10X10个小方 形区域。随着时间的推移,我们的程序能 计算出每一时刻系统的爛。

如图4・2・8所示,系统的爛和我们预


测的一样在随时间增大,但当所有分子布满整个边界以内区域时,系统的爛开始趋于稳定。 从这一结果中我们可以了解:当所有的分子随机的布满整个区域时,虽然当我们跟踪某一 个确定分子时,它还是在区域内到处乱窜,但每个小区域内分子的密度却不会再变化了。 所以,一旦气体分子扩散到整个区域以后,不管我们再等上多少时间,系统的爛都不会再 有太大的起伏。换句话说,让系统自动回到开始的状态,即所有分子都在原点的状态,已 经不可能了。


 


4.2.7思考与练习

1) 当用计算机模拟随机行走时,采取不同的随机走法可能会获得不同的答案。下面给出 另外两种随机行走的方法,请修改程序,用以下随机走法模拟气体分子的扩散,并对 结果进行比较。

① 在T,l]随机选择Ax和Ay,在这种方式中,每个方向上正和负的步数大致相等。

② 在T, 1]间选择随机值Ax和Ay = ±71-Ax2 ,其中符号的选择也随机。

2) 请修改程序,模拟三维空间中气体分子的扩散运动,并计算其爛随时间的变化。

3) 如图4210所示,矩形的盒子被一档板等体积的分成两部分,气体分子先在左边的区 域由一点扩散开来,达到稳定后把挡板抽去,气体分子会扩散到右边区域。请通过修 改程序模拟这一过程,并计算爛随时间的变化。

 

4)编写程序实现以下问题:设有N枚硬币,开始时所有的硬币都是分值向上,接着随机 的选取硬币并随机的决定是否把其翻转,经过一段时间后,统计分值向上或是国徽向 上的硬币所占的比例,并计算在这个系统中爛随计算步数的变化。


4.3参考文献

[1] 两均质球体间的引力,张祖涛、孙锦如,大学物理(教育专刊),Sep.2005

[2] 数值分析,孙志忠 袁慰平等,东南大学出版社,2002.2,第一版,p246-252

[3] 关于圆形轨道稳定性的两个问题,王建中,南京气象学院学报,Vol.25, No.4

[4] 力学:伯克利物理学教程(第1卷)[M],基特尔耐特•鲁德曼,科学出版社,1979, p272—273

[5] 三体问题的受力分析,高炳坤,大学物理,Vol.23, No.5

[6] Moon-Earth-Sun: The oldest three-body problem, Martin C. Gutzwiller, Rev. Mod. Phys., Vol. 70, No. 2, April 1998

[7] Elementary Celestial Mechanics Using MATLAB, Enrico Onofri, Computing in Science & Engineering, November/December 2001

[8] 计算物理,杨清建,上海科学技术出版社,1988.5第一版,P134-149

蒙特卡罗方法及应用,尹增谦等,物理与工程,Vol.12, No.3, 2002

[10] Compytational Physics, J.M.Thijssen, Cambridge University Press, First Published 1999, p271

[11] 计算物理讲义,罗成林,南京师范大学物科院,2002.9版,p61-72

[12] 大量粒子系统的课程教学体系探讨,王彬,物理与工程,Vol.ll, No.l, 2001

[13] 热学,秦允豪,高等教育出版社,2004.6,2,p261-264

【MATLAB在大学物理中的应用】相关文章

《MATLAB在大学物理中的应用》

将本文的Word文档下载到电脑,方便收藏和打印

推荐度:

点击下载文档

文档为doc格式

热点排行

推荐阅读

付费下载

付费后无需验证码即可下载

限时特价:原价:

微信支付

支付宝支付

微信二维码支付

付费后无需验证码即可下载

支付金额:

支付成功