3 步开始
- 先只选一种方法,用默认输入跑第一遍。
- 同时看近似值、误差、图表和下方采样表,不要只盯着最后一个数字。
- 想复用同一组设置时,可以换示例,或直接复制 URL。
课堂示例:先做快速演示,再比较级数,最后用可复现的蒙特卡洛说明随机波动。
多边形
从内接正六边形的弦长开始,通过边数加倍递推计算半周长。近似值生成不使用已知圆周率,Math.PI只用于误差参考。
近似值—
参考 π—
绝对误差—
相对误差—
一致位数—
输入摘要—
收敛图
红色虚线表示参考 π。把图和下面的采样表一起看,更容易看出不同方法的节奏差异。
采样步骤
| 步骤 | 近似值 | 绝对误差 | 相对误差 |
|---|
四种近似方法的原理
- Polygon
c₆ = 1; c₂ₙ = cₙ / √(2 + √(4 − cₙ²)); πₗₒwₑᵣ = n × cₙ / 2
从内接正六边形的弦长开始,通过边数加倍的递推计算半周长。近似值生成不使用已知圆周率,Math.PI只用于误差参考。- Gregory–Leibniz
π ≈ 4 × Σ (-1)ᵏ / (2k + 1)
结构简单,但上下振荡且收敛非常慢。- Nilakantha
π ≈ 3 + 4/(2·3·4) − 4/(4·5·6) + 4/(6·7·8) − …
在较少项数下通常比Gregory改善更明显。- Monte Carlo
π ≈ 4 × inside / total
用伪随机点估计面积比。固定种子可复现同一组实验。
本页比较收敛行为,而不是相同的计算成本。边数、项数和点数不是等价的工作量;如需比较速度,请使用圆周率算法竞速。
讲义与板书准备
教学提示
- 想先建立几何直觉时,先从多边形开始最自然。
- Gregory 故意很慢,所以能把“收敛”这个概念直观看出来。
- 紧接着看 Nilakantha,学生通常更容易感受到“方法不同,效率就不同”。
- 蒙特卡洛法适合说明另一件事:随机过程也会朝稳定平均值靠近,但轨迹不会很平滑。
常见问题
多边形近似会先用圆周率来计算圆周率吗?
不会。它从内接正六边形的弦长出发,用边数加倍递推计算半周长。Math.PI只用于比较结果误差。
连续匹配小数位是什么意思?
从小数点后第一位开始比较,到首次不同之前为止。整数部分的3不计入。
为什么Gregory–Leibniz级数这么慢?
因为交错项的绝对值下降很慢。公式容易理解,但高精度需要非常多的项。
为什么Nilakantha看起来比Gregory快?
它的项下降得更快,所以相近项数下误差通常更小。不过不同方法的一项并不代表相同运行时间。
为什么蒙特卡洛结果会波动?
它用有限个伪随机点估计面积比。增加点数通常会更稳定,但误差不一定单调下降。
种子是什么?
种子是伪随机序列的初始状态。同一点数和同一种子会得到同一结果,种子0也是独立有效值。
参考圆周率精确到多少位?
页面使用JavaScript Math.PI,受双精度限制。匹配判定最多到小数点后14位,不是任意精度计算。
这能公平比较四种方法的速度吗?
不能。边数、项数和点数的计算量不同。本页用于观察收敛和误差;速度比较请使用圆周率算法竞速。