两个小球碰撞
一:
姓名: 刘晓亮
班级: 河工大 物理 C082
学号: 085060
二:摘要
首先,设小球质量相同,碰撞时内力远大于外力,动量守恒,再根据能量守恒定率,不考虑能量损失碰撞
前的动能等于碰撞后的动能,由公式计算出碰撞后的速度,再将速度分解到竖直方向和水平方向
三:关键词
动量守恒、动能守恒、碰撞
引言:
重力 势能 、弹 性势能 和动 能统称 为机 械能 ,只有 在( 或弹簧 弹力 )的 情形下 ,物 体的和 动能 发生
相互转化,但总机械能保持不变动量守恒,是最早发现的一条守恒定律,它渊源于十六、七世纪西欧的
哲学思想,法国哲学家兼数学、物理学家笛卡儿,对这一定律的发现做出了重要贡献。如果一个系统不受
外力或所受外力的矢量和为零,那么这个系统的总动量保持不变,这个结论叫做动量守恒定律。动量守恒
定律是自然界中最重要最普遍的守恒定律之一,它既适用于宏观物体,也适用于微观粒子;既适用于低速
运动物体,也适用于高速运动物体,它是一个实验规律,也可用牛顿第三定律和动量定理推导出来。
正文:
一个 系统 不受 外力或 所受 外力之 和为 零, 这个系 统的 总动量 保持 不变 , 当发 生动 能与 重力势 能
的转 化时 ,只 有重力 做功 ,当发 生动 能与 弹性势 能的 转化时 ,只 有弹 力做功 ,其 他力均 不做 功,
则系统的机械能守恒
系统的初、末状态机械能守恒
系统的动能增加量等于势能减少量
E1=E2
△E K=-△E p
E k1+E p1=E k2+E p2
即△ E k+△E p=0
E k2-E k1= E p1- E p2
完全弹性碰撞在理想情况下,完全弹性碰撞的物理过程满足动量守恒和能量守恒。如果两个碰撞小球的质
量相等,联立动量守恒和能量守恒方程时可解得:两个小球碰撞后交换速度。如果被碰撞的小球原来静止,
则碰撞后该小球具有了与碰撞小球一样大小的速度,而碰撞小球则停止,碰撞时间极短碰撞力很大,外
力可以忽略不计,系统动量守恒速度要发生有限的改变,位移在碰撞前后可以忽略不计。
碰撞 过程 可分为 两 个过 程。开 始碰 撞时, 两球相 互挤 压,发 生形 变,由 形变 产生的 弹性恢 复力 使
两球的速度发生变化,直到两球的速度变得相等为止。这时形变得到最大。这是碰撞的第一阶段,
称为 压 缩阶 段。此 后, 由于形 变仍然 存在 ,弹性 恢复 力继续 作用 ,使两 球速度 改变 而有相 互脱 离
接触 的趋 势,两 球压 缩逐渐 减小 ,直到 两球 脱离接 触时 为止。 这是 碰撞的 第二 阶段, 称为恢 复阶
段。整个碰撞过程到此结束
附录:
Option Explicit
Private Type Speed
SpedX As Long
SpeedY As Long
End Type
Dim SpeedA s Speed
Dim SpeedB As Speed
Private Sub cmd1_click()
SpeedA.SpeedX = 60
SpeedA.SpeedY = -80
SpeedB.SpeedX = 20
SpeedB.SpeedY = 50
Timer1.Interval = 50
End Sub
Private Sub Form_Load()
Shape1.BackColor = RGB(0, 0, 255): Shape2.BackColor = RGB(255, 0, 0)
Shape1.BackStyle = 1: Shape2.BackStyle = 1
Shape1.Shape = 3: Shape2.Shape = 3
Shape1.Width = 500: Shape2.Width = 500
End Sub
Private Sub Timer1_Timer()
If Shape1.Top <= 0 Or Shape1.Top >= Me.Height - 1250 Then SpeedA.SpeedY = -SpeedA.SpeedY
If Shape2.Top <= 0 Or Shape2.Top >= Me.Height - 1250 Then SpeedB.SpeedY = -SpeedB.SpeedY
If Shape1.Left <= 0 Or Shape1.Left >= Me.Width - 800 Then SpeedA.SpeedX = -SpeedA.SpeedX
If Shape2.Left <= 0 Or Shape2.Left >= Me.Width - 800 Then SpeedB.SpeedX = -SpeedB.SpeedX
If Sqr((CLng(Shape1.Left - Shape2.Left) ^ 2) + CLng((Shape1.Top - Shape1.Top) ^ 2)) < 500 Then
Call SpeadChange(SpeedA, SpeedB)
End If
Shape1.Left = Shape1.Left + SpeedA.SpeedX * 1
Shape1.Top = Shape1.Top + SpeedA.SpeedY * 1
Shape2.Left = Shape2.Left + SpeedB.SpeedX * 1
Shape2.Top = Shape2.Top + SpeedB.SpeedY * 1
End Sub
Private Sub SpeadChange(ByRef SpeedA As Speed, ByRef SpeedB As Speed)
Dim Temp, Temp2 As Long
Dim NewA As Speed
Dim NewB As Speed
Temp = (SpeedA.SpeedX) ^ 2 + (SpeedB.SpeedX) ^ 2
Temp2 = SpeedA.SpeedX + SpeedB.SpeedX
NewB.SpeedX = Int((Sqr(Temp - 1 / 2 * ((Temp2) ^ 2)) + 1 / 2 * Sqr(2) * Temp2) / Sqr(2))
NewA.SpeedX = Temp2 - NewB.SpeedX
Temp = (SpeedA.SpeedY) ^ 2 + (SpeedB.SpeedY) ^ 2
Temp2 = SpeedA.SpeedY + SpeedB.SpeedY
NewB.SpeedY = Int((Sqr(Temp - 1 / 2 * ((Temp2) ^ 2)) + 1 / 2 * Sqr(2) * Temp2) / Sqr(2))
NewA.SpeedY = Temp2 - NewB.SpeedY
SpeedA.SpeedX = NewA.SpeedX
SpeedA.SpeedY = NewA.SpeedY
SpeedB.SpeedX = NewB.SpeedX
SpeedB.SpeedY = NewB.SpeedY
End Sub