Solving a non-standard ODE

I'm trying to solve an ODE like this: xdot = r(t)-x, where r(t) is a pre-calculated signal array of size 100. Let x(0) = 0. How do I set up the ODE? Thanks a lot.

Answers (1)

Nicolas Schmit
Nicolas Schmit on 4 Dec 2017
Create a interpolation of r(t), for example using interp1(), then use the interpolation routine in an ODE solver.

2 Comments

I'm not able to understand how this helps exactly. To elaborate, in the ODE45, [t,x] = ode45(@(t,x) (r(t)-x), tspan, x0), obviously I cannot specify r(t) like that. What I want is r(1), r(2), .... to be used at each step of the ODE. How do I modify the ODE45 command?
See the ode45 documentation with respect to: ODE with Time-Dependent Terms (link).

Sign in to comment.

Asked:

on 4 Dec 2017

Commented:

on 8 Dec 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!