On 10/15/19 5:17 PM, Maien Hamed wrote:
>
> But this is not reliable, as I've run into situations where the returned
> eigenvalues are fewer than `dim` (I'm not sure how
> `compute_eigenvalues_symmetric` treats repeated eigenvalues). I've looked at
> using `compute_svd`, but it seems to me that I could only access the
> `singular_value`s that way, but not the `svd_u` and `svd_vt` matrices.
For matrices of size 2x2 and 3x3, you could of course compute the eigenvalues
more easily than by using LAPACK -- in fact, I think we have code for that
somewhere (maybe in the FullMatrix class? -- I don't recall).
But the point of course remains that the log of a matrix is really only well
defined if the eigenvalues are in fact bounded away from zero. If they're too
small, you run into problems with the log being a large negative number.
It may also be possible to come up with an entirely different way to compute
the log than via the eigenvalue/vector decomposition. There is a rather well
known paper that is, I think, called "11 ways to compute the matrix
exponential" or something of this sort. There might be an equal number of ways
computing the logarithm, but I really wouldn't know.
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email:
bang...@colostate.edu
www:
http://www.math.colostate.edu/~bangerth/