📜  弹性碰撞公式(1)

📅  最后修改于: 2023-12-03 14:54:13.334000             🧑  作者: Mango

弹性碰撞公式

在物理学中,弹性碰撞是指两个物体之间发生完全弹性碰撞时,它们之间的能量损失为零,动量守恒,而且它们会反弹回来。

对于程序员来说,弹性碰撞公式是处理物体运动和碰撞时常用的公式之一,下面我们来介绍一下。

公式

假设有两个物体a和b,它们的质量分别为m1和m2,它们碰撞前的速度分别为v1和v2,碰撞后的速度分别为v1'和v2',则它们之间的弹性碰撞公式如下:

其中,代表向量的点乘。

计算示例

我们来看一个简单的计算示例。

假设有两个物体a和b,它们的质量分别为2kg和3kg,它们碰撞前的速度分别为,碰撞后的速度分别为

我们可以使用numpy库进行计算,代码如下:

import numpy as np

m1, m2 = 2, 3
v1 = np.array([2, 1])
v2 = np.array([1, 2])
v1_prime = np.array([0, 0])
v2_prime = np.array([-1, 1])
    
# 弹性碰撞公式
v1_final = (m1 - m2) / (m1 + m2) * v1 + 2 * m2 / (m1 + m2) * v2
v2_final = 2 * m1 / (m1 + m2) * v1 - (m1 - m2) / (m1 + m2) * v2
    
assert np.array_equal(v1_final, v1_prime)
assert np.array_equal(v2_final, v2_prime)

我们可以验证结果,通过assert可以判断计算结果是否正确,若结果正确,则不会抛出任何异常。