On May 24, 8:37 pm, luca <luca.frammol...@gmail.com> wrote: > Hi, > > i have the following problem: given a 3x3 real matrix, compute exp(A). > > I need a really fast way to do this. I have searched a bit with > google, but it seems to me that > computing the matrix exponential is not so simple, at least if your > matrix does not have a special > structure (for example A=diagonal matrix). > > I have found a simple method that use the diagonalization of A. If A > has 3 distinct eigenvalues, than compute > A=PDP^-1, where P is the matrix of the eigenvectors, D is a diagonal > matrix (whose diagonal elements are > the eigenvalues of A). Than, exp(A) = P exp(D) P^-1. Since P^-1 is > fast enough and exp(D) is simple > to compute, this should be a fast method. > > But, the problem is: i am not sure that the matrix A will always have > 3 distinct eigenvalues...what happens > if this does not happen? Can i use that formula even if 2 (or all > three) eigenvalues are equal? > > Are there any other ways to compute exp(A) in a fast way? > > Thank you, > Luca
You'll probably find the "updated" discussion of matrix exponentiation by Cleve Moler and Charles Van Loan to be helpful:
Your statement that you need to compute the matrix exponential "really fast" suggests that you intend to do this repeatedly. A bit more information about the reason for doing this might lead to a more focused evaluation of algorithms.