背後的物理
彈簧振子
光滑水平面上,木塊在水平方向只受彈力(虎克定律)。以平衡位置為 \(x = 0\),由牛頓第二定律:
\[ F = -kx = ma \quad\Longrightarrow\quad a = -\frac{k}{m}\,x = -\omega^{2} x, \qquad \omega = \sqrt{\frac{k}{m}} \]
加速度與位移成正比、方向相反——這正是簡諧運動的定義。由 \(x = A\) 靜止釋放時:
\[ x = A\cos\omega t, \qquad v = -A\omega\sin\omega t = A\omega\cos\!\left(\omega t + \tfrac{\pi}{2}\right), \qquad a = -A\omega^{2}\cos\omega t \]
\[ T = \frac{2\pi}{\omega} = 2\pi\sqrt{\frac{m}{k}} \]
週期只和 \(m\)、\(k\) 有關,與振幅 \(A\) 無關。動能與彈性位能不斷互相轉換,總和保持不變:
\[ E = \tfrac12 m v^{2} + \tfrac12 k x^{2} = \tfrac12 k A^{2}, \qquad v_{\max} = A\omega, \qquad a_{\max} = A\omega^{2} \]
單擺
質量 \(m\) 的擺錘掛在長 \(L\) 的輕桿上,重力的切向分量 \(-mg\sin\theta\) 把它拉回最低點:
\[ mL\,\ddot\theta = -mg\sin\theta \quad\Longrightarrow\quad \ddot\theta = -\frac{g}{L}\sin\theta \]
這個方程式不是簡諧運動,因為回復項是 \(\sin\theta\) 而不是 \(\theta\)。只有在小角度時(\(\sin\theta \approx \theta\),\(\theta\) 以弧度表示)才近似為簡諧運動:
\[ \ddot\theta \approx -\frac{g}{L}\,\theta, \qquad T_0 = 2\pi\sqrt{\frac{L}{g}} \]
任意釋放角 \(\theta_0\) 的精確週期可以寫成第一類完全橢圓積分 \(K\),再用算術–幾何平均數(AGM)快速算出:
\[ T = 4\sqrt{\frac{L}{g}}\;K\!\left(\sin\frac{\theta_0}{2}\right) = \frac{T_0}{\operatorname{AGM}\!\left(1,\ \cos\frac{\theta_0}{2}\right)} \approx T_0\left(1 + \frac{\theta_0^{2}}{16} + \frac{11\,\theta_0^{4}}{3072} + \cdots\right) \]
AGM 的算法是反覆把 \(a\)、\(b\) 換成 \(\tfrac{a+b}{2}\) 與 \(\sqrt{ab}\),直到兩數相等。\(\theta_0 = 10^\circ\) 時精確週期只比 \(T_0\) 長 0.19%;\(90^\circ\) 時長 18%;接近 \(180^\circ\) 時趨近無限大。
阻尼
加入阻力 \(-bv\) 後,振動會逐漸停止。以彈簧為例,令 \(\gamma = b/2m\):
\[ m\ddot x = -kx - b\dot x, \qquad x = A e^{-\gamma t}\left(\cos\omega_d t + \frac{\gamma}{\omega_d}\sin\omega_d t\right), \qquad \omega_d = \sqrt{\omega^{2} - \gamma^{2}} \]
當 \(b\) 達到臨界值 \(b_c = 2\sqrt{mk}\) 時,木塊不再越過平衡點(臨界阻尼);比它更大時回到平衡點反而更慢(過阻尼)。減少的力學能轉為熱能,\(\mathrm{d}E/\mathrm{d}t = -bv^{2}\)。
觀察重點
- 週期與振幅無關:打開音效,每到轉折點會有一聲輕響(右邊高音、左邊低音)。把振幅 \(A\) 從 \(0.05\) 改到 \(0.30\ \mathrm{m}\),節奏完全不變,\(T = 2\pi\sqrt{m/k}\) 也沒有變。
- 什麼會改變週期?把 \(m\) 變成 4 倍,週期變成 2 倍;把 \(k\) 變成 4 倍,週期變成一半。
- \(a \propto -x\):上下排列的圖中,\(a\)–\(t\) 圖正好是 \(x\)–\(t\) 圖上下顛倒。木塊離平衡點最遠時加速度最大、速度為零;通過 \(x = 0\) 時速度最大、加速度為零。
- 相位:\(v\)–\(t\) 圖的波峰比 \(x\)–\(t\) 圖早四分之一週期出現,也就是速度領先位置 \(90^\circ\)。
- 能量交換:動能與位能的長條輪流增減,每個週期各起伏兩次,總和始終是 \(\tfrac12 kA^2\)。
- 小角度的單擺:\(\theta_0 = 5^\circ\) 時,真實單擺與小角度虛影幾乎完全重合;釋放角 \(5^\circ\) 或 \(10^\circ\) 的週期幾乎一樣(伽利略的等時性)。擺錘質量也不影響週期。
- 大角度的單擺:試試 \(90^\circ\) 與 \(160^\circ\)。真實單擺每擺一次就比虛影落後更多,聲音的節奏也變慢——大角度時週期不再與振幅無關。\(\theta\)–\(t\) 圖的頂端也變得較平,不再是單純的餘弦曲線。
- 換一個星球:在月球上(\(g = 1.62\ \mathrm{m/s^2}\)),同一個單擺的週期約是地球的 \(\sqrt{9.8/1.62} \approx 2.5\) 倍。彈簧振子的週期卻完全不變——為什麼?
- 阻尼:開啟阻尼,振幅逐漸變小,但聲音的節奏幾乎不變。把 \(b\) 調到超過 \(b_c\),木塊慢慢回到平衡點而不再越過它,聲音也不再出現。能量長條少掉的部分就是轉換成的熱能。
模擬方法
- 彈簧振子(含阻尼)直接使用解析解計算,運動、圖形與能量都沒有數值誤差。
- 真實單擺以數值方法求解完整的非線性方程式 \(\ddot\theta = -(g/L)\sin\theta\):無阻尼時用四階辛積分法(Yoshida/Forest–Ruth),擺動上千次能量也不會漂移;有阻尼時用四階 Runge–Kutta 法。步長為精確週期的 \(1/800\)。
- 虛影單擺是線性化方程式 \(\ddot\theta = -(g/L)\theta\) 在相同釋放角下的精確解。
- 「實測週期」是模擬中同一側相鄰兩個轉折點之間的時間,與公式相差不到 0.01%。
- 動畫每一格最多前進 1/30 s(再乘以播放速度),切換分頁回來時不會突然跳到後面。