应用地球物理学专业加强MATLAB程序设计的思考
2016-10-14李建慧
李建慧
摘要:本文在分析应用地球物理学专业和MATLAB程序设计各自特点的基础上,以应用地球物理学专业的特点和需求作为切入点,探讨了应用地球物理学专业中加强MATLAB程序设计教学的思路。
关键词:应用地球物理学;MATLAB;教学改革
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)44-0227-02
近年来,许多专家学者从不同角度关注于应用地球物理学专业的本科教学改革。比如,金胜等学者探讨了如何提高本科生毕业论文质量的方法[1],张新兵等学者通过比较中美两国本科生课程设置而提出了我国应用地球物理学专业课程改革的方向[2],阎建国等学者探索了以地球物理学为例基础教育改革的思路[3],吕玉增等学者提出了培养工程技术人才的改革方案[4],熊章强等学者研究了如何提高野外实践教学效果的对策[5],严哲以地震勘探的专业实习为例探讨了地球物理专业教学实习的作用、安排和效果[6]。
MATLAB、MAPLE和MATHEMATICA为当今三大主流数学软件。相比MAPLE和MATHEMATICA,MATLAB在国内高校理工科专业的应用更为普遍。本文我们将探讨应用地球物理学专业本科教学中加强MATLAB程序设计的一些思路。之前,汪勇讨论了MATLAB程序设计在地震勘探教学中的应用[7],而童孝忠分析了MATLAB在应用地球物理学中的应用[8]。
一、应用地球物理学的学科特点
应用地球物理学隶属于地质资源与地质工程一级学科中的地球探测与信息技术二级学科。根据研究物理场的不同,可划分为电法勘探、磁法勘探、重力勘探、地震勘探、放射性勘探和地球物理測井。除了一级学科的特点外,该学科自身还具有以下特点。
1.数理基础要求极高。地球物理场一般是关于空间位置变化的三维函数,比如重力场、静磁场、静电场等;而有些情况下,我们还需考虑地球物理场与时间变化的关系,比如时间域电磁场、地震波场等。为了能够真实的描述这些地球物理场,我们需要大量而复杂的数学和物理知识。因此,除了学习高等数学、大学物理、概率论与数理统计、数值分析等基础课程外,该专业本科生还要学习矢量分析与场论、复变函数、积分变换、数学物理方程与特殊函数、数字信号处理、弹性波动力学、勘探电磁场论等专业基础课程。
2.专业术语抽象、不易理解。应用地球物理学专业中,有些概念非常抽象,比如“场”。我们知道,场是反映随时空变化的某种物理量,并以场在时空中每点值的类型,将其分为标量场、矢量场和张量场。这些抽象概念的理解往往需要借助于一定的工具,比如曲线图、等值线图、矢量图、三维立体图、动画演示等。
3.与计算机科学结合紧密。地球物理专业与计算机科学结合非常紧密,比如利用高级语言编制程序用于研究地球物理场或者资料处理,利用计算机绘图软件绘制矢量图、三维图等专业图件。计算机科学的快速发展给应用地球物理学带来了巨大影响,比如计算机硬件的发展大大加速了资料处理速度,智能优化算法的快速发展使得反演结果更加可靠,反演速度更加快速。
二、MATLAB程序设计
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。与其他开发语言相比,MATLAB主要具有以下优势。
1.界面友好、编程语言自然。MATLAB采用了一系列图形用户界面,包括MATLAB桌面和命令窗口、历史命令窗口、路径搜索、文件浏览界面等。最新版本的MATLAB软件中,用户界面更加精致、人机交互性更强,操作也更加简单。MATLAB的编程语言自然,比如复数“1+2i”可直接写为“1+2i”,而不必分别表示存储实部和虚部,并且其运算和函数都是针对矩阵设计的,比如矩阵A和B的乘积,可直接写为“A×B”,而不必像其他语言中借助于循环语句实现这一功能。
2.数值计算能力强大。MATLAB包含有600多个常用的数学函数,这些函数包括线性方程组的求解、微分方程及偏微分方程组的求解、数值积分、插值、傅立叶变换等。比如,数值积分包含了“quad”、“quadl”、“quadv”、“quadgk”、“integral”等多个函数,用户可根据求解问题要求的精度和效率确定使用的积分函数。除此之外,MATLAB还包含偏微分方程、小波变换、神经网路、统计分析、样条拟合等工具箱。利用这些库函数,不仅保证了计算结果的精度,还大幅提高了用户的编程效率。
3.可视化处理能力完备。MATLAB拥有完备的图件绘制函数,涵盖了从简单的曲线图、等值线图,到复杂的矢量图、三维图件,再到动画制作,等等一系列函数。另外,MATLAB还自带了GUI设计工具箱,使得用户可以设计出一些简单的可视化界面。
其他一些软件或程序设计语言也具有上述个别特点,比如FORTRAN语言通俗易懂、运行速度快、商业函数库丰富,又如MATHEMATICA具有突出的符号运算能力,再如GRAPHER、SURFER等绘图软件具有强大的绘图功能。但是,MATLAB具有以上软件的所有特点和优势,因此该软件在国内高校理工科专业中应用极为广泛。
三、应用地球物理学专业与MATLAB程序设计的结合点
根据应用地球物理学专业和MATLAB程序设计的特点,我们认为在本科阶段MATLAB程序设计可应用于应用地球物理学专业以下三个方面的教学实践中。
1.经典理论和公式的图形化。地球物理专业中有许多经典理论和公式,比如电法勘探中点源电流场中水平层状介质、球体、垂直接触面的电场,水平电偶源和垂直磁偶源在层状介质表面激发的频率域和时间域电场、磁场,等等,经典教科书中也只给出了部分公式的曲线图。利用MATLAB自带的库函数、偏微分方程工具箱等,学生们完全可以制作这些经典理论和公式的等值线图、场矢量图、电磁场的动态演示等。这对于理解地球物理中“场”的概念大有裨益,也能更好地理解地球物理勘探方法的设计原理。
2.简易资料处理程序的开发。地球物理勘探中,野外采集数据之后,往往需要资料预处理、反演和解释。目前,虽然关于地球物理资料处理解释的软件已有很多,但是其背后的方法原理都是相通的。比如,地球物理通常需要滤波去除噪音,又如一些地球物理方法要求将数据从时间域(空间域)转换至频率域(波数域),等等。针对滤波去噪,MATLAB有低通滤波、高通滤波、中值滤波、小波去噪等工具箱和函数;针对时频转换,MATLAB有一维和二维快速傅里叶变换函数。除此之外,地球物理专业中资料处理解释的大部分方法仍需学生编程实现,但是可以使用MATLAB自带的库函数,比如插值函数、数值积分等。这些工具箱和库函数的使用,使得学生的学习事半功倍。
3.正演和反演程序的编写入门。在地球物理勘探中,正演和反演是最核心的两个问题。电法勘探中,二维、2.5维和三维正演均需求解一个大型线性方程组,而MATLAB自带了方程组迭代法求解的许多函数,比如共轭梯度法、双共轭梯度法等。关于反演算法,MATLAB自带了神经网络工具箱、最小二乘法函数等可用于反演研究。另外,有限元法分析的专业软件COMSOL MULTIPHYSICS也采用了MATLAB程序设计语法,因此极大地方便了高校科研用户。但是,更多的算法仍需学生编写相应程序,比如有限元法正演算法、交错网格有限差分法正演算法、拟牛顿法反演算法、高斯—牛顿反演算法、粒子群优化算法反演算法等。
四、结语
本文首先分析了应用地球物理学专业和MATLAB程序设计的各自特点,给出了应用地球物理学专业与MATLAB程序设计的三个结合点。基于上述分析,我们有理由相信MATLAB程序设计语言必将在应用地球物理学专业教学和科研中发挥更大的作用。
参考文献:
[1]金胜,叶高峰,景建恩.提高地球物理专业本科生毕业设计(论文)质量的思索与探讨[J].中国地质教育,2010,(3):88-91.
[2]张新兵,于鹏,吴健生.中美地球物理专业本科生课程设置比较与启示[J].中国地质教育,2010,(3):103-106.
[3]阎建国,李才明.地球物理学基础教育改革初探[J].中国地质教育,2010,(4):32-34.
[4]吕玉增,韦柳椰,李长伟.地球物理勘查工程技术人才培养改革与实践[J].中国地质教育,2012,(1):115-118.
[5]熊章强,朱德兵,严家斌,张大洲.提高地球物理学科野外实践教学效果的探索与实践[J].中国地质教育,2012,(4):132-134.
[6]严哲.地球物理专业实习教学方法初探——以地震勘探为例[J].教育教学论坛,2013,(17):84-85.
[7]汪勇.浅谈Matlab在地震勘探教學中的应用[J].中国地质教育,2012,(4):108-110.
[8]童孝忠.MATLAB程序设计及在地球物理中的应用[M].长沙:中南大学出版社有限责任公司,2013.