计算,让你更懂物理
最初的物理学主要包括理论物理和实验物理,而计算物理是随着计算机技术和算法发展产生的交叉学科。实验物理靠“手”,理论物理靠“脑”;相比之下,计算物理对仪器设备、动手能力的要求没有实验物理高,对思维水平的要求没有理论物理高,很多时候借助高等数学和大学物理知识,通过程序编写就可以处理很多理论、实验物理都不好处理的问题,可以让我们对问题有更多的理解。程序的编写只需要计算机、个人的耐心和细心,逐渐积累经验即可。
和理论物理不同,计算物理最大的优势在于解法的通用性。下面的举例是由弹簧连接的滑块问题:如果是理想弹簧而且地面的摩擦力可以忽略,滑块的运动方程是有解析解的;如果考虑地面的摩擦力,虽然解析解仍存在,但求解有一定难度;如果再引入周期驱动力、电场力、磁场力等,方程几乎不可能有解析解。如果用计算物理的方法,虽然也找不到解析表达式,但是数值解在这些问题上的处理几乎一样。可以说,会求理想弹簧的情况,就可以求出后面的各种复杂情况。

借助数值方法和程序编写,我们可以解决大学数学、物理很多常见的问题,比如定积分的计算、方程或者方程组的求解、微分方程、求极值等;通过图像反映现象,帮助我们思考原理,也让我们的学习和科研实践变得更加生动有趣。当然计算物理也不是简单的差分算法+for循环,如何提高速度和精度,也有前辈们让人叹为观止的操作。
在后面的内容中,我们以Octave作为编程工具,讲解初值问题、边值问题、随机问题的基本处理,实现从低维到高维、从单体到多体的过渡,结合第一原理方法展示材料计算的相关案例,希望对统计物理、固体物理的学习也有一定的帮助。