探索一維與二維碰撞的物理規律
「碰撞實驗室」是一個免費的線上教學工具,專為模擬兩球在一維軌道或二維平面上的彈性與非彈性碰撞而設計。使用者可以自由設定兩球的質量、位置、速度以及碰撞的彈性程度,並在動畫區域中即時觀察它們的運動軌跡、速度箭頭以及質心的移動。當兩球相撞的瞬間,系統會自動計算並填寫一份詳盡的對比表,展示碰撞前後每隻球的速度、動量和動能變化,並精確指出在撞擊過程中損失了多少能量。
本工具完全在你的瀏覽器中進行本地計算,你所設定的所有參數和模擬數據絕不會被上傳到任何外部伺服器,確保了操作的私密性。
設定碰撞參數與操作指南
在開始模擬前,你可以透過控制面板自由調整各項物理參數,或直接選擇內建的經典物理場景:
- 維度選擇:提供「一維軌道」與「二維平面」兩種空間模式。
- 場景預設:內建多種常見的教科書物理模型,包括「等質量正碰」、「重球撞輕球」、「追撞」、「完全非彈性」以及「二維斜碰」。
- 恢復係數 e:透過滑桿調節碰撞的彈性,範圍從最小的「完全非彈性」到最大的「彈性」。
- 球體屬性設定:
- 質量:必須大於 0 kg,且上限為 1000 kg。
- 位置 x / 位置 y:設定球體在坐標系中的初始位置(位置 y 僅適用於二維平面)。
- 速度 x / 速度 y:設定球體的速度分量,每個分量必須保持在 ±50 m/s 以內。
- 互動式定位:在模擬處於「暫停」狀態時,你可以直接在畫面上拖曳球體來重新定位,模擬將會從新的設定起點重新開始。
- 播放控制:支援「播放」、「暫停」、「單步」(逐幀前進)以及「重設」功能,並可選擇「正常」或「慢速」兩種播放速度。
即時數據與碰撞前後對比
本工具提供直觀的視覺反饋與精確的數據表格,幫助你深入分析碰撞過程:
動畫區域
畫面上設有「顯示兩個球運動和碰撞的動畫區域,標有速度箭頭和質心」,讓你能直觀地看見兩球的運動軌跡與系統質心的移動路徑。
狀態提示
系統會根據當前狀態顯示相應的提示訊息,例如「請設定質量與速度,然後按下播放。」、「模擬運行中。」或「已在 t = ‹t› 秒暫停。」。
即時數據
在模擬運行時,數據面板會即時更新並顯示兩球當前的「速度」、「動量」、「動能」,以及系統整體的「總動量」與「總動能」。
碰撞前後對比
當兩球發生碰撞時,系統會自動記錄並彈出「碰撞前後對比」表(若尚未碰撞,則顯示「按下播放 — 在兩球碰撞的瞬間,此對比表會自動填寫。」)。表格會詳細列出「第 ‹n› 次碰撞,於 t = ‹t› 秒」的數據,並分為「碰撞前」、「碰撞後」與「變化」三欄,對比兩球的「速度」、「動量」與「動能」。若碰撞為非完全彈性,下方會顯示「碰撞中損失的動能:‹value› J(佔碰撞前總動能的 ‹percent›)」。
模擬器的物理公式與計算基礎
本模擬器基於以下經典力學公式進行精確計算,所有公式均以直觀的 Unicode 符號呈現:
- 動量與動能:
- 動量:p = m·v
- 動能:KE = ½·m·|v|²
- 沿中心連線的碰撞(其中 n̂ 為連接兩球中心的單位向量,相對速度 v_rel = v₂ − v₁):
- 衝量大小:j = −(1 + e) · (v_rel · n̂) ÷ (1/m₁ + 1/m₂)
- 碰撞後速度:v₁′ = v₁ − (j/m₁)·n̂,及 v₂′ = v₂ + (j/m₂)·n̂
- 恢復係數定義:e = −(v_rel′ · n̂) ÷ (v_rel · n̂)
- 正碰彈性碰撞特例 (e = 1):
- v₁′ = ((m₁ − m₂)·v₁ + 2·m₂·v₂) ÷ (m₁ + m₂)
- 正碰完全非彈性碰撞特例 (e = 0):
- 共同速度:v′ = (m₁·v₁ + m₂·v₂) ÷ (m₁ + m₂)
- 碰撞之間:
- 位置更新:x ← x + v·Δt
模擬規則、邊界條件與錯誤提示
為了確保模擬的嚴謹性與教學實用性,系統設定了以下物理假設與輸入限制:
- 理想化物理假設:本工具為理想化的教學模型,假設球體為光滑圓盤,且系統內無摩擦力、無重力、無自旋,碰撞為瞬時發生,且邊牆為完美反彈(反射球體時不改變其速度)。
- 無外力干擾:在碰撞之間沒有外力作用,因此位置精確前進,每次碰撞都在一幀內其接觸的精確時刻進行解析,確保快速移動的球不會穿過彼此。
- 輸入限制與錯誤訊息:
- 若輸入非數值字元,系統會提示:「球
‹n›,‹field›:「‹token›」不是數字。」。 - 質量必須大於零,否則提示:「球
‹n›:質量必須大於零。」。 - 質量上限為 1000 kg,超出時提示:「球
‹n›:超過 1000 kg 的質量超出了此演示的範圍。」。 - 速度分量超出 ±50 m/s 時提示:「球
‹n›:請將每個速度分量保持在 ±50 m/s 以內。」。 - 若球體初始位置在邊界外,提示:「球
‹n›的起點位於區域外 — 請將其移回邊牆內。」。 - 若兩球在起點重疊,提示:「兩球在起點重疊 — 請在運行前將它們分開。」。
- 若輸入非數值字元,系統會提示:「球
常見問題解答
為什麼即使動能不守恆,動量仍然守恆?
在碰撞過程中,兩球以大小相等、方向相反的力互相推擠,因此不論一球失去多少動量,另一球就會得到多少動量 — 無論 e 的值是多少,總動量都無法改變。動能則沒有這種保護:在非完全彈性碰撞中,部分動能會轉化為形變、熱能和聲音。碰撞前後對比表準確地顯示了這一點 — 動量行保持其數值,而能量行則有所下降。
這與真實的碰撞有多接近?
守恆定律是精確的 — 這正是車禍調查員和粒子物理學家所依賴的規律。這裡理想化的是其他所有因素:現實中的物體形變需要數毫秒而非瞬間完成、偏心受撞時會自旋、彼此摩擦並滾動到停止。請將這些數字視為乾淨實驗所接近的教科書極限,而非對特定真實物體的預測。
恢復係數實際上控制了什麼?
它是兩球分離速度與接近速度的比值,沿著連接兩球中心的直線測量。當 e = 1 時,反彈會恢復完整的接近速度,且動能守恆;當 e = 0 時,兩球完全停止分離 — 在正碰中,它們會像一個整體一樣一起運動。介於兩者之間的所有情況都會損失部分能量:籃球反彈的 e 大約為 0.6,網球在混凝土上反彈的 e 大約為 0.75。
為什麼在二維完全非彈性碰撞中,兩球沒有黏在一起?
e = 0 消除了沿中心連線方向(即兩球實際互相擠壓的方向)的分離速度。在正碰中,這就是整個運動,因此它們會一起前進。在斜碰中,每隻球還具有沿接觸面的側向運動,而光滑、無摩擦的球體沒有摩擦力來抵消它,因此即使反彈本身消失了,它們的運動路徑仍然會分開。要讓它們真正黏在一起,需要摩擦力或連鎖結構,而此模型特意省略了這些因素。