绳子上的圆周率:一款用于估算圆周率的仿真 App

2026年 3月 13日

人们经常认为圆周率 π 只是一个存在于圆形和三角函数中的数学概念,但实际上,这个著名的常数经常出现在许多意想不到的地方。在本文中,我们将模拟一个看似不起眼、却能用来估算 π 的装置:单摆。在这熟悉的摆动现象之下,隐藏着数学与物理学之间迷人的联系。我们将通过一个简单的仿真 App 将这一想法付诸实践,让您能轻松地调整不同参数,直观感受“运动中的数学”。

圆周率估算史

纵观历史,多个古代文明曾通过各种几何方法来计算圆周率 。后来,在 17 至 18 世纪,格雷戈里-莱布尼茨(Gregory–Leibniz)和梅钦类(Machin-like)公式等无穷级数的出现,推动了圆周率计算的发展,使得数学家能够手工算出数百位有效数字。

借助现代科技,利用高性能计算机和先进的算法, 圆周率的计算已经达到了惊人的精度。在之前的一篇博客文章中,我们曾讨论过如何利用蒙特卡洛方法估算圆周率。如今,借助快速收敛无穷级数的顶尖计算方法——例如斯里尼瓦瑟·拉马努金(Srinivasa Ramanujan)和楚德诺夫斯基兄弟推导出的那些公式(参考文献 1),我们已经能够计算出 π 的万亿位数字。

单摆

不过,在这篇博客文章中,我们将暂时抛开那些复杂的高科技手段,转而采用一个您在现实生活中就能轻松复现的实验:单摆。所谓的单摆,是由一个被称为“摆球”的重物(理想情况下被视为质点)系在一根绳子(理想情况下被视为无质量)的一端构成的。这样一个单摆完成一次完整往复摆动所需的时间,也就是它的周期 T ,可以用以下公式来表示:

T = 2 \pi \sqrt{\frac{L}{g}}

 

其中, L为摆长, g 为重力加速度。若已知单摆摆动的周期,便可估算出圆周率的数值:

\pi \approx \frac{T}{2} \sqrt{\frac{g}{L}}

 

通过测量单摆摆动的周期,您可以直接通过观测来估算圆周率的值。不过,这个公式是基于简谐运动假设的——这只有在摆角足够小,满足 sin⁡θθ 时才成立。所以该方法最适用于小角度释放的情况。您可能已经注意到,摆动周期明显与摆球的质量无关。然而在现实系统中,绳子具有非零质量,摆球也有一定半径(并非质点)。这意味着,当单摆越接近理想情况时,估算出的 π 值就越精确。也就是说,绳子越轻(接近无质量)、质量越集中在质点般的摆球上、且初始摆动角度越小(<15 度),结果就越准确。 一个由长度为 L 的细绳和半径为 Rb 的摆球组成的单摆,从初始角度 θ 处释放。

构建仿真 App

基于 COMSOL 模型开发的仿真 App 可作为一种预测工具,让您在实际开展实验之前,就能探索摆长、质量等不同设计参数是如何影响结果的。为了构建一个简单的单摆模型,我们将使用 COMSOL 的附加产品 多体动力学模块中的 多体动力学 接口,正如双摆示例模型中所展示的。在该模型中,事件 接口通过一个名为 count离散状态 变量追踪仿真过程中的摆动次数。这个过程分为两个阶段,由两个隐式事件来表示。当摆球在 x 方向的速度变为负值时,count 会增加一个小于 1 的正分数;当 x 方向的速度再次变为正值时,利用向上取整函数将 count 进位到下一个整数。此外,还设置了一个停止条件作为另一个隐式事件,当 count 达到指定的摆动次数时就会触发。一旦仿真终止,将根据总仿真时间 (Tsim) 和摆动次数 (N),通过相应方程计算出圆周率。

\pi \approx \frac{T_{\text{sim}}}{2N} \sqrt{\frac{g}{L}}

 

现在,让我们使用 App 开发器 来创建一个 App,用于估算不同配置下单摆的圆周率数值。借助拖拽式的表单设计功能和用于编写简短代码的方法编辑器,您无需掌握大量的编程知识,就能轻松构建定制化的仿真 App。这款 App 作为一个交互式工具,能够通过计算周期来估算不同摆参数下的圆周率。这种方法在教育场景中尤为实用。例如,教师可以利用该仿真 App 设计尺寸和周期适合课堂演示的单摆,从而帮助学生建立理论预测与实际测量之间的联系。

该仿真 App 的用户界面( UI)。

该 App 包含多个滑块,可用于控制摆长、摆球半径、初始释放角度以及待求解的摆动次数。此外,它还包含一个输入框,可供输入摆球密度与细绳密度之比的数值。

一旦设定好您想要的单摆参数后,点击 绘制单摆 按钮,软件界面就会根据所选数值显示出单摆的外观。接着,您可以点击 计算 按钮开始仿真,在此期间,图形 窗口和能量曲线图会实时更新。求解完成后,界面会显示估算的圆周率数值以及与真实值的误差,以反映本次求解的结果。欢迎在本文下方的评论区分享让您得到圆周率最佳估算值的参数!

该仿真 App 使用过程中的屏幕录制。

在 COMSOL Multiphysics® 软件中使用 App 开发器开发此类应用,可通过调用模板实现,而无需具备丰富的编程经验。通过这种方式,工程师与科研人员能够将理论与仿真紧密结合,让那些不熟悉建模操作的用户也可以便捷地使用他们开发的模型。

下一步

欢迎您点击下方按钮,从仿真案例库中下载包含该仿真 App 设计及相关文件的 MPH 文件!

扩展阅读

若您想了解仿真 App 在现实世界中是如何应用的?请查看如下几个示例:

参考文献

  1. Borwein, J.M. and Borwein, P.B., 2004. Ramanujan and Pi. In Pi: A Source Book (pp. 588-595). New York, NY: Springer New York.

博客分类


评论 (0)

正在加载...
浏览 COMSOL 博客