我是编程新手。在这里,我正在尝试使用 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()