MATLAB: Does the function “ode45” use matrix decomposition

matrix decompositionode45

Hi all,
I wish to know the algorithms of ODE45 when it need to calculate multi-variable Runge Kutta.
Say, I want to solve ODE problem with muti variables such that y(x,t)'=Ay(x,t)
where y is the vector component of varibles, x is the vector component of corrdinates, A is the system matrix and t is time.
Does ODE45 solve this problem only by the explicit method without matrix decomposition?
Is there limitations for the usage of ODE45 if matrix A is singular or ill-conditioned?
Thanks for your help.

Best Answer

ODE45 does not use a decomposition or solve a linear system with A. However, ODE15s and ODE23s, which are specialized for "stiff" problems, do compute the LU decomposition and solve a linear system with the matrix A. These methods will only work well if the matrix A is not singular or ill-conditioned, but they can work much better than ODE45 and other "non-stiff" problem solvers for these cases.
See the Choose an ODE Solver doc page for more explanations about the different ODE solvers.