计算物理学到底是干什么的?
计算物理学家是实验物理学家、理论物理学家还是程序员?
我想请每个人思考以下问题:当你用计算机解决某个问题时(我称这个过程为数值计算),这是实验方法还是理论方法?或者两者都没有?这个问题很常见。当和不同领域的科学家聊天和喝啤酒时,他们经常被问到。我认为这个话题对帮助每个人理解科学的本质非常重要。
科学的本质
如果我们对科学的基本理解是一致的,那么我们可以讨论计算科学的作用。首先,让我简单介绍一下科学:
科学的本质:科学归根结底是一个模型。我们观察了现实生活中的一个现象,并试图为它建立一个模型。我们可以用这个模型来预测现实生活中未来(新)的事件。如果该模型与实际数据不一致,我们将对模型进行修正。很多次了。
好的,但是现在我需要定义什么是模型。这并不太难。模型可以是任何用来描述现实生活的东西(但不是现实生活本身)。以下是一些科学模型:
一块变形虫粘土。
当滑块沿着桌面滑动时,一个图表显示了这个过程中的能量转移。
力会改变物体速度的观点。
描述两个物体之间吸引力的方程式。
描述弹簧中粒子运动的微分方程。
顺便说一下,当空气阻力存在时,计算棒球状态的计算机程序也是一个模型。
因此,模型是多种多样的。它不一定是数学模型——但数学模型在科学领域是最常见的。我希望每个人都不反对我的评论。
关于科学本质的最后一点如下。建立模型的过程是理论物理。将模型与现实世界进行比较是实验物理。科学家可以同时进行理论物理和实验物理的研究——但对于大型项目(如高能物理),人们倾向于关注一个方面,要么建立模型,要么测试模型。
计算物理学家
现在,假设我们要采访一位擅长为各种事物(实际上是任何事物)建立计算模型的物理教授。教授的“实验室”配备了大量的计算机,甚至可能拥有超级强大的计算机集群。
现在我们开始和这位计算物理学家对话。以下是对话中要提到的一些要点。
在科学领域,计算机非常重要。
我们编写并运行输出数据的程序,然后分析数据。
由于计算机程序输出数据,这与实验非常相似,因为实验也产生数据。
但是计算机程序也是理论性的,因为它们是由我们编写的。
计算科学把理论和实验联系起来。它有点像第三种科学(另外两种分别是理论科学和实验科学)。
几乎每个计算科学家都会这么说(但不是全部)。
计算机程序是一个模型
当你写完一个程序,它会返回一些数字给你。此外,在运行程序之前,您真的不知道这些值是什么。然而,这并不意味着这个过程类似于一个真实的实验。归根结底,程序是由人而不是现实世界创造的。当你解一个微分方程时(每个人都会认为这是“理论科学”),你也不知道结果,直到你得到最终的解。没有人会称这个过程为实验。
说到我最喜欢的模特。如果你把一个粒子放在弹簧的末端并稍微偏移它,会发生什么?是的,它来回产生简单的谐波振动。这里有一些建立弹簧质量数值模型的细节,但让我跳到最后一点。下图显示了弹簧上质量运动的两种解决方案——一种通过求解微分方程,另一种通过数值模型(只有一些数据点)。
是的,它看起来像数据,但它不是数据。如果我使数值计算中的步长变小,你可能根本看不到两个理论解之间的区别。下面的数字模型更好。我将其中一个数字稍稍上移,这样它们就不会完全重叠。
这两个模型都给出了非常漂亮的理想结果,所以它们完全一样。
我们应该如何看待计算物理学?
问问你自己,计算机程序是实验性的还是理论性的?它是介于两者之间还是完全不同?如果你同意我之前对科学本质的定义:
理论:建立模型。
实验:测试模型。
那么计算机程序是模型还是测试模型?是的,正确答案是计算机程序是科学中“建模”的一部分。你仍然需要把它和实验结果进行比较来测试这个模型。如果没有真实数据的测试,它可能就像一个电脑游戏。
请不要认为我是在建议人们停止称他们为计算物理学家。建立数字模型相当困难,需要一套独特的技能。然而,对于专门建立数学模型的人来说,这是小菜一碟。我们也有专门从事高能物理实验和理论固态物理的科学家。但是科学仍然是关于建立模型和测试模型。
事实上,我认为过去从事计算技术的科学家已经经历了一场艰难的斗争。其他科学家认为他们不从事“科学研究”。他们只是计算机程序员。证明这些计算方法的合理有效性花了很多时间。现在,几乎每个领域都在某种程度上依赖于数值计算。没有人认为计算机科学家不再重要。鉴于上述情况,我建议我们应该在介绍课程中引入数值计算方法——这些计算工具现在非常容易获得,我们不再有任何借口将它们排除在课程体系之外。学习物理而不教编程就像说,“我们不会用分数来解决任何数学问题。”事情就是这样。我深信不疑。(写作:瑞德?瑞德·阿兰:许立审校:张奕琳
上一篇:“新冠”来了,你的身体在干什么?
下一篇:鼓楼和钟楼是干什么用的