模拟炮弹弹道的 Python 程序

计算科学 Python
2021-12-24 22:15:42

我是编程新手。在这里,我正在尝试使用 python 编程模拟炮弹的运动,直到它击中地面。我已经使用分析和数值(欧拉方法)来绘制它的轨迹。但是,我不确定我的输出对于这两种方法是否正确,尤其是对于分析解决方案。对于解析解,有什么方法可以证明对于 t=0,x=1m 是正确的。请看下面的代码,并指出我的错误。

import matplotlib.pyplot as plt
v=0.0      #Initial 0 velocity
h=0.01     #dt
x=1        #Canonball is at a distance of 1m from the ground initially     
t=0.0
m=2.0
g=9.81 

ta,xa,xb=[],[],[]   #xa for numerical and xb for analytical solution

while x>=0.0:
    ta.append(t)
    xa.append(x)
    xb.append(-0.5*g*t**2.0)  #Analytical solution
    F=-m*g                       #Numerical solution
    v=v+(F/m)*h
    x=x+v*h
    t=t+h

plt.figure()
plt.plot(ta,xa)
plt.plot(ta,xb,'ro-')
plt.show()
0个回答
没有发现任何回复~