Can ode45 solve a ODE with space dependent parameters?

1 view (last 30 days)
Hello,
I read ode45() can solve functions with time dependent parameters like this below by interpolating f and g during each time step.
y'(t)+f(t)y(t)=g(t)
However, can ode45 (or other solver) solve a system of odes like this below in which [A], [B] and [C] are matrices with some terms dependent of y and y=y(t)?
{dy/dt} = [A]{y^4}+[B]{y}+{C}
Ai=Ai(y)
Bi=Bi(y)
Ci=Ci(y)
Well, since this equation appears in a problem I solve using Simscape (Backward Euler method as default), I suppose I could find a solver to solve it inside Matlab codes without using Simscape.
  2 Comments
Jan
Jan on 29 Jan 2019
The notation is not clear to me: "{dy/dt} = [A]{y^4}+[B]{y}+{C}"
Marlon Saveri Silva
Marlon Saveri Silva on 29 Jan 2019
Edited: Marlon Saveri Silva on 29 Jan 2019
Actually this is not a MATLAB command line notation, I tried this "mathematical notation" to emphasize y, dy/dt and C are vectors whereas A and B are matrices.
{y} = {y1, y2, y3, ... , yn}
{C} = {c1, c2, c3, ... , cn}
{dy/dt} = {y1', y2', y3', ... , yn'}
Moreover, by {y^4} I tried to indicate the vector is {y1^4, y2^4, y3^4, ... yn^4}.

Sign in to comment.

Accepted Answer

James Tursa
James Tursa on 29 Jan 2019
Yes. In general, if the derivative is a function of current state and time (even if there are vectors or matrices involved), then you can use ode45 to get a numerical solution. The caveat is that the function needs to be "nice" enough for ode45 to handle. Otherwise you may need stiff solvers, etc.
  5 Comments
Ying Wu
Ying Wu on 5 Aug 2021
Hi Silva, I have met the same problem, my ODE has parameter A which is the piecewise function of the first directive y'(t). Have you succeed in solving this problem?
James Tursa
James Tursa on 5 Aug 2021
@Ying Wu It would be best if you posted a new Question with the details of your particular problem & derivative functions.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!