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

Sebastian Walter sebastian.walter@gmail....
Sun Jan 24 10:53:36 CST 2010

```For me your problem looks like an ODE and therefore you should use an
ODE integrator.
This should work also for very large problems in principle.
For quantum mechanics there are special ODE integrators that have
special invariances, e.g.
that the total probability is fixed 1. If I remember correctly
symplectic integration schemes are quite useful:
http://en.wikipedia.org/wiki/Symplectic_integrator

On Sat, Jan 23, 2010 at 2:24 AM, 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.
>
> 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
>>>
>>>
>>> _______________________________________________
>>> SciPy-User mailing list
>>> SciPy-User@scipy.org
>>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>>
>>>
>>
>>
>>
>> --
>> Joshua Stults
>> Website: http://j-stults.blogspot.com
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
```