中国期刊网-投稿、查重、发表有保障。
您的位置: 主页 > 学术论文 > 教育论文 >

Jupyter交互式平台在结构化学教学中的应用一以 "单电子原子薛定谔方程”为例

发布时间:2022-05-25 17:56:30

摘    要:以“单电子原子薛定谔方程”为例介绍了综合理论演示、科学符号推导和数据可视化多种功能的开源Web平台Jupyter在结构化学教学中的应用。借助于多样Python程序库学生能够交互式地学习理论概念、推导数学公式和理解波函数性质,可增强结构化学教学过程的参与度和互动性,也培养学生运用编程解决科学问题的能力。


关键词:结构化学; Python; Jupyter;薛定谔方程;教学改革;


Implementing the Jupyter Interactive Platform in Structural Chemistry Teaching and

Learning: Schrodinger Equation of Single Electron Atom

Hao Zhang Zigui Kan Zihan Lin Yuchen Qian Chengyun Si Hai Qian

School of Science, China Pharmaceutical University


Abstract:

This paper, taking “Schrödinger equation of single electron atom” as an example, introduces an open-source web platform called Jupyter for teaching structural chemistry, which integrates knowledge presentation, scientific calculation, and data visualization. Assisted by various Python libraries, students can interactively learn theoretical concepts, deduce mathematical formulae, and understand the nature of wave functions, which can enhance the participation and interactivity of structural chemistry teaching and cultivate students’ programming ability to solve scientific problems.


Keyword:

Structural chemistry; Python; Jupyter; Schrödinger equation; Teaching reform;


结构化学是从微观角度认识化学规律的学科,其以电子因素和空间因素两条主线阐明原子、分子和晶体的结构、性能和应用,基本原理和方法广泛应用于化学、材料、医药等科学领域[1]。以量子力学、群论和晶体学等相关数学物理理论为基础的知识体系能够很好地引导学生突破经验表象逐步认识化学本质,培养化学科学思维[2],但也对教师和学生的数理基础、逻辑思维及空间想象力提出了较高的要求。这其中量子力学基础部分尤为突出,例如单电子原子薛定谔方程求解过程涉及到大量数学演算和推导过程,另外由解析解获得量子数、能量、角度分布、概率密度等函数图像也极为抽象,难以理解。传统教学多以数学演算板书推导和波函数图像PPT演示相结合的形式,教学过程中学生往往被动接受理论知识,参与度低、互动性差、缺乏趣味性,产生畏难情绪。


随着互联网及计算机信息技术的发展,在课堂上使用慕课、微课、翻转课堂等教学互动平台变得越来越容易。南开大学孙宏伟教授建设结构化学课程网站[2],课程资源素材丰富且共享自由下载。这些互动平台不仅提供了强大的图形化、可视化工具调试不同参数下的结果,还能够进行科学计算和解析复杂的函数问题,使得学生不再单一枯燥地面对静态的书本知识。我们尝试在结构化学教学中引入一款基于Web浏览器的开源交互式在线应用Jupyter [3],它简单易学,允许用户把所有的说明性文字、数学公式、代码和可视化内容结合在一个可轻松共享的IPython Notebook文档(ipynb)里,不仅在数据分析、机器学习等领域得到广泛应用,而且在教育教学实践中显示了良好效果[4,5,6,7]。


1 Jupyter的使用优点

Jupyter非常重要的概念是其单元格(Cell)模式,其中Markdown单元格用于记录叙述性文档可以展示相关理论概念等(见图1),Code单元格能进行编码并同步显示结果实现科学计算及可视化模拟等功能。每个单元格能够独立运行使得调试变得容易,局部错误不会影响整个文档;也允许从其他ipynb中直接组合并且以模块化形式更新。Jupyter及其应用插件是免费共享普及的,使得其制作的ipynb文档资源丰富,为不同层次的课程提供借鉴和参考。此外,Jupyter平台有多样化的版本,主要包括轻量化的Jupyter Notebook、功能多样的工作台式Jupyter Lab以及网络化部署Jupyter Hub等,教师根据教学需要选择适用的版本。结构化学的教学内容包含了大量理论介绍、数学公式推导、结构模拟、函数图像等,Jupyter能轻松地将这些内容整合到同一ipynb文件中。类似于使用PPT教学,国外很多教师制作ipynb用于化学教学活动[5,6,7]。


2 教学实践

我们将以“单电子原子薛定谔方程及其解”为例从理论知识演示、波函数推导、电子云分布可视化三个方面充分展示Jupyter交互式平台在结构化学教学实践中的应用及优势。


2.1 理论知识演示

核外只有一个电子的原子称为单电子原子,如H原子和He+,Li2+等类氢原子,其结构简单,薛定谔方程可以严格求解,但求解过程也非常复杂,包括笛卡尔坐标到球极坐标变换、变数分离、偏微分方程求解、量子力学基本假设条件判断、波函数归一化、复数解实数解变换等。当然该部分教学重点是波函数解析解的物理意义及其描述状态的性质,大多数专业的课程要求并不需要严格推导求解过程而是主要介绍其解析思路,例如Laplace算符球极坐标表示,R方程和Θ方程求解过程都是推荐学生阅读相关量子力学专著[1]。然而量子力学中许多新概念、新方法、新原理是和经典物理学完全不同的,教学内容的简化虽然使学生专注于波函数性质的理解,但也让学生一知半解,对很多推导过程感到困惑[8]。


针对这一系列问题,我们可以利用Jupyter Lab中的ipydrawio插件绘制流程图将教学知识点简明扼要地呈现出来(见图2)。专业化流程图设计应用drawio具有丰富的图形构件,能够清晰地展现单电子原子薛定谔方程的求解过程,帮助学生理清思路进而高效地讲授该内容(见补充材料S1)。Jupyter的单元格中支持Markdown标记语言编辑叙述性文档,且其语法简单易学,不需要对格式进行编辑即可输出美观大方的文档用于理论概念的阐述。传统结构化学课程中数学公式繁多,PPT编辑工作量巨大;Jupyter支持LaTex数学符号输入,非常便于教学过程中相关数学物理理论的介绍与推演。Jupyter还能通过RISE插件以PPT形式进行课堂演示讲授,图2为RISE呈现的类PPT效果截屏。当然相对于PPT丰富的模板和所见即所得的操作,Jupyter的显示效果还相对单一,特别对一些图片、视频及动画演示的处理还不够好。笔者通常是将现有的PPT批量地转为png位图Base64编码嵌入到Markdown单元格中,是一种不错的替代方式。相信在不久的将来Jupyter自由共享的特性能够推出功能更加强大的类PPT插件用于课程教学讲演。


2.2 波函数推导

“大部分物理学和全部化学的定律之数学基础,我们已完全了解,而唯一的困难仅仅是正确应用这些定律时所导出的方程,解起来太困难。”这是著名量子力学奠基者P. A. M. Dirac的句子。有趣的是计算化学家J. A. Pople在获得诺贝尔化学奖时也同样提到这段话[9]。由此可见数学公式推导及运算在量子力学中的重要性及困难程度,而这正是很多学生在学习结构化学过程中的“拦路虎”。


Jupyter脱胎于IPython Notebook,它能够使用Python语言编程处理数学运算并能够同步地将处理结果用MathJax渲染显示(见图3)。我们可以借助Python中的科学计算程序库SymPy、SciPy等进行量子力学相关的公式推导和科学运算[10]。例如,常微分方程(ODE)的Φ方程的解析相对于R方程和Θ方程较为简单,但是其求解过程也能很好体现波函数单值性、归一化、态叠加原理等量子力学假设的应用,有助于建立波函数解析的基本思路。传统上Φ方程的推导大都是根据常系数二阶齐次线性方程的通解获得其复数特解,再根据欧拉公式和态叠加原理进行线性组合获得实数解。对于我校这类医药类相关专业的学生来说复变函数内容还是相对不熟悉,无论是归一化积分运算还是边界条件判断都不太好理解[11]。其实Φ方程复数解的物理意义并不明确因而其推导意义也不大,借助SymPy强大运算能力调用dsolve()函数便可解析常微分方程,并直接获得实数域通解为三角函数形式(见图3)。学生早在中学时期就已经掌握三角函数的运算,大大降低了知识点的学习难度。当然我们也可以根据欧拉公式的变形较为简单地推导获得复数解,也进一步深化态叠加原理及实数解复数解关系的认识。


更重要的是Jupyter实现的函数化编程思维和数学推演过程是一致的。Code单元格作为科学计算的编程载体(见图3中In[])能够同步显示计算结果(见图3中Out[]),与作为理论概念介绍载体的Markdown单元格相得益彰,能够形成很好的交互式学习体验。通过简单培训,学生在Jupyter中既可以同步地学习理论内容和科学计算编码,还能自主添加Markdown注释,运行和修改编码形成自己的ipynb文件。实际教学过程中我们发现很多学生对科学计算编程过程展现了极大的兴趣,不但自己逐渐学会了SymPy符号计算编码,还能够帮助教师简化编码改进计算过程。这一过程的实现需要学生对相关知识内容深入理解才能够实现,学生获得了很棒的成就感。笔者也从中收获颇多,真正地形成“教学相长,师生共进”的教学氛围。


2.3 波函数和电子云可视化

波函数不但决定电子在空间的概率密度分布,而且还规定了它所描述状态下微观体系的各种性质。在结构化学教学中,波函数的性质既是教学的一个重点,也是教学的难点。波函数图形可以方便直观地展示波函数性质,进而帮助学生理解微观粒子运动规律[12]。目前大多数结构化学课程中多是通过专业科学软件如MATLAB、3DMax、GaussView等实现的,这些软件多是商业软件非自由共享而且学习困难操作复杂;相关波函数预先封装仅由学生简单机械传参调用,因而交互性能较差。


Python的SymPy及SciPy库中内嵌很多数学物理常用函数,比如单电子原子波函数Psi_nlm、径向波函数R_nl、球谐波函数Ynm,连带勒让德多项式assoc_legendre等等。我们可以非常方便的调用,如图4所示一行代码就能够列示出任何高阶量子态(n = 6,l = 5,m = 4)的各种波函数。调用内嵌函数时传递参数与结构化学的规定有不少差异,使用中应该认真阅读相应的应用程序编程接口(Application Programming Interface,API)文档。实际教学过程中教师也可以引导学生阅读程序库原码,既加深了相关波函数性质的理解,还能培养学生的科学编程能力。波函数图像虽然也能通过SymPy中的绘图函数plot绘制,但是渲染显示效果较为粗糙故并不推荐使用,重要地是其交互效果不佳,只能做简单应用。


Python能够成为当前最流行的编程语言很大一部分原因就在于其在数据分析和可视化中的强大应用。借助于“Python数据分析四板斧”Matplotlib、NumPy、SciPy、Pandas程序库,我们能实现单电子原子电子云空间分布的可视化,还能够从不同角度直观地揭示各种电子云空间几率分布的规律,并且编码可视化非常便于学生通过修改代码参数交互式分析函数图像。如图5所示,通过for循环结构列示出各种量子态下的径向概率分布曲线对比图,学生很容易得出原子轨道随着主量子数增加离核越远,图中有(n - l)个极大值峰和(n - l - 1)个节面,主峰位置随着l增加而向核移近等结论。另外,现有教材通常仅提供了s、p、d、f轨道角度几率分布图,由电子能级填充规律可知第一个填充g轨道的元素原子序数应该为121,因此目前发现的元素没有占用g轨道的,其波函数图像很难找到。如图6所示仅仅修改角量子数(l = 4)便可预测出g轨道角度几率分布图,较容易地总结出g轨道具有节面数等于角量子数l、共9个简并轨道可容纳18电子等特征,有效地扩展学生的知识边界。对于原子轨道空间分布来说,传统教材使用较为单一的二维截面等值线图来表示,而Jupyter可以选用渲染效果更加炫丽的热力图来增加课程的趣味性,让学生搭配色彩多样的colormap可以自主地体会到科学之美(见图7)。而且可视化的编码实现方式多样,限于篇幅的原因,笔者在补充材料中贴出相应的代码。借助于Python强大的数据可视化功能,Jupyter能够灵活地输出各种各样的波函数、电子云密度概率分布图,还能鼓励学生自主地运用Python数据分析手段获取单电子原子电子轨道的结构特征,而不是传统课程中“讲授为主”的教学手段,有效地增强课程互动性提高教学效果。


3 教学反思

是化学课还是编程课?运用Jupyter交互式平台首先要解决好这一问题。如同PPT一样Jupyter应当永远作为传递信息流的基本工具。结构化学主要从原子、分子和晶体等微观结构领域揭示物质结构和性质之间的关系,其概念复杂抽象而且一般学校很难开展微观实验进行验证,这些知识理论难以有效传达给学生才是我们应用Jupyter这一新兴平台的根本原因。通常结构化学教学内容在本科生和研究生阶段均有涉及,我们在教学过程中应该有针对性地讲授编码过程。Jupyter单元格模式能够让教师方便地编辑修改内容而不影响整个文档。对于本科生课程教学,教师可以屏蔽代码只保留传参接口便于学生修改数值创建所需要的图形形成交互体验;而对于研究生课程则可以鼓励他们创建不同的编码和计算过程,编辑自己的ipynb文档并将其应用于自身的研究工作中。很可喜的是看到学生通过本课程的学习能够用Matplotlib或Seaborn替代Origin、Graphpad等软件处理实验数据,绘制论文图表。


结构化学已经很难了,竟然还要编程?这是课程开始时不少学生发出的感叹。其实本校本科生在大一时学习过Python程序设计,Jupyter的应用已经有了前期基础,课程中教师简单介绍所应用程序库的使用即可,而且相关程序库API非常详细且方便查阅,表1中列示Jupyter教学平台中常用的Python程序库及API文档网址。作为医药背景的高校学生将程序设计应用于专业课程学习的范例还不多,很难应用编程去解决实际问题。而应用Jupyter交互式平台进行结构化学教学很好地改善了这一困局,能够让学生深刻体会程序语言在化学学习及相关科学研究中的应用,深化所学,做到学以致用。在大数据和人工智能飞速发展的今天,大学生也应该了解并掌握编程知识。事实上就学生反馈而言,这样的教学形式能够很好地激发学习积极性,培养学生的多学科综合应用能力,带来“真香”体验。当然,在现今教育改革中教学课时被进一步压缩背景下,结构化学课程中引入Jupyter交互平台一定程度上带来教学时间紧张的问题。教师可以提前录制课程先导视频并上传教学资料到在线学习网站,通过“线上线下结合”的方式减少学生对于Jupyter平台的使用障碍。此外教师还可借助主题研讨课、开放实验等教学形式深化Jupyter交互平台的学习与应用,有效地解决这一问题。


4 结语

将Jupyter交互平台应用于结构化学教学中本质上是利用Python编程解决数学推导、抽象概念可视化等结构化学教学中的痛点。当今化学等相关学科的发展早已摆脱了早期定性“练金术”思维,而是强调数理理论引入让化学有章可循、有理可依,这也是结构化学学科发展的背景。我们可以将Jupyter看成“PPT+科学计算+数据可视化”三合一的综合平台,运用其能够巩固基本理论和原理并精细地分析典型结构,有效地阐述结构化学中结构决定性质、性质反映结构的基本特点。正如二三十年前PPT替代黑板成为主要教学平台,结构化学教学应该主动拥抱新兴技术手段,有理由相信Jupyter交互平台能够在结构化学及相关教学活动中发挥巨大作用。


参考文献


[1] 周公度, 段连运. 结构化学基础. 第5版. 北京: 北京大学出版社, 2017: 3–4.

[2] 孙宏伟, 陈兰. 大学化学, 2021, <i>36 </i>(1), 2008056.

[3] Jupyter官方网站. [2022-03-23]. http://jupyter.org/

[4] Weiss, C. J.<i> J. Chem. Educ. </i>2021, <i>98 </i>(2), 489.

[5] Cruzeiro, V. D.; Gao, X.; Keilman, V. D. <i>J. Chem. Educ.</i> 2019, <i>96 </i>(8), 1663.

[6] Srnec, M. N.; Upadhyay, S.; Madura, J. D.<i> J. Chem. Educ. </i>2016, <i>93 </i>(12), 2106.

[7] Lafuente, D.; Cohen, B.; Fiorini, G.; Garcia, A. A.; Bringas, M.; Morzan, E.; Onna, D. <i>J. Chem. Educ. </i>2021,<i> 98 </i>(9), 2892.

[8] 王丹. 大学化学, 2020, <i>35 </i>(9), 173.

[9] 麦松威, 周公度, 李伟基. 高等无机结构化学. 第2版. 北京: 北京大学出版社, 2006: 107–108.

[10] 侯成. 大学化学, 2021, <i>36 </i>(2), 2003046.

[11] 邓晓军, 李晨, 何炜, 秦向阳. 化学教育(中英文), 2015, <i>36 </i>(24), 63.

[12] 孙宏伟, 陈兰. 大学化学, 2019, <i>34 </i>(7), 100.


相关文章
100%安全可靠
7X18小时在线支持
支付宝特邀商家
不成功全额退款