二重振り子シミュレーターベータ

わずかに違う振り子数百個が散らばるカオスを観察

このツールはまだ安定化中のベータ版です。結果に違和感があればお知らせください。

振り子の数

シミュレーションエンジン(WebAssembly)を読み込み中…

おもりをドラッグして開始角度を決めます。振り子が多いと最初は一つのように動き、ある瞬間に散らばります。

二重振り子シミュレーターについて

このシミュレーターは二重振り子を1本ではなく、最大1,000本同時に計算します。全員が同じ θ₁ から出発し、i 番目の振り子だけ下の腕の角度 θ₂ に i ×(初期角度の差)を足してあります。初期値は100本、θ₁ = 126°、θ₂ = 149°、差 10⁻⁶ rad。いちばん離れた2本でも約 10⁻⁴ rad(0.006°)しか違わないので、最初の数秒は1本の太い線に見えます。

運動方程式は、質量のない棒の先に質点がついた二重振り子の標準的なラグランジュ方程式です。1フレーム(1/60秒)を8回の4次ルンゲ=クッタ法(RK4)で積分します。摩擦がないのでエネルギーのグラフはほぼ水平のはずで、エンジンのテストでも100秒間の変化が0.01%未満であることを確認しています。一方、ばらつき(下のおもりの x 座標の標準偏差、単位 m)はある瞬間に急上昇します。保存されるエネルギーと爆発するばらつき、この対比がこのページの見どころです。

観察1:精度を1000倍にすると何秒延びるか

初期角度の差を −3、−6、−9、−12 と変えて再スタートしてみましょう。同じ方程式で振り子2本だけを計算し、下のおもりの x 座標が10cm以上離れる時刻を調べると、差 10⁻³ rad で約4.3秒、10⁻⁶ で7.3秒、10⁻⁹ で10.3秒、10⁻¹² で14.7秒でした。

初期誤差を1000分の1にするたびに延びるのは約3秒で、ほぼ一定です。誤差が e^{λt} で指数関数的に増えている証拠で、ln(1000)/3 ≈ 2.3 なので、この条件では λ は毎秒2強です。測定精度を100万倍にしても予測できる時間は数秒しか延びない、というのが初期値鋭敏性の実際の意味です。画面のアンサンブルは最も外側の振り子が差の99倍から出発するので、上の数字より少し早くばらけます。

観察2:小さな振れ幅ではカオスにならない

θ₁ = θ₂ = 10° にすると、120秒動かしても振り子はばらけません。30°でも同様でした。小さな角度では sinθ ≈ θ が成り立って方程式がほぼ線形になり、運動は2つの基準振動の重ね合わせになります。腕の長さ1m・質量が等しいとき ω² = (g/l)(2 ± √2) なので、周期は約2.62秒(2本が同じ向き)と1.09秒(逆向き)です。周期の比が無理数なので同じ動きは繰り返しませんが(準周期運動)、誤差は大きくなりません。

θ₁ = θ₂ = 90° にすると約18秒でばらけます。初期値の126°/149°は下の腕が簡単に一回転するほどエネルギーが大きく、さらに早く分かれます。「二重振り子はカオス」より「エネルギーが十分な二重振り子はほとんどの初期条件でカオス」が正確です。

観察3:質量比・長さ比・重力

質量比は下のおもりの質量(上は1kg固定)、長さ比は下の腕÷上の腕で、2本の合計は2mに保たれます。質量比を0.05まで下げると、上の腕はほぼ単振り子のように規則正しく揺れ、軽い下のおもりだけが振り回されます。初期角度・差 10⁻⁶ rad で計算すると、下のおもりは約11.9秒、上の腕の先は約14.7秒で10cm以上離れました。軽いおもりが上の腕をほとんど引っぱれないため、上の腕が少し長く持ちこたえます。

重力は時間の尺度を変えるだけです。g を4倍にするとすべての動きが2倍速くなり、ばらけるまでの時間もほぼ半分になります。模様の形は変わりません。

エネルギーは一定なのに予測できない理由

エネルギー保存は取りうる状態を絞り込むだけで、その中のどこにいるかは教えてくれません。初期値の力学的エネルギーは約19.9 J(支点基準)で、100本すべてがほぼ同じ値です。それでも数秒後には、同じエネルギーを持つまったく別の姿勢に散らばります。決定論的(同じ入力なら同じ出力)と予測可能(似た入力なら似た出力)は別の性質です。

実験でも確かめられています。Shinbrot らは1992年、実物の二重振り子で誤差の増大率 λ = 7.5 ± 1.5 s⁻¹ を報告しました。ここの1mの腕より短い装置で、λ はおおよそ √(g/l) に比例するため短い振り子ほど大きくなります。

このモデルが省いていること

棒の質量はゼロ、おもりは質点です。実際の棒でできた二重振り子は棒自体の慣性モーメントが大きく、係数が変わります。空気抵抗や軸の摩擦もないので止まりません。また倍精度計算は毎ステップ10⁻¹⁶程度の丸め誤差を生むため、10⁻¹² rad のような極小の差では分かれる時刻そのものが積分法によって少し変わりえます。分かれるという結論は変わりません。

例

初期差とばらけるまでの時間

入力
θ₁ 126°、θ₂ 149°、質量比・長さ比 1、g 9.81、振り子2本
結果
10cm以上離れる時刻:10⁻³ rad 4.3秒、10⁻⁶ 7.3秒、10⁻⁹ 10.3秒、10⁻¹² 14.7秒

差を1000分の1にするごとに約3秒しか延びない。λ ≈ ln(1000)/3 ≈ 2.3 s⁻¹。

小さな角度の基準振動

入力
l₁ = l₂ = 1m、m₁ = m₂、g = 9.81
結果
ω² = 9.81 × (2 ∓ 1.414) → 周期 2.62秒、1.09秒

θ₁ = θ₂ = 10° から出発すると2つのモードが混ざった準周期運動になり、120秒後もアンサンブルはまとまったまま。

使い方

  1. 振り子の数(1・3・100・1000本)を選び、おもりをドラッグするか θ₁・θ₂ スライダーで開始姿勢を決める。
  2. 初期角度の差(10^x rad)を決めると自動で再スタートする。
  3. エネルギーとばらつきの値を見ながら、いつ分かれるかを記録する。速度0.1×で分かれる瞬間をじっくり見られる。

よくある質問

振り子1本でもカオスですか?

はい。カオスは1本の振り子の性質です。たくさん並べるのは、その鋭敏さを目で確かめるための工夫です。

ばらつきの値は何を表しますか?

すべての下のおもりの x 座標(m)の標準偏差です。最初は10⁻⁵ m以下で、完全にばらけると腕の長さ程度の1m前後を上下します。

同じ設定で再スタートすると同じ動きになりますか?

なります。乱数を使わない決定論的な計算なので、同じ端末・同じ設定なら同じ軌跡が再現されます。予測が難しいのは、現実の初期状態を完全には知りえないからです。

エネルギーがわずかに変わるのはなぜですか?

RK4はエネルギーを厳密には保存しない近似法だからです。1フレームを8段に分けて誤差を抑え、再生速度を上げると段数も増やしています。

関連ガイド

出典

基準日:

プライバシーとデータの扱い