您现在的位置:

子见南子 >> 正文 >

浅谈使用Matlab软件作为计算物理教学平台的优势 - 研究 - 教育教学 -

时间:2017-04-03 08:38:31来源:网络收集Tags:     ()

文林,邱旭

(重庆师范大学物理与电子工程学院,重庆401331)

摘要:Matlab为数值计算提供了大量功能强大的应用工具箱,使数值计算变得更加的高效。作为数值计算的软件平台,Matlab在计算物理教学中的应用能降低学生学习计算物理的难度,提高学生对计算物理的学习兴趣。

关键词:Matlab;计算物理;线性方程;BCS理论

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)34-0273-02

一、引言

计算物理是伴随着计算机的出现和发展而逐步形成的物理学科,是运用计算机对所要研究的复杂物理问题进行数值计算或模拟实验,并从中探索和发现新的物理规律。因此,计算物理是物理、数学和计算机三者相结合的产物[1]。在当今的物理学各个分支领域,大量物理问题的求解都离不开计算机的辅助。可以说,计算物理的发展对物理学起着重要的推动作用。

在高等教育中,许多高校都为物理学专业本科生开设了计算物理课程。通过对该门课程的学习,学生可掌握许多科学计算中所应用的方法与技术,培养脑科医院可以看癫痫吗他们对科研的兴趣,并为将来开展科学研究和应用打下良好的基础。然而,对于大学本科生来说,在计算物理的学习中存在着许多的困难。首先,计算物理课程通常涉及较为复杂的数学知识,如线性代数、偏微分方程等。在传统的计算物理教学中,大部分教师把数值计算方法和原理作为教学重点和难点,使得高等数学知识基础较差的学生学习起来较为困难[2]。另一方面,计算物理课程的教学离不开计算软件。在早期的教学过程中,大部分教师都以Fortran作为软件平台进行程序的编写,要求学生具有较强的编程能力。但学生通常很难掌握和应用复杂的Fortran语言,使得计算物理教学过程中存在教与学的难度,降低了学生学习的效率[3]。随着科学的进步,许多新型计算软件的诞生为计算物理教学和学生的学习提供了便利,最为典型的就是Matlab软件在计算物理教学中的应用。

Matlab是美国MathWorks公司所开发的商业数学软件,其全称为Matrix Laboratory,意为矩阵实验室。

Matlab的主要功能包括数值分析、数字图像处理、数字信号处理、工程与科学绘图和通讯系统设计与仿真等[4]。与其他数值计算软件相比,Matlab的优势主要体现在如下几方面:(1 )Matlab为用户提供了高效的数值计算和符号计算功能,特别是在处理矩阵方面具有明显的优势;(2)Matlab在编程语言上较为简单,语法结构更加接近人们常用的数学表达习惯,提高了编程效率。最重要的是,Maltab内嵌了许多功能强大的应用工具箱,为用户提供了大量方便且实用的处理工具,使得一些烦琐的数值计算过程能用单个简单的命令代替;(3)Matlab具有完美的图像处理功能,突然昏迷失去意识是什么病让复杂的计算结果变得可视化。因此,如果将Matlab作为计算物理教学的软件平台,将有效地改变学生学习计算物理困难的现状,提高学生学习积极性的同时,也能降低高校教师的教学难度。本文将通过一些计算物理实例,进一步分析Matlab软件作为计算物理教学平台的优势。

二、Matlab在求解线性方程组中的应用

在物理学中,许多实际物理问题可用线性方程组来描述,如电学网络、分子振动、应力分析等问题,而这些线性方程组又可用转化成如下的矩阵形式AX=B其中X=(x1,x2,…,xN)为未知数所构成的N×1矩阵,A为N×N的系数矩阵,而B为N×1矩阵。如果矩阵A是非奇异矩阵,则方程组的解为X=A-1B。所以,非线性方程组的求解转变为求逆A-1。在线性代数中,矩阵的逆A-1=A*/|A|,这里A*为伴随矩阵。|A|为矩阵的行列式。如果利用标准的线性代数方法求N×N矩阵A的行列式值[5],则必须要计算N!个乘积。对于较小的矩阵来说,通常可利用简单的数学公式求解行列式。当N较大时,尽管理论上仍然可以运用线性代数公式进行计算,但计算量非常大。以N=20的矩阵为例,如果我们的计算机每秒可做1010次运算,那么计算该矩阵的行列式要花费大约为7.7年的时间。这说明,在实际的数值计算中,不能用标准的线性代数公式做计算。此外,伴随矩阵A*的求解在数值上也不太容易实现。

Matlab为我们提供了一个计算矩阵行列式的命令———det。该命令所使用的算法为高斯消去法,其基本思想是将矩阵化为上三角或下三角矩阵,然后将对角元素相乘即可得到矩阵的行列式。我们以N=20的随机矩阵为例,发现计算该矩阵的行为什么会突然抽风儿童?列式所需要的时间约为5×10-5秒。由此可见,Matlab所提供的命令det在计算行列式时,既高效又简单。特别的,基于高斯-约当消去法,Matlab也为我们提供了计算矩阵逆的命令———inv。因此,学生在利用这些命令求解线性方程组时,不仅可以节省计算量,而且还可以避免编写高斯消去法和高斯-约当消去法时所涉及的烦琐程序。

三、Matlab求解非线性方程的应用举例

在日常生活中,许多现象在理论上可用一些复杂的非线性方程或方程组来描述。通过求解这些非线性方程,可以深入研究这些现象背后所隐藏的物理规律。非线性方程的求解没有简单的求根公式,必须借助数值计算方法进行近似求解。对于单个非线性方程的求解,常用的数值方法有区间对分法、迭代法、搜索法及牛顿迭代法[1]。尽管这些方法能够有效地求解非线性方程,但在实际的应用中,学生很难直接利用这些算法求解较为复杂的非线性方程或方程组。Matlab为我们提供了一个求解非线性方程或方程组的命令———fsolve,该命令主要采用最小二乘法来求解非线性方程[1],其用法比较简单,学生容易学习和掌握。

为了说明利用Matlab求解非线性方程的优势,我们以BCS超导理论中的能隙方程和粒子数方程为例,其基本形式如下:

这里为as原子相互作用的s波散射长度,kF为费米动量,配对序参量Δ和化学势μ需要自洽求解。该方程组为非线性方程组,可以通过牛顿迭代法进行求解。牛顿迭代法的基本思想是,将两个方程在初始值附近用二元泰勒级数做展开,并取线性部分,可得到求解方程时所需要的迭代格式[1]。然而,牛顿迭代法在呼伦贝尔癫痫治疗好的专科医院每一步迭代的过程中都需要计算一次雅可比行列式。对于较为复杂的非线性方程组而言,雅可比行列式的求解较为困难,程序编写过程比较复杂,以至于学生在编程过程中容易出现错误。如果直接利用Matlab的fsolve命令,则可有效避地免该问题。以下是利用fsolve求解配对序参量和化学势的Matlab程序:

作为例子,我们利用上述程序展示配对序参量和化学势随相互作用强度的变化(见图1)。由此可见,以Matlab作为平台,利用fsolve求解非线性方程组时,可使学生从烦琐的数值算法推导及编程过程中解脱出来,将精力更多地投入到物理问题的分析中。

四、总结

以线性和非线性方程的求解为例,我们说明了Matlab在计算物理教学中的优势。通过利用Matlab所提供的数值计算工具箱,可降低学生学习计算物理的难度,为计算物理教学提供便利。

参考文献:

[1]马文淦.计算物理学[M].北京:科学出版社,2005.

[2]李晓莉,张建飞.计算物理的教学改革研究与实践[J].物理通报,2010,(8 ):57.

[3]彭芳麟,梁颖,忻蓓.计算机软件在计算物理课程中的地位和作用[J].大学物理,2013,32(8):6.

[4]张志涌.精通Matlab[M].北京:北京航空航天大学出版社,2011.

[5]叶其孝,沈永欢.实用数学手册[M].第2版.科学出版社,2006.

© http://zw.rpwej.com  秦宫密录网    版权所有