In python I have used the ode
method from scipy.integrate
. There I used the vode
integrator and the zvode
integrator to solve some numerical odes. I am happy with the solution provided by these methods and would now like to know what the equivalent methods are in matlab.
Im not familiar with the intricacies of odes (stiffness and which solvers are suitable in each case) I simply want to know if there is an equivalent matlab routine to the above two integrator methods which I can readily use.
Here is an example of how I have defined a function which should march forward in time
def time_march2(y0, x1_max):
y0 = np.asarray(y0)
t0 = 0
tlimit = 100.0
backend = 'vode'
solver = ode(f2).set_integrator(backend, nsteps=1)
solver.set_initial_value(y0, t0)
# suppress Fortran-printed warning
solver._integrator.iwork[2] = -1
solution_y = [y0]
solution_t = [t0]
warnings.filterwarnings("ignore", category=UserWarning)
while solver.successful() and solver.y[0] < x1_max and solver.t < tlimit:
solver.integrate(tlimit, step=True)
solution_y.append(solver.y)
solution_t.append(solver.t)
warnings.resetwarnings()
solution_y = np.array(solution_y)
solution_t = np.array(solution_t)
return solution_t, solution_y