Tell me more ×
Computational Science Stack Exchange is a question and answer site for scientists using computers to solve scientific problems. It's 100% free, no registration required.

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. It's 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} (I-\frac{\Delta t}{2} A) u_{n+1} = (I+\frac{\Delta t}{2} A) 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?

share|improve this question
4  
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. – Godric Seer Sep 5 '12 at 0:42
@GodricSeer Thanks Godric. I have added some assumptions about $A$. – Gabriel Landi 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)? – David Ketcheson Sep 6 '12 at 6:03

1 Answer

up vote 11 down vote accepted

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''.

For the scaling-and-squaring algorithm (the least dubious one), see also http://blogs.mathworks.com/cleve/2012/07/23/a-balancing-act-for-the-matrix-exponential/

share|improve this answer
This is very nice. Thank you. – Gabriel Landi Sep 5 '12 at 12:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.