How to vectorize or speed up ODE solver with vector ?

4 views (last 30 days)
I would like to vectorize or speed up ODE solver with vector E? This is extremely slow following this routine.
nTime = length(timespan);
y_list = zeros(nTime, length(y0));
y_list(1, :) = y0;
for iTime = 2:nTime
[t_, y_] = ode45(@yourFcn, timespan(iTime-1:iTime), y0, options, E(iTime));
y0 = y_(end, :);
y_list(iTime, :) = y0;
end
  1 Comment
Daniel Armyr
Daniel Armyr on 3 Feb 2016
If I understand it correctly, you are calling ode45 in a loop and letting ode45 just compute a single step for each loop iteration.
As far as I can tell, your code does nothing that it could not do by a single call to ode45 and then extracting the data you want from the return vectors of ode45.

Sign in to comment.

Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!