Sparkle

双摆为什么没法预测

你见过那种视频:一个杆子下面挂着一个小球,小球上再挂一根杆子、一个球,轻轻一放,上面那个球开始疯了一样甩,轨迹完全没法提前说。

很多人第一反应是”这玩意儿是不是算不出来,或者里面有个随机东西在作怪”。

不是。

双摆的方程就是牛顿力学,给定它某一时刻两个杆的角度和角速度,未来的运动在数学上是唯一确定的。没有随机项,没有骰子。你把它写进计算机里积分,它确实会算,而且能算到机器精度。

它没法预测的真正原因,是另一回事。

问题不在方程,在初值

两个初始状态几乎一样的双摆,差别只有 0.0001 度——已经很小了——一开始轨迹是重合的。但过不了多久,这两条线就以指数速度岔开:

最终偏差 ≈ 初始偏差 × e^(λt)

λ 叫李雅普诺夫指数,双摆它是正的、不为零。指数意味着误差每隔一小段时间就翻一倍。你测角度的精度就算到 0.01 度,系统也会把你那点误差越滚越大,直到它比整个摆的幅度还大。

到那一步,你算出来的已经不是原来那条轨迹了,而是另一组初值对应的东西。预测从这一刻起就废了。

所以核心机制是指数发散,不是方程写不出来。

为什么初值那点误差躲不掉

不是传感器不够好,是几件事凑到一起:

  • 再精密的测量都有下限,你不可能无限精度地拿到初值。
  • 空气、杆的重心微小偏移、数值积分的舍入误差,全都会喂进同一套放大机制。
  • 这些误差不是”算错了”,是”没测到”,然后被放大到压倒性量级。

换句话说,瓶颈不在算法精度,在初值精度。你把积分器换得更准,预测能可靠的那段时间也不会明显变长。

准确说法:有预测时限,不是永远算不出

“双摆不可预测”这句话容易说过头。更准的版本是:

它只能在有限时间内预测;超过这个时间,误差增长到没有意义。

这个”还能信多久”叫预测视界。双摆通常只有几秒到几十秒,跟摆长、重力、初始摆幅有关。

你完全能精确算它未来 0.1 秒的姿态,机器精度都没问题;但算到 5 秒之后,结果就不可信了。

单摆为什么没这毛病

单摆小角度下近似简谐运动:

θ(t) = θ₀·cos(ωt + φ)

初值偏一点,预测就整体偏一点,不会滚雪球,所以能长期预测。

从单摆到双摆的差别,就是耦合非线性引入了正的李雅普诺夫指数。这是能不能长期预测的分水岭。

两个双摆因0.01°初值差在0.2秒后姿态明显分岔

上图:两条轨迹初始只差 0.01°(0.2 秒物理后姿态已明显分岔)。

▶ 打开交互式双摆模拟(可拖拽设初值)

顺带说一句:解析解到底有没有

有个说法常被拿来当根因——”双摆没有解析解,所以算不出来”。

这句话对了一半,但因果装错了地方。

事实是:单摆小角度有闭式解,双摆(以及绝大多数多自由度非线性系统)没有现成公式,只能数值积分一步步推。这部分没错。

但就算有解析解,也救不了预测:

情况 会发生什么
没有解析解,数值积分 每步有舍入误差,被指数放大
假设有完美解析解 代入的初值仍是有限精度,误差照样被指数放大

所以”没法长期预测”的根因不是算不出来,而是初值误差的指数放大——也就是蝴蝶效应。解析解有没有,只决定计算代价,不决定能不能预测。

最后

混沌不是”不可计算”,是”可计算,但不可长期预测”。

它既不是随机的,也不是算不出来,而是确定性的规律对初值太敏感,在你现实能测到的精度下,超过某个时间点就失去预测力。蝴蝶效应,就是这么个意思。


本文为科普性解释,不构成物理结论保证。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注