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

**URL:** <https://discourse.julialang.org/t/how-to-allow-time-array-to-be-passed-as-an-input-for-the-parameter-p-associated-with-differential-equations/39346>\
**Category:** New to Julia\
**Created:** [May 12, 2020, 12:49pm UTC](https://discourse.julialang.org/t/how-to-allow-time-array-to-be-passed-as-an-input-for-the-parameter-p-associated-with-differential-equations/39346 "2020-05-12T12:49:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![quantiota](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/quantiota/32/46039_2.png) [@quantiota](https://discourse.julialang.org/u/quantiota)\
**Post date:** [May 12, 2020, 12:49pm UTC](https://discourse.julialang.org/t/how-to-allow-time-array-to-be-passed-as-an-input-for-the-parameter-p-associated-with-differential-equations/39346/1 "2020-05-12T12:49:36Z")

</div>

hey,

i am learning the [example](https://docs.sciml.ai/dev/tutorials/ode_example/#Example-3:-Solving-Nonhomogeneous-Equations-using-Parameterized-Functions-1)  
it works but i do not know if it is correct.

```julia
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[1] = u[2] # θ'(t) = ω(t)
    du[2] = -3g/(2l)*sin(u[1]) + 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

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [May 12, 2020, 12:58pm UTC](https://discourse.julialang.org/t/how-to-allow-time-array-to-be-passed-as-an-input-for-the-parameter-p-associated-with-differential-equations/39346/2 "2020-05-12T12:58:59Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![quantiota](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/quantiota/32/46039_2.png) [@quantiota](https://discourse.julialang.org/u/quantiota)\
**Post date:** [May 12, 2020, 1:06pm UTC](https://discourse.julialang.org/t/how-to-allow-time-array-to-be-passed-as-an-input-for-the-parameter-p-associated-with-differential-equations/39346/3 "2020-05-12T13:06:01Z")

</div>

Thanks @ChrisRackauckas
