# How to allow time array to be passed as an input for the parameter p associated with differential equations

hey,

i am learning the example
it works but i do not know if it is correct.

``````using DifferentialEquations, Plots

l = 1.0                             # length [m]
m = 1.0                             # mass[m]
g = 9.81                            # gravitational acceleration [m/s²]

function pendulum!(du,u,p,t)
du = u                    # θ'(t) = ω(t)
du = -3g/(2l)*sin(u) + 3/(m*l^2)*p(t) # ω'(t) = -3g/(2l) sin θ(t) + 3/(ml^2)M(t)
end

θ₀ = 0.01                           # initial angular deflection [rad]
ω₀ = 0.0                            # initial angular velocity [rad/s]
u₀ = [θ₀, ω₀]                       # initial state vector
tspan = (0.0,0.5)                  # time interval

dt = 0.001
t = 0:dt:0.5
for i = 1:length(t)-1
M = t->V[i]               # V = values(P); P external torque [Nm] is a time array

end

prob = ODEProblem(pendulum!,u₀,tspan,M)

sol = solve(prob,DP5(),adaptive=false,dt=0.001)  # solver customization for matching the time array domain
``````

yeah that works, except note that `M = t -> V[length(t)-1]` the way you wrote it.

Thanks @ChrisRackauckas