谢文法 张乐天 刘士浩
摘 要 電动力学是研究电磁场基本规律的理论课程,不仅是理解电磁现象的基础,而且为电子技术和通信工程等应用领域提供了理论支持;但电动力学理论中的抽象概念难以直观理解,数学计算尤其是矢量计算较为复杂。本文探究Python编程语言的可视化技术在电动力学教学中的应用,通过编程计算模拟可视化抽象的电动力学概念和结论,如偶极子辐射、运动点电荷的场等,让学生能直观观察电磁场的变化规律,提升学生对电磁场概念的理解与应用能力,激发学生对电动力学学习的兴趣。
关键词 Python;可视化;电动力学;电磁场
电磁场是物质世界的重要组成部分之一,在生产实践和科学技术领域内,存在着大量和电磁场有关的问题,例如电力系统、凝聚态物理、光波导与光子晶体、等离子体、天体物理、粒子加速器等,都涉及不少宏观电磁场的理论问题[1]。电动力学是研究电磁场基本规律的理论课程,是大学物理专业及相关专业的核心课程,在通信、显示、集成电路等领域具有实际的应用。电动力学以麦克斯韦方程组为核心理论框架,在数学上具有优美、协变的形式,但数学计算尤其是矢量计算较为复杂,且电磁场概念本身比较抽象,学生往往难以将其与具体实际应用场景相结合,导致对电磁现象的直观理解不够充分。
近年来,利用Matlab的数值计算能力和绘图动画功能,许多教学人员将其应用到电磁场的可视化辅助教学中[2-7],但多数的研究仅局限于结果的可视化模拟,对于具体参数对电磁场分布的影响未作深入的探讨。此外,Matlab是一种商业软件,需要购买许可证才能使用,这也限制了其在教学中的广泛应用。
Python作为一种开源的编程语言,可以在不支付额外费用的情况下自由使用,是一种易于学习和使用的编程语言,拥有NumPy、SciPy、Pandas等强大的科学计算和数据分析库,以及Matplotlib、Seaborn、Plotly等丰富的可视化库,可以生成精美的图表和动画,直观地展示复杂现象和抽象概念。近年,有教学人员将其应用到力学和物理实验的可视化模拟[8,9],显示了Python编程在物理教学上的应用潜力。但相比而言,基于Python可视化技术在电动力学教学上的应用研究相对较少。
电磁场是电动力学的主要研究对象,点电荷、偶极子是电动力学中最基本和最重要的概念,是电磁场分布理解复杂电磁场的基础。本文基于Python编程语言,利用场的可视化常用的函数,如:contour函数绘制电势,streamplot函数绘制矢量场流线图,实现了点电荷、偶极子的电磁场的可视化分析,讨论了具体的参数(如点电荷的运动速度等)对电磁场的影响。该结果不仅有助于学生对电磁场概念的理解和掌握,也为复杂电磁场的计算和可视化呈现以及Python在教学上的应用提供了有益的参考。
1 结果与讨论
1.1 运动点电荷的电场和磁场
一个运动的点电荷的电场和磁场可以通过李纳维谢尔势进行计算[1]
其中, 是在推迟时间时电荷的速度,r 是从推迟位置到场点的矢量。因此,对于匀速运动的点电荷,其电场和磁场分别为[10]
第一个实际上即为库仑定律,第二个是“点电荷的毕奥萨伐尔定律”。
以上运动电荷电场和磁场的表达式比较抽象,对运动速度接近光速的点电荷的场分布缺乏感性认识。假设正点电荷沿x 轴正方向匀速运动,借助Python编程,如图1所示,我们得到了高速匀速运动的正点电荷所对应的电场和磁场分布图。
由图可以看出,匀速运动的点电荷的电场E是沿着^r 的,但不同于静止的点电荷,电场的分布不再具有球对称。从运动电荷前方观察,B 的磁场线逆时针环绕着这个电荷,和无穷长直导线的磁场类似,而我们知道静止的点电荷是不产生磁场的。可视化模拟计算结果给学生深刻的感性认识,有助于对抽象的物理公式的理解。
1.2 纯粹的偶极子和物理的偶极子的比较
参考文献
[1] 郭硕鸿. 电动力学[M]. 3版. 北京:高等教育出版社,2008.
[2] 李佳伟,王婕,张中月,等. MATLAB在电动力学教学中的应用研究[J].物理通报,2017(6):15-19,23.
LI J W, WANG J, ZHANG Z Y, et al. Research on the applicationof MATLAB in the teaching of electrodynamics[J]. Physics Bulletin, 2017(6): 15-19, 23. (in Chinese)
[3] 贺梦冬,陈葛锐,刘凌虹,等. 电动力学课程的MATLAB辅助教学探索与实践[J]. 物理通报,2021(1):11-14.
MENG H D, CHEN G L, LIU L H, et al. Exploration andpractice on MATLAB aided teaching in electrodynamicscourse[J]. Physics Bulletin, 2021(1): 11-14. (in Chinese)
[4] 唐军杰,王爱军,赵昆,等. MATLAB在电磁场可视化教学中的应用[J]. 物理与工程,2013,23(1):42-45,56.
TANG J J, WANG A J, ZHAO K, et al. Application ofMATLAB in visual teaching of electromagnetic field[J].Physics and Engineering, 2013, 23(1): 42-45, 56. (in Chinese)
[5] 汪可馨. 基于MATLAB的矩形载流线框磁场分布特征的仿真分析[J]. 物理与工程,2016,26(6):106-111,116.
WANG K X. The simulation analysis of the magnetic-fieldproduced by rectangular coil based on MATLAB[J]. Physicsand Engineering, 2016, 26(6): 106-111, 116. (in Chinese)
[6] 周群益,莫云飛,周丽丽,等. 电场的MATLAB可视化方法[J]. 物理通报,2022(2):18-24.
ZHOU Q Y, MO Y F, ZHOU L L, et al. MATLAB visualizationmethod of electric field[J]. Physics Bulletin, 2022(2):18-24. (in Chinese)
[7] 周鑫,李江珊,吴明和,等. 载流螺线环磁场的MATLAB仿真[J]. 物理通报,2019(1):40-42,48.
ZHOU X, LI J S, WU M H, et al. MATLAB simulationon magnetic field in current-carrying spiral ring[J]. PhysicsBulletin, 2019(1): 40-42, 48. (in Chinese)
[8] 马淑红,侯振,焦照勇,等. 基于Python的科里奥利力对物体运动影响的可视化模拟[J]. 物理与工程,2023,33(2):81-87.
MA S H, HOU Z, JIAO Z Y, et al. Visualizing the corioliseffect on moving objects by numerical simulation based onpython[J]. Physics and Engineering, 2023,33(2): 81-87.(in Chinese)
[9] 宋碧雄,胡海云. 大学物理中Python的应用[J]. 物理与工程,2019,29(S1):64-68.
SONG B X, HU H Y. The application of python in universityphysics[J]. Physics and Engineering, 2019, 29(S1):64-68. (in Chinese)
[10] DAVID J. GRIFFITHS. 电动力学导论[M]. 3版. 贾瑜,胡行,孙强,译. 北京:机械工业出版社,2013.