# Algorithms for linear system of ODEs

I wonder: what is the best algorithm to solve $$\begin{equation} \frac{du}{dt} = Au \end{equation}$$ Where $$A$$ is a real $$n\times n$$ matrix. A is not explicitly time-dependent, usually sparse but not necessarily banded. Its eigenvalues have non-positive real parts. A is also diagonalizable but may be too big for a full diagonalization to be computationally efficient.

There is the implicit Trapezoidal rule which I have had a good experience. $$\begin{equation} \left(I-\frac{\Delta t}{2} A\right) u_{n+1} = \left(I+\frac{\Delta t}{2} A\right) u_{n} \end{equation}$$

What about explicit methods or Pade approximants? Also, how does this changes if a forcing term is added to the RHS?

• We really need more information about A. Depending on the location of eigenvalues, stability could be an issues affecting the choice between explicit or implicit methods. It also matters what order you would like and whether or not A varies in time/with u as to whether you need a stiff solver. There really isn't enough information to make an informed answer. Sep 5 '12 at 0:42
• @GodricSeer Thanks Godric. I have added some assumptions about $A$. Sep 5 '12 at 12:20
• @GabrielLandi You'll need to add more information than that to get a specific answer. How large is $A$? Is $A$ normal? Are the eigenvalues of $A$ real, imaginary, or complex? How large are they (biggest and smallest magnitude)? Sep 6 '12 at 6:03

As your matrix is independent of $u$ the result is a matrix exponential times the intial vector. The standard discussion of relevent method can be found from http://scholar.google.at by searching for ''Nineteen dubious ways''.