What is the meaning of Matlab's ODE solver naming conventions?

232 Views Asked by At

MatLab has a number of built-in ODE solvers and are named using the convention odepq, for exampleL ode45, ode23, etc.

I understand that $p$ here stands for the order of the numerical method. For example, when using Euler's method, this is an order 1 because you only need to substitute the value of the function once before going on the update equation. As opposed to 2 times for Heun's and midpoint method (hence order 2). Classical RK method is order 4.

What I don't understand is the $q$ part. What is it?

2

There are 2 best solutions below

0
On

5 is for the error estimate order - RK4's local truncation error is order of $O(h^5)$.

0
On

Actually, ode45 is Dormand-Prince method with updates of 4th and 5th order, using the difference to steer the step size controller, and using the 5th order updates to advance the integration, which is the "extrapolation mode" of embedded methods.

All ode1q are implicit linear multi-step methods with not only step size control but also adaptation of the order. For stiff equations it can be useful to lower the order where the dynamic becomes too contrarian, and then increase order and step size where it is "smooth sailing". q is the maximum order, the documentation says what class of methods is actually used