1
$\begingroup$

I want to apply MatrixExp of a numerical, complex matrix of size about 10000 by 10000, and I also need high precision as I need to multiply several such matrices. However, I run out of memory during the computation. Is there a way to exponentiate the matrix without running out of the memory? Any helpful suggestions will be useful.

My problem is that given a sparse matrix $A$ which does not have zeroes on diagonal as well. I need $e^{i\, A\, t}$, where $t$ is the time. One needs to keep the phase information of each entry.

$\endgroup$
18
  • 2
    $\begingroup$ Do you really need the entire matrix, or is your intent to multiply this matrix with a suitable vector later? $\endgroup$ Aug 3, 2015 at 3:57
  • 4
    $\begingroup$ You should really state your problem and your ultimate goal by giving specific Mathematica code to reproduce the issue. If you tell us what you really want to achieve, it could be that you'll get a completely different answer that makes your large matrices unnecessary. As it is written, the question cannot be answered except by blind guessing, which is unlikely to be useful. $\endgroup$
    – Jens
    Aug 3, 2015 at 5:26
  • 2
    $\begingroup$ What type of numbers are in the matrix? Integers, machine precision reals or arbitrary precision numbers? $\endgroup$ Aug 3, 2015 at 6:11
  • 1
    $\begingroup$ ...and, is the matrix sparse? $\endgroup$
    – ciao
    Aug 3, 2015 at 7:00
  • 1
    $\begingroup$ If all you want is the trace, I'm pretty sure you don't need the entire matrix for it; the algorithms are not built-in, tho, and you may have to do some programming. $\endgroup$ Aug 3, 2015 at 15:06

0

Browse other questions tagged or ask your own question.