Re: [eigen] Matrix exponential

[ Thread Index | Date Index | More Archives ]

2009/4/9 Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx>:
> Hello,
> I'm working on how to calculate the matrix exponential (for sparse
> matrices). We programmed it in Matlab, but we're also looking at
> implementing it in C++. To my surprise, this task is also listed in the todo
> file. However, I don't like the algorithm suggested there, which is to use
> the eigendecomposition - that runs into problems when the eigenvalues come
> close together. Is there any interest in a routine using
> scaling-and-squaring, which is in my opinion the most standard approach?

I didn't know that was the standard approach: it sounds much more
expensive. But then, I understand the problems you're talking about in
the cases where eigenvalues aren't well separated. We could always
have both functions.

Maybe what we really need is an eigendecomposition that handles well
the case of multiple eigenvalues! That would be generally useful.

> I already have a working implementation, but it's rather slow because LU
> uses complete pivoting. Any progress on implementing a partial pivoting
> version? Otherwise, that will have to be tackled first.

Yes, I want to add partial pivoting to LU soon, actually i already
sent a quick and dirty patch to the list a while ago, and i'll
definitely do that for eigen 2.1, but i also want to make it work by
taking recursive blocks so it's cache-friendly. So yes, you can
implement with the current LU and count on a much faster LU later.


Mail converted by MHonArc 2.6.19+