ばね振り子レース:T = 2π√(m/k) を確かめる

無摩擦・水平置き台車(天井から吊ったレール上を水平に動く)

振り子の選択(キャンバス上のレーンをタップしても選択可)

バネ定数 k(選択中)
質量 m(選択中)
シミュレーション速度

m・k の変更は即時に反映:その瞬間の変位 x と速度 v から位相角 φ = atan2(−v/ω, x) を求め、新しい ω' = √(k/m) でその φ から再開します(x は連続、振幅 A は全振り子で共通のまま)。変更をまたぐ周期は実測に使わず、次の完全な1周期から再測定します。

使う式

F = −kx(復元力:変位と逆向き)
T = 2π√(m/k)(周期:振幅 A によらない=等時性)
x(t) = A cos(2πt/T)(t=0 で x=+A、v=0 から出発)

m・k 変更後は x(t) = A cos(2π(t−t₀)/T' + φ₀)(φ₀ は変更時の位相角)。描写単位:横方向は変位 x [m] をキャンバス上で拡大表示(スケールはキャンバス左上に表示)。縦方向の位置はレーン分けのためで物理量ではありません。

周期の比較(理論値 vs 過零点測定)

順位m[kg]k[N/m]T理論[s]T実測[s]差[s]

T実測:x が+から−へ(同じ向きに)x=0 を通過した時刻の間隔。通過時刻はフレーム内で解析解 φ(t)=φ₀+ωt から求めています。比較・順位は周期 T の実数値(連続量)で行い、整数に丸めたりしません。k ≥ 5 N/m・m ≤ 5 kg なので T は常に有限(T→∞ にはなりません)。

レース記録(周回ごとの着順・リアルタイム)

各振り子が x=+A に戻る(1周期を完了する)たびに、その周回の着順として番号が記録されます。周期が短いほど早く戻ります。

等時性チェック(選択中の振り子を A と A/2 で数値積分)

キャンバス下部の積分区間:選択中と同じ m・k の振り子を F=−kx の運動方程式で RK4 積分(刻み h=T/2000)。振幅 A(実線)と A/2(破線)で過零点の間隔が等しいことを確かめられます。