# [SciPy-User] Matrix Exponentials For Very Large Sparse Matrices

Joshua Stults joshua.stults@gmail....
Fri Jan 22 19:33:15 CST 2010

```On Fri, Jan 22, 2010 at 8:24 PM, Dylan Gorman <dgorman@berkeley.edu> wrote:
> Dear Chuck and Joshua,
>
> It's a problem in quantum simulation. I'm trying to solve d(rho)/dt =
> L*rho for a sparse matrix L. L should be symmetric, and in principle I
> just need to compute (e^L*t)*(rho(0)) or something--not e^(L*t)
> explicitly.

If you end up rolling your own, it sounds like 'Method 20: Krylov
space methods', in 'Nineteen Dubious Ways to Compute the Exponential
of a Matrix' is for you:
http://www.cs.cornell.edu/cv/researchpdf/19ways+.pdf

>
> Regards,
> Dylan
>
> On Jan 22, 2010, at 5:16 PM, Joshua Stults wrote:
>
>> On Fri, Jan 22, 2010 at 8:04 PM, Charles R Harris
>> <charlesr.harris@gmail.com> wrote:
>>>
>>>
>>> On Fri, Jan 22, 2010 at 5:17 PM, Dylan Gorman
>>> <dgorman@berkeley.edu> wrote:
>>>>
>>>> Hi Folks,
>>>>
>>>> I'd like to exponentiate very large sparse matrices with scipy,
>>>> and I
>>>> would be very grateful for any suggestions. Currently, I'm running
>>>> into memory errors exponentiating random matrices of order 10^3x10^3
>>>> with the standard linalg.expm() routine. However, I suspect that I
>>>> may
>>>> realistically be able to handle somewhat larger matrices since the
>>>> actual matrices I will be using are quite sparse. Ideally, I'd
>>>> like to
>>>> be able to exponentiate matrices of size 10^5-10^6 x 10^5 - 10^6.
>>>> However, there does not seem to be any linalg.sparse.expm()
>>>> function--
>>>> is this because there is in fact no advantage to exponentiating
>>>> sparse
>>>> matrices? Or would I need to implement something by hand?
>>>>
>>>
>>> Out of curiosity, do the matrices have any special structure? For
>>> instance,
>>> are they banded or symmetric? Also, why to you want to exponentiate
>>> them?
>>>
>> Another question: do you need the matrix exponential explicitly, or do
>> you just need it's action on a vector?
>>
>>> Chuck

Maybe there's something already lurking in Scipy that's appropriate?

--
Joshua Stults
Website: http://j-stults.blogspot.com
```