|

Physical Chaos 物理的なカオス

Chaos Theory カオス理論

Up until now, we have looked at rather “explicit chaos.” In mathematical structures like the Clifford Attractor or the Logistic Map, the rules of stretching and folding are written directly into the code—making it easy to point out which part of the code or which terms in the formula are doing what.

これまで、どちらかといえば「明示的なカオス」を見てきました。クリフォード・アトラクターやロジスティック写像のような数学的構造では、伸縮と折り畳みの規則がコードに直接書き込まれているため、コードのどの部分や数式のどの項が何をしているのかを簡単に指摘できます。

When we turn our attention to chaotic phenomena in the real world, things are not so straightforward. On this page, we examine two well-known chaotic systems: the double pendulum and the three-body problem. Despite appearing to be simple systems with only a few elements involved, clearly unpredictable behavior can be observed.

現実世界のカオス現象に目を向けると、物事はそれほど明白ではありません。このページでは、よく知られた2つのカオスシステム、二重振り子と三体問題を検証します。登場する要素の数も少ないので簡単なシステムに見えるにもかかわらず、明らかに予測不可能な振る舞いが観察できます。

Double Pendulum

二重振り子

A double pendulum is a pendulum with another pendulum attached to its end, where the first pendulum rotates around a fixed pivot point, and the second pendulum rotates around the tip of the first pendulum.

二重振り子は、振り子の先にもう1つの振り子を繋げたもので、1つ目の振り子は固定された支点を中心に回転、2つ目の振り子は、1つ目の振り子の先端を支点にして回転します。

This nested structure of using a moving point as a pivot complicates the physical interactions, making the feedback loop endlessly repeat. The movement of the first arm affects the second, and the reaction force returns to the first again.

この動く地点を支点にするという入れ子構造が、物理的な相互作用を複雑にします。1つ目の腕の動きが2つ目に影響を与え、その反動が再び1つ目に戻ってくるというフィードバック・ループが延々と繰り返されるのです。

The demo below simulates a double pendulum. It starts the pendulum from random starting points at regular intervals. You can see complex movements that are hard to imagine from the regular motion of a single pendulum.

下のデモでは二重振り子のシミュレーションです。一定時間ごとにランダムなスタート地点から振り子を動かします。一重の振り子の規則的な動きからは考えられないような複雑な動きが見て取れるでしょう。

The movement of the double pendulum is calculated based on a method called Lagrangian mechanics.

二重振り子の動きの計算は、ラグランジュ力学という手法に基づいています。

To be honest, I don’t understand it well enough to use it myself, so this is based on code I found and AI explanations.

正直、使いこなせるほどには理解していないので拾ってきたコードとAIによる解説に基づいています。

a1 and a2 are the angles of each pendulum, a1_v and a2_v are the angular velocities, m1 and m2 are the masses, and l1 and l2 are the arm lengths. The getAccelerations function is the heart of this simulation, calculating the angular acceleration (how the velocity changes) from these parameters.

a1, a2 がそれぞれの振り子の角度、a1_v, a2_v が角速度、m1, m2 が質量、l1, l2 が腕の長さです。getAccelerations 関数がこのシミュレーションの肝で、これらのパラメータから角加速度(速度がどう変化するか)を算出します。

function getAccelerations(a1, a2, a1_v, a2_v) {
	// Formulas for the first arm's acceleration (a1_a)
	let num1 = -g * (2 * m1 + m2) * sin(a1); // Gravity effect on arm 1
	let num2 = -m2 * g * sin(a1 - 2 * a2);   // Gravity interaction with arm 2
	let num3 = -2 * sin(a1 - a2) * m2;       // Angle difference interaction
	let num4 = a2_v * a2_v * l2 + a1_v * a1_v * l1 * cos(a1 - a2); // Centrifugal forces
	let den = l1 * (2 * m1 + m2 - m2 * cos(2 * a1 - 2 * a2)); // The Moment of Inertia (denominator)
	let a1_a = (num1 + num2 + num3 * num4) / den; // Combine terms for arm 1 acceleration
	// Formulas for the second arm's acceleration (a2_a)
	num1 = 2 * sin(a1 - a2); // Interaction term
	num2 = (a1_v * a1_v * l1 * (m1 + m2)); // Velocity influence from arm 1
	num3 = g * (m1 + m2) * cos(a1); // Gravity component
	num4 = a2_v * a2_v * l2 * m2 * cos(a1 - a2); // Feedback influence from arm 2
	den = l2 * (2 * m1 + m2 - m2 * cos(2 * a1 - 2 * a2)); // Denominator for arm 2
	let a2_a = (num1 * (num2 + num3 + num4)) / den; // Combine terms for arm 2 acceleration
	
	return { a1_a, a2_a }; // Return both accelerations as an object
}

In Lagrangian mechanics, instead of analyzing force vectors individually, we define the Lagrangian function (L=TVL = T - V) as the difference between the system’s kinetic energy (TT) and potential energy (VV). For the double pendulum, the following elements interact in complex ways:

  • Energy of the first pendulum: Simple circular motion.

  • Energy of the second pendulum: A combination of “the motion of the first pendulum” and “its own rotation.”

ラグランジュ力学では、力のベクトルを個別に考えるのではなく、系全体の運動エネルギー (TT) と位置エネルギー (VV) の差をとったラグランジュ関数 (L=TVL = T - V)を定義します。二重振り子の場合、以下の要素が複雑に絡み合います。

  • 第1の振り子のエネルギー: 単純な円運動。

  • 第2の振り子のエネルギー: 第1の振り子の動きと自分自身の回転が合わさったもの。

x1=l1sinθ1x_1 = l_1 \sin \theta_1

y1=l1cosθ1y_1 = l_1 \cos \theta_1

x2=l1sinθ1+l2sinθ2x_2 = l_1 \sin \theta_1 + l_2 \sin \theta_2

y2=l1cosθ1+l2cosθ2y_2 = l_1 \cos \theta_1 + l_2 \cos \theta_2

Solving the problem using these equations yields massive fractional expressions for the angular acceleration of the first pendulum (α1\alpha_1) and the second pendulum (α2\alpha_2). In the code, num (numerator) represents the forces acting at that moment, while den (denominator) represents the rotational resistance (inertia) at that instant. If you’re interested in the detailed derivation, check the page below.

これらを数式に入れて解くと、第1の振り子の角加速度 (α1\alpha_1) と、第2の振り子の角加速度 (α2\alpha_2) を求めるための巨大な分数式が得られます。コード内の num(分子)はその時に働く力、den(分母)はその瞬間の回りにくさ(慣性)に対応しています。もし詳しい導出が気になる方は下のページをみてください。

Derivation of the equations (by AI)

The stretching and folding in this system arise from physical properties. For example, when the pendulum is near its apex, even a slight difference in angle produces a large difference in angular acceleration from falling. This affects both the direction and speed of movement, stretching small variations into large differences in distance.

このシステムにおける引き伸ばしと折り畳みは、物理的な特性によって起こります。例えば、特に振り子が頂点付近にいるときは、角度が僅かに違うだけで落下による角加速度、つまり動く向きと速さに大きな差が生まれ、これが大きな距離の差へと引き延ばされます。

However, no matter how fast the pendulum swings, it cannot fly off to infinity. This serves as the folding mechanism. Additionally, because the arms are connected, each acceleration (a1_a, a2_a) is embedded within the other’s calculation, creating nonlinearity and mixing information.

一方で振り子はどれだけ勢いよく振り回されても無限の彼方へ飛んでいくことはできません。これが折り畳みの役割をします。また腕が結合されていることによってそれぞれの加速度(a1_a, a2_a)の計算の中に互いが埋め込まれ、これが非線形性と情報のかき混ぜを生み出します。

The Three-Body Problem

三体問題

The three-body problem refers to the phenomenon where masses like celestial bodies (point masses) exert gravitational forces on each other, and despite following simple laws, their trajectories become unpredictable and cannot be solved in a deterministic form.

三体問題とは、天体のような質量を持った塊(質点)が互いに重力を及ぼし合うとき、単純な法則に従っているにも関わらず、その軌道が予測不可能な形で解くことができなくなる現象のことです。

The simulation below is based on what we saw on the page about universal gravitation. The formula for universal gravitation is as follows, where force is proportional to the product of the masses divided by the square of the distance.

下のシミュレーションは万有引力のページで見たものをもとにしています。万有引力の式は下記の通りで、力は質量の積を距離の自乗で割ったものに比例するのでした。

F=Gm1m2r2 {\displaystyle F=G{\frac {m_{1}m_{2}}{r^{2}}}\ }

Depending on the initial conditions, the three bodies may not interact well, or two bodies may be too close together, preventing chaotic motion. Click the canvas to restart from a random state and try again. As discussed later, this “possibility of not becoming chaotic” is intrinsic to the three-body problem.

初期値によってはうまく3体が干渉しなかったり、2体が近すぎたりしてうまくカオスな動きが見れないことがあります。キャンバスをクリックするとランダムな状態から再開できるので試してください。後述するようにこの「カオスにならないことがある」というのは三体問題に本質的に備わった特性です。

Because the simulation is not completely accurate, even two-body interactions may not result in perfect repetition. This is a limitation rather than an intrinsic characteristic.

シミュレーションには誤差があるので2体の干渉でも完全な繰り返しにはならないことがありますが、こちらは本質ではなく制限事項です。

In Hamiltonian mechanics, whether a system is solvable (integrable—expressible in a predictable form through equations) or becomes chaotic depends on the balance between degrees of freedom and conserved quantities. Think of it as solving simultaneous equations: quantities that don’t change in a system are conserved quantities, treated as constants, while the positions and momenta of point masses are variables. The number of conserved quantities is fixed for a given system, but the number of variables increases with each additional point mass. The problem solvable with two bodies becomes fundamentally unsolvable beyond three bodies.

ハミルトン力学という理論では、系が解ける(可積分である = 方程式で予測可能な形でかける)かカオスになるかは、自由度と保存量のバランスで決まるとされています。ある系で変化しない量を保存量と呼びこれを定数として、質点の位置と運動量を変数とする連立方程式を解くことをイメージしてください。保存量の数は系によって固定ですが、変数の数は質点の数によって増えていきます。2体の時は変数の数が少ないので解けていた問題が3体を超えると原理的に解けなくなります。

Close encounters between point masses are the primary driver of stretching in the three-body problem. When two celestial bodies approach each other, gravity causes extreme acceleration. Even a slight deviation in position just before approach drastically changes the direction and timing of acceleration. This creates differences in distance large enough to send the bodies in completely different directions within seconds.

三体問題における引き延ばしの主役は、質点同士の近接遭遇です。2つの天体が近づく時に重力による極端な加速が起きます。接近する直前の位置がわずかにずれているだけで、加速される方向やタイミングが大きく変わり、数秒後には全く別の方向へ飛ばされるほどの距離の差を生みます。

The folding in the three-body problem doesn’t come from rigid constraints like a double pendulum’s arms, but rather from the conservation of total energy and the system’s center of mass. When a point mass is flung away, it decelerates—pulled back by gravity—if the system’s total energy is negative (a bound state). It then returns to the vicinity of the other masses. This cycle—going far, slowing down, being pulled back—compresses expanding trajectories back into the central region. This is the folding mechanism.

三体問題の折り畳みは、二重振り子の腕のような固い制約ではなく、系全体のエネルギー保存と重心によって行われます。弾き飛ばされた質点も、系全体のエネルギーが負(束縛状態)であれば重力の引き戻す力によって減速し、再び他の質点の近くへと戻ってきます。遠くへ行く = 速度が落ちる = 重力で戻されるというサイクルが、広がろうとする軌道を再び中心領域へと押し込めます。これが折り畳みの役割を果たします。

When this happens, if there are only two point masses, the relationship between their velocities and positions remains consistent, converging to a repetitive motion pattern. However, with three or more masses, mutual interference (mixing of information) causes deviations, and small differences become amplified.

この時、質点が2つであれば互いの速度と位置の関係が同じになり、決まった動きの繰り返しに収束するのですが、3つ以上あるとお互いの干渉によるずれ(情報のかき混ぜ)が起こり、少しの違いが増幅されていくことになります。

The three-body problem (and more generally, N-body problems) exhibits vastly different behavior depending on initial conditions. Some cases are not chaotic at all. Others fall into two categories: cases that are chaotic for a period but eventually collapse (such as when one celestial body accelerates and escapes far away), and cases that maintain a chaotic state endlessly.

三体問題(および、それ以上のN体問題一般)は、初期条件によって挙動が大きく異なります。全くカオス的でない場合もあれば、また、一定期間はカオス的だがどこかで崩壊するケース(天体の1つが大きく加速して遠くへ離脱してしまうなど)、そしてカオスな状態を保ち続けるケースに分かれます。

While only the last case strictly satisfies the conditions for chaos we’ll see on the next page, cases that collapse partway can still be considered chaotic enough if we focus on a specific time period. Imagine the space of all possible states the three-body problem can take, divided into chaotic and non-chaotic regions. Temporarily chaotic cases sit near the boundary of true chaos. This pattern appears in many physical chaotic systems—especially when we isolate parts of complex phenomena.

次のページで見るカオスの条件を厳密に満たすのは最後の場合だけですが、途中で崩壊するケースも、一定期間を取り出せば十分にカオス的だと言えます。三体問題が取りうる状態の全てからなる空間を考えて、カオスと非カオスに分けた時に、一時的にカオス的なケースは真のカオスの近くにあると考えることもできます。これは物理現象に基づくカオス的な振る舞い、特に複雑な事象の一部を取り出したものに多く当てはまります。

If we assume the universe exists eternally and contains infinitely many stars, then even a star that has been flung away will eventually be captured by the gravitational field of another star. Humanity does not know whether this assumption is correct, but the three-body problem can be considered as an isolated part of a more complex system.

宇宙が永遠に存在し、そこに無限個の星があると考えれば、弾き飛ばされた星もいずれ他の星の重力圏に捕らえられます。この仮定が正しいかを人類は知りませんが、三体問題は、より複雑な系の一部を取り出したものと考えられます。

(Extra) Math on Chaos

(おまけ)カオスの数学

On the next page, we’ll take a slightly more detailed look at the theory of chaos.

次のページではカオスに関する理論についてもう少しだけ詳しく見ていきます。

(Extra) Math on Chaos(さらに)カオスの数学