我对 python 和用它求解微分方程很陌生。我需要绘制给定 x'' 和 y'' 的射弹射程。 D and L are drag and lift coefficients which I'm just setting to the value of 1 for now Initial Conditions
这是我试过的。
def dP_dt(P, t):
L = 1
D = 1
g = 9.81
y = P[0]
z = P[1]
x = P[2]
i = P[3]
dydt = -g + (np.sqrt(i**2 + z**2) * ( (L * i) - (D * z)))
dxdt = - np.sqrt(i**2 + z**2) * ((D * i) + (L * z))
return(z, dydt, i, dxdt)
ts = np.linspace(0, 10, 100)
P0 = [0, 7.07, 0, 7.07]
Ps = odeint(dP_dt, P0, ts)
y_range = Ps[:, :2]
x_range = Ps[:, 2:5]
plt.plot(ts, x_range)
plt.plot(ts, y_range)
对不起,如果我的代码看起来令人困惑。我真的很难理解耦合的二阶方程。