《Mathematica与大学物理计算(第2版)》以Mathematica为计算工具,研究了一系列物理问题,内容涉及物理学的基础学科,包括力学、电磁学、光学、量子物理、统计物理以及物理实验,对每个物理问题都进行了深入的计算和讨论,所得出的结论有助于加深读者对物理学的理解。书中有大量的程序,涉及各种算法和众多Mathematica函数,可供读者编程模仿。所有程序请到清华大学出版社网站《Mathematica与大学物理计算(第2版)》网页下载。
《Mathematica与大学物理计算(第2版)》可作为大学计算物理课的教材,适合于本科生、研究生、物理教师(包括中学物理教师)、研究人员以及物理爱好者阅读和参考。
目前,物理学的研究大致形成了三种方式: 理论物理、实验物理和计算物理。通常情况下,大学物理课程传授的是前两种方式,第三种方式的教学还没有普遍开展。这种情况正在逐渐改变,原因来自两个方面: 一是三种研究方式趋于综合才能更好地解决物理问题,深入的计算已经不可或缺; 二是计算机已经普及,诸多计算软件已经很成熟,适时将计算物理从选修课升级为物理学专业的必修课已经具备了条件。
本书以Mathematica为计算工具,借助于研究一系列物理问题,试图向读者展示物理计算的方法,如何通过计算更好地理解物理学,计算如何能成为学习物理学的新方式,以及为大学物理教学更好地引入计算手段提供一些方法和素材。通过学习本书,读者可以树立物理计算的概念,确信计算可以解决很多问题,计算的机会无处不在。本书各章内容分述如下。
第1、2章着重介绍了Mathematica的语法、函数和一些典型数学问题的求解方法,为读者认识该软件的特点和用法打好基础。在随后的各章中按照物理学的领域分别研究了摆动、振动、电学、磁学、光学、量子、随机运动以及物理实验方面的一些问题,表明这些方面是如何借助于计算软件的帮助而展开和深入下去的,为读者打开更广泛的视野。
第3章详细研究了单摆问题,这个模型作为一个内涵丰富的“道具”,可以为读者从问题的提出、模型建立到Mathematica函数使用和计算结果的分析与表达,树立范本。结合单摆的研究,还就计算误差的发现方法和减小措施进行了探讨,这是做好数值计算必须要了解的。在考虑了地球自转效应之后,单摆就成了傅科摆,该章对傅科摆进行了详细的分析和仿真,让读者体会物理模型从过于理想化到接近真实的演变过程。
第4章研究了受迫振动问题和一维振动链问题,通过解析分析和数值计算相结合的方式充分展示了受迫振动的特点,以及多体振动会出现“合作运动”的现象,说明对耦合问题的分析应该着眼于“合作运动”模式的探寻而不是单个个体的运动,后者已经退居次要地位,而探寻“合作模式”的有效工具是FFT。
第5章重点研究了一些情形下的静电场计算和描绘问题,以电聚焦问题为例,介绍静电场计算的数值方法,包括各种经典迭代方法,以及如何利用Mathematica的插值功能将数值计算的结果延拓成连续的函数,从而可以计算电子的运动,揭示电极聚焦的可能性。该章还简单研究了两个“动电”即电路问题,其方法和结果都有借鉴价值。
第6章研究了若干情形下磁场的数值计算和磁场的描绘,详细讨论了能捕获原子的磁阱、长直螺线管、椭球螺线管以及三相输电线路截面上的磁场分布,这些结果既有学术价值也对实际使用磁场有参考作用。该章的另一个部分是研究了带电粒子在磁场里的运动,包括动量谱仪的设计和粒子的运动、同步加速器中对粒子轨道的约束以及磁镜对粒子的约束,这为读者了解更多的磁场类型和使用会有启发。
第7章借助于光线方程,研究了光线在光纤里的传播,介绍了折射率跃变界面上光线追迹的理论,由此讨论了光线经过透镜的传播问题,形象地解释了像差的形成,并由此探讨了组合透镜消色差的问题,这些结果具有重要的教学和应用价值。本章还详细研究了棱镜实验的模拟分析,以及如何从光路计算的角度求解传统几何光学中一些题目的问题,也很有启发性。本章最后模拟了光的衍射,包括随机分布孔的衍射。
第8章讨论了量子态的叠加导致新能级的形成和微扰计算的有效性问题,重点发展了一维散射问题“倒算法”和一维本征值问题“初值解法”的理论,导出了诸如共振隧道穿透问题以及复杂势函数模型下本征值问题计算的一般方法,并以此证明了周期性势场中粒子能级会分裂成能带。该章很有特色,可以为读者学习量子力学提供借鉴。
第9章介绍了概率和统计分析的概念与计算方法,为读者进行随机运动的计算奠定基础,接着模拟了气体分子的碰撞过程和趋向热平衡的问题,所设计的算法成功地将器壁对气体分子动量分布的影响考虑进来,推进了对碰撞问题的认识。该章还模拟了布朗运动和树叶的摆动,所得到的结论也很有启发性。
第10章通过深入计算,重点研究了实验误差分析如何指导选取合适的实验方法和实验条件,从而提高实验精度的问题,大大超越了传统误差教学仅在实验之后去计算误差的做法。
本书在众多物理问题的研究中,大量使用了Mathematica的函数,以及各种算法和技巧,并编写了大量的程序,可以供读者学习和模仿。书中相关程序请到清华大学出版社网站下载(网址: www.tup.com.cn,搜索本书书名网页)。选用本书作为计算物理教材和参考书的大学生、研究生、物理教师(包括中学物理教师)、科研人员,以及物理爱好者们,若能从书中汲取一些有益的营养,作者就非常欣慰了。
我要感谢本书所引用文献的作者们,他们在不同的方面给予了本人帮助和启发。特别要感谢的是Mathematica的研制者们,本书如果有某些成就,也有他们的一份贡献。写作过程中得到夫人崔秀芝的悉心照料,她同时也修正了原稿中那些不当的用词和疏漏之处。
本书的编写得到清华大学出版社编审人员的指导,在此一并致以衷心感谢!
读者在使用本书时若遇到问题,可以通过邮箱qfdongjian@163.com与作者联系,欢迎交流。在第1版发行期间,我收到了大量读者的来信,有学生,也有老师,所提出的问题各种各样,这是促使作者尽快重写此书的动力之一。在此,再次希望你们批评指正,以共同推动计算物理教学和研究的发展。
董键
2013年4月
第1章 初识Mathematica
1.1 Mathematica的窗口功能
1.2 Mathematica的变量与函数
1.3 Mathematica的程序输入、保存与运行
1.4 Mathematica的表型数据
1.5 表型数据的操作函数
1.5.1 造表函数
1.5.2 列表元素的操作函数
1.5.3 列表的整体操作函数
1.6 列表的运算
1.6.1 矢量运算
1.6.2 列表的代数运算
1.7 程序结构
1.7.1 分支结构
1.7.2 循环结构
第1章 初识Mathematica
1.1 Mathematica的窗口功能
1.2 Mathematica的变量与函数
1.3 Mathematica的程序输入、保存与运行
1.4 Mathematica的表型数据
1.5 表型数据的操作函数
1.5.1 造表函数
1.5.2 列表元素的操作函数
1.5.3 列表的整体操作函数
1.6 列表的运算
1.6.1 矢量运算
1.6.2 列表的代数运算
1.7 程序结构
1.7.1 分支结构
1.7.2 循环结构
1.7.3 模块结构
第2章 函数与算法
2.1 语法和函数
2.1.1 常数、括号和运算符
2.1.2 基本函数
2.1.3 数值函数
2.1.4 复数函数
2.1.5 整数函数
2.1.6 随机函数
2.1.7 代数运算函数
2.1.8 微积分函数
2.1.9 表达式化简函数
2.1.10 绘图函数
2.2 模式系统
2.2.1 两种赋值方式
2.2.2 延迟替换与立即替换
2.2.3 模式系统
2.2.4 模式匹配函数
2.3 分类算法
2.3.1 求解代数超越方程(组)
2.3.2 求函数的极值
2.3.3 求解线性方程组——严格解
2.3.4 求解线性方程组——近似解
2.3.5 求解常微分方程——初值问题
2.3.6 求解常微分方程——边值问题
2.3.7 求解偏微分方程
2.3.8 求解本征值问题
第3章 单摆
3.1 单摆运动方程与数值解
3.1.1 方程的推导与分析
3.1.2 单摆方程的数值解
3.1.3 振幅、周期和相位
3.1.4 角振幅与周期的关系
3.1.5 单摆振动与正弦振动的差别
3.2 阻尼摆
3.2.1 运动方程、数值解与相图
3.2.2 周期与时间的关系
3.3 计算误差
3.3.1 发现误差
3.3.2 减小误差的方法——增加有效位数
3.3.3 减小误差的方法——减小差分步长
3.3.4 在快速变动的地方误差大
3.4 傅科摆
3.4.1 地球自转与傅科摆
3.4.2 傅科摆的力学分析
3.4.3 傅科摆运动的数值模拟
3.4.4 傅科摆模拟的其他问题
本章附录:无阻尼单摆周期的准确表达式
第4章 振动与快速傅里叶变换
4.1 受迫振动——数值模拟
4.1.1 受迫振动实验系统
4.1.2 调试参数
4.1.3 演示共振
4.1.4 色散曲线
……
第5章 电
第6章 磁
第7章 光
第8章 量子
第9章 概率与随机运动
第10章 实验
附录A 编程与调试
附录B Mathematica的补充介绍