我是Python的新手,我尝试绘制在x轴上具有给定位移(给定变量)(初始速度g)的弹丸的轨迹,并计算初始角度(θ)的值。但是,我不确定问题出在哪里。我的最佳猜测是三角函数的“测量不确定性”。如何使该图更准确?我还考虑过更改“度量单位”,但这似乎并没有太大作用。
此图像显示音符'x'被声明为1.5332(m),但是我得到的最大为〜2.3(m)
我的代码:
import numpy as np
import pylab as pyl
# Initialize variables
v, g = 4.8, 9.8
x2 = 1.5332 # Input displacement
theta = 0.5 * np.arcsin((g * x2**2) / (v**2)) # Angle from displacement 'x'
t = np.linspace(0, 5, num=10**4) # Set 'time' as continous parameter
x1 = []
y1 = []
# get position at every point in time
for k in t:
x = ((v * k) * np.cos(theta))
y = ((v * k) * np.sin(theta)) - ((0.5 * g) * (k**2))
x1.append(x)
y1.append(y)
pyl.plot(x1, y1) # Plot 'x' and 'y'
pyl.grid()
pyl.ylim(0, 1)
pyl.xlim(0, 3)
pyl.show() # Display graphically
答案 0 :(得分:1)
您的角度计算中存在错误:
theta = 0.5 * np.arcsin((g * x2) / (v**2)) # Angle from displacement 'x'