二重振り子 — 初期値への鋭敏さ
腕の先にもう一本腕を吊るす。上の腕の角度 a1、下の腕の角度 a2 の二つだけで姿勢が決まる。この二角度を運動方程式で進めると、振り方が周期に収まらず、二度と同じ軌道を描かない。
二重振り子。支点に吊った腕の先にもう一本の腕を吊った系で、状態は二つの角度 a1, a2 とその角速度 v1, v2 の四つ。各角の角加速度は両方の角度・角速度が絡む連立式で決まり、解析的に解けない。一本の振り子は小振幅なら単振動に収まるが、腕が一本増えるだけで非線形項が効き、カオス系の標準例になる。
下の腕の先 tip の位置は a1, a2 から三角関数で出る。角加速度 acc1, acc2 を連立式で計算し、角速度を足して角度を進める。一回の刻みを大きく取ると式が発散するので、DT を小さく刻んで毎フレーム数回まわす。
腕が振れて、下の先が同じ道を二度と通らずに揺れ回る。半透明の paper を毎フレーム上から塗っているので、腕の残像が薄く尾を引く。denom の 3 - cos(2a1-2a2) がゼロに近づくと角加速度が跳ねるので、DT を小さく刻んで SUBSTEPS 回まわし、一回ぶんの角度変化を小さく抑えている。
同じ式の振り子をもう一本、a2 だけ 0.001 ずらして重ねる。最初は二本がぴたりと重なって動く。
二本が重なって一本に見える時間がしばらく続き、ある瞬間から急に離れて、片方が上に跳ねたとき片方は下に垂れる。初期の差は 0.001 しかないのに、進めるほど差が拡大して別の軌道になる。
初期値への鋭敏な依存(カオスの定義の一つ)。近い二つの初期値の差が時間とともに指数的に広がる性質。差が e 倍になる速さがリアプノフ指数で、正なら系はカオス。差が小さいうちは指数の肩がまだ小さく二本は揃って見えるが、肩がある大きさを越えると一気に分かれる。初期値を完全に測れない限り長期の予測ができない、というのがこの系の含意。
初期値をわずかずつ変えた振り子を何本も重ね、腕を消して下の先の点だけを打つ。最初は一点に固まり、進むと一本の弧に伸び、その先で画面に散る。
28 個の点が一塊から動きだし、最初の一秒は団子のまま揺れ、そこから先頭と後尾がほどけて弧に伸び、最後は支点のまわり全域にばらける。初期値の差 0.0004 刻みの並びが、進むほど引き伸ばされて軌道全体を埋める。