Even met de gebruikelijke definitie van k: Met m'n pyhon code kom ik dan op L=224m ,H=59,5m xA=114m
(Jij komt op L=232m, H=60,95m en xA=119,1m) voor L is dat toch een verschil van zo'n 8m,voor xA 5m en voor de max hoogte 1,5m
Er zal ergens een foutje in m'n Pythoncode zitten, al weet ik niet waar. misschien zie jij het!
Code: Selecteer alles
import numpy as np
import matplotlib.pyplot as plt
M=4.084070444 #massa (kg)
g=9.81 #gravity (m/s^2]
v=50 #initiele snelheid [m/s]
ang=45 #hoek [degr] met de x-as
k=0.002431593 #drag factor
vx=[v*np.cos(ang/180*np.pi)]
vy=[v*np.sin(ang/180*np.pi)]
#drag Force
F=k*v**2
#calculate initial acceleration component ax and ay
ax=[-(F*np.cos(ang/180*np.pi))/M]
ay=[-g-(F*np.sin(ang/180*np.pi))/M]
#calculate for time value on the object
t=[0]
counter=0
dt=0.01
x=[0]
y=[0]
while(y[counter]>=0):
t.append(t[counter]+dt)
vx.append(vx[counter]+dt*ax[counter])
vy.append(vy[counter]+dt*ay[counter])
x.append(x[counter]+dt*vx[counter])
y.append(y[counter]+dt*vy[counter])
#calculatie magnitude of new velocity
vel=np.sqrt(vx[counter+1]**2+vy[counter+1]**2)
F=k*vel**2
ax.append(-(F*np.cos(ang/180*np.pi))/M)
ay.append(-g-(F*np.sin(ang/180*np.pi))/M)
counter=counter+1
plt.plot(x,y)
plt.ylabel("Y [m]")
plt.xlabel("X (m)")
plt.show()