[SciPy-User] Faster approach to calculate the matrix exponential

Michael Kreim michael at perfect-kreim.de
Thu Jun 26 14:46:23 EDT 2014


Am 26.06.2014 10:31, schrieb Troels Emtekær Linnet:
> Do any of you know any faster approach to calculate the matrix exponential ?

Am 26.06.2014 20:04, schrieb Stephan Hoyer:
 >
 > On Thu, Jun 26, 2014 at 5:32 AM, Charles R Harris
 > <charlesr.harris at gmail.com <mailto:charlesr.harris at gmail.com>> wrote:
 >
 >     Are you solving a differential equation? If so, an explicit solution
 >     may not be the best way to go.
 >
 >
 > I agree.
 >
 > My experience with solving very similar quantum mechanics problems is
 > that using an ODE integrator like zofe (via scipy.integrate.ode) can be
 > much faster than solving the propagator exactly..
 >

Hi,

I never used Python for my numerical Problems, but I worked with some 
PDEs of the d/dt p = Ap type in the recent time (but not from quantum 
mechanics).

I agree with Stephan and Charles that it my be worth trying to solve the 
ODE using any suitable ODE solver. In Matlab I made the experience that 
it is very problem depended if the ode solver or the matrix exponential 
method is faster.

Also you can have a look at expokit which is a very good implementation 
of matrix exponential solvers (using Krylov subspace methods):
http://www.maths.uq.edu.au/expokit/
Unfortunately there is no Python implementation but maybe you can call 
the fortran or C++ version from python.

And you can have a look at operator splitting methods. If it is possible 
to split your problem in two (or more) sub problems, then these methods 
often speed up the numerical computations. The problem usually lies in 
finding a suitable splitting. The implementation is not very 
complicated, if you have numerical methods for the sub problems.


Cheers,

Michael




More information about the SciPy-User mailing list