Я пытаюсь смоделировать движение транспортного средства, используя python, и я использую solve_ivp , чтобы разрешить ODE, вот мой код ниже
import numpy, scipy, scipy.integrate, math ,random
import matplotlib.pyplot as plt
def vehicleDynamics(t, x , v):
u = max(2.0, 0.3*t)
vcoeff = random.randint(0, 40) * t
return [v[0] * math.sin(x[2]), v[0] * math.cos(x[2]), v[0], u ,vcoeff]
# Initial State
x = [0 ,0, 1]
v = [1.2]
# Time points for drawing
timePointsOfInterest = numpy.linspace(0, 15, 2000)
# Evaluate ODE
odeResult = scipy.integrate.solve_ivp(vehicleDynamics, (0.0, 15.0 ) ,x ,t_eval=timePointsOfInterest)
assert odeResult.success
# Plot
plt.plot(odeResult.y[0], odeResult.y[1])
plt.xlabel("X Position")
plt.ylabel("Y Position")
plt.axis("equal")
plt.show()
, но я продолжаю получаю следующую ошибку компиляции:
TypeError: vehicleDynamics() missing 1 required positional argument: 'v'
Я что-то здесь упускаю, как правильно передать параметр