Linux 上的开源物理学

作者:Joey Bernard

我之前的几篇文章介绍了许多用于科学研究的软件。但是,我尚未详细介绍的一个重要领域是为下一代计算科学家提供教学资源的可用性。为了填补这个空白,您可以使用通过 开源物理项目 提供的代码。该项目由美国物理教师协会 (AAPT) 和国家科学基金会 (NSF) 支持,并提供多个不同的软件包用于进行模拟和分析。

开源物理学提供的第一件事是整套 Java 应用程序,用于模拟不同的物理系统。由于这些模拟都是用 Java 编写的,因此它们可以在 Linux 以外的操作系统上运行。涵盖的类别包括天文学、电磁学、经典力学、量子力学、光学和相对论。在主网站上,您可以进行特定搜索或按主题浏览以查找模拟。模拟程序打包为 .jar 文件,因此您可以下载它们并通过键入以下内容简单地运行它们


java -jar filename.jar

这使您可以在桌面上运行模拟。但是,由于这些是 Java 程序,您可以将它们放在网站上并在浏览器中运行它们。这意味着您可以将它们包含在您的科学网站上,并向访问者展示您可能试图解释的系统的模拟。

图 1. 例如,启动滑下斜面的模拟也会弹出一些介绍性材料。

开源物理学提供的一些模拟具有您可以更改的参数,以更改模拟的运行时详细信息。这些参数可能是质量、速度或场强等项目。如果您使用的模拟确实具有可设置的参数,则会有一个选项将模型详细信息保存到数据文件中。您可以通过单击“文件→保存模型”来执行此操作。数据文件是一个 XML 文件,因此如果您想直接使用文本编辑器编辑该文件,它应该相对清晰。然后,您可以通过单击“文件→加载模块”在模拟中重新加载这些参数。这样,您可以通过共享 XML 数据文件与其他人共享您开发的模型。

图 2. 保存运行以便与其他人共享

一旦您超越了预先打包的模拟所涵盖的材料,您可能想看看您还可以建模和分析哪些其他系统。开源物理学提供了一个名为 Easy Java Simulations (EJS) 的系统来做到这一点。这个 Java 程序提供了一个友好且简单的界面,允许您进行原型设计、测试和分发您自己的模拟。EJS 非常适合教育场景,因为它允许进行相对复杂的模拟,而无需掌握大量的编程知识。

EJS 比我上面提到的单个模拟程序更大,因此您需要下载一个 zip 文件,而不是仅仅一个 jar 文件。下载 zip 文件后,您需要在您的机器上解压缩它。然后您可以导航到您解压缩的目录并执行


java -jar EjsConsole.jar

这将弹出一个控制台窗口,您可以在其中设置一些初始化参数并启动一个或多个 EJS 实例。这将打开一个建模和创作工具,您可以在其中定义您的物理系统以及您尝试建模的详细信息。您可以从创作工具中运行这些模型,因此您可以尝试一些操作并查看您是否获得了预期的结果。一旦您对模拟感到满意,创作工具就会提供选项,允许您将整个模拟打包成一个您可以与他人共享的单个捆绑包。当您为课堂开发代码时,这非常棒,因为您可以为您想要教授的确切物理系统定义模拟,然后将其打包供您的学生使用。

图 3. EJS 控制台允许您定义自己的模拟。

开源物理学旨在帮助教学的各个方面,为此,它提供了一个名为 Launcher 的程序。Launcher 是一个中央程序,提供对一系列模拟以及支持文档和教学笔记的访问。您可以单击课程链接并搜索涵盖特定主题的集合。就像单个模拟一样,您可以搜索特定项目或浏览已准备好课程启动器的主题列表。但是,您不限于这些。您可以使用 LaunchBuilder 创建您自己的集合。此实用程序允许您定义要捆绑在一起的材料,然后它将输出一个您可以分发的 jar 文件。实际的材料列表存储为 XML 文件,因此如果您想在实际生成可分发文件之前改进任何条目,可以使用文本编辑器打开它。

图 4. Data Tool 帮助您对数据进行基本统计。

当您准备好更进一步时,开源物理学项目提供了一个基于 Eclipse IDE 的完整编程环境。此 IDE 包括模拟和 EJS 代码中使用的开源物理库。这样,您可以更进一步开发自己的程序,而无需在常见任务方面重新发明轮子。提供了大量文档,包括两本即将出版的书籍的几章,书名为开源物理学:用户指南与示例计算机模拟方法导论

开源物理学项目还提供了另外两个工具:Data Tool 和 Tracker。首先,让我们看看 Data Tool。Data Tool 提供绘图和数据拟合功能,以帮助您分析实验数据。您可以通过在主屏幕上选择参数来交互式地更改绘图的外观。加载数据后,Data Tool 还可以对数据集进行基本统计。因此,您可以快速获得诸如平均值、中位数和标准差之类的项目。绘制数据后,您可以获得图中曲线下的斜率和面积。通常,您收集数据是为了尝试证明输入和输出之间存在某种关系。为了验证这一点,您尝试将某个函数拟合到您的数据。Data Tool 提供了许多预定义的函数,您可以要求它尝试拟合。或者,您可以使用 Fit Builder 定义您自己的函数以用于拟合例程。您可能还会发现,在绘图或尝试拟合之前,您需要按摩您的数据。这可能涉及对您的数据应用不同类型的数学变换。在常规数据分析中,这将是您在导入数据之前要处理的步骤,但 Data Tool 提供了一个名为 Data Builder 的函数,允许您在此处执行此操作。

这里要看的最后一个工具是 Tracker。Tracker 可以通过使用开源物理库中的功能进行图像和视频分析。Tracker 能够进行视频中的物体跟踪,为您提供位置、速度和加速度。它可以提供叠加层和图表、特效滤镜、多个参考系和校准点。它甚至可以用于分析光谱和干涉图样,使您能够分析实验室测量结果。例如,您可以将简单的动态粒子模型叠加在视频剪辑之上。这允许您拍摄实验视频,然后使用它来进行测量和分析。网络上有几个示例,人们已使用它来建模各种事件,包括建模愤怒的小鸟的物理学。快速的 Google 搜索将让您大开眼界,了解什么是可能的。

图 5. Tracker 使用物体跟踪处理视频分析。

这篇短文仅触及了可用内容的表面。如果您正在教授物理学或学习物理学,那么探索开源物理学项目绝对值得您花时间。

加载 Disqus 评论