Obsession
V1
2023/02/24阅读:23主题:萌粉
有趣的抛体运动

仿真实验与真实实验融合
作者是物理专业出身,听到最多的一句话就是“物理是一门以实验为基础的科学”。回想自己的求学经历,竟然发现自己很少去过实验室,这不禁让我怀疑是不是学了假的物理。直到我接触了 编程,我发现自己竟然拥有了一个虚拟实验室;虚拟就虚拟吧,总比没去过实验室要好得多。于是开启了自己的 学习之路,学习一段时间之后;我不禁怀疑,真实的实验和我的虚拟实验结果一样吗?可是自己囊中羞涩,无法购买足够的实验器材来进行真实的实验。这可如何是好呢?于是我想到了一种方法,先用虚拟实验模拟出可能的结果,然后再估算实验成本,这样就可以兼顾实验结果和实验成本了。作者决定开一个仿真实验和真实实验结合的专辑,充分发挥仿真实验和真实实验的优势,希望能够帮助到各位老师和同学,同时也希望各位师范生一同参与进来。经过大半年的努力,如今终于拥有了一个个人移动实验室,今后将会分享来自笔者个人实验室的若干案例。 。
1、题目分析[1]
如图所示,同一高度 处,水平相距 的两小球 和 ,现同时将两小球以 、 抛出。求两小球在空中相距最近时的时刻 。
以 点为参考系原点,向右为 正方向,向上为 正方向:
则 时刻:
A、B两小球之间的距离 满足满足[2]:
则 是关于 的一元二次函数:
当 时,有:

2、数值模拟



3、发散探究
3.1两个小球相向抛出时的数值模拟


3.2四个小球从同一位置朝四个方向抛出时的数值模拟

3.3八个小球从同一位置朝八个方向抛出时的数值模拟



部分代码
from vpython import *
scene = canvas(width=960, height=600,
center =vector(0,-8,0), background=vector(1,1,1),range=20) #设定背景
scene.autoscal=0 #设置画面禁止缩放
ball1 =sphere(pos=vector(0,0,0),radius=0.5,color=color.cyan,make_trail=1) #定义小球1
ball2 =sphere(pos=vector(-10,0,0),radius=0.5,color=color.red,make_trail=1) #定义小球2
g=9.8 #重力加速度
ball1.v=vector(-3,0,0) #定义小球的初始速度
ball2.v=vector(0,10,0)
ball1.a=vector(0,-g,0) #定义小球的加速度
ball2.a=vector(0,-g,0)
#绘制两小球的距离时间图像
xd=graph(title="两小球的距离随时间的变化关系",width=600, height=400,
xtitle="t/(s)",ytitle="x/(m)")
xt=gcurve(graph=xd,color=color.red)
t=0
dt=0.0001
while t<=1:
rate(1000)
t += dt
ball1.v += ball1.a*dt
ball1.pos += ball1.v*dt
ball2.v += ball2.a*dt
ball2.pos += ball2.v*dt
s = mag(ball1.pos-ball2.pos)
xt.plot(t,s)
作者:陈海涛
责编:陈海涛
总编:汤金波
参考资料
强基计划物理一本通: 给高中物理加点难度。
[2]大学物理课本: 大学物理。
作者介绍
Obsession
V1