Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More matrix exponential methods #69

Open
3 tasks
jarlebring opened this issue Aug 24, 2021 · 5 comments
Open
3 tasks

More matrix exponential methods #69

jarlebring opened this issue Aug 24, 2021 · 5 comments

Comments

@jarlebring
Copy link
Contributor

jarlebring commented Aug 24, 2021

Wish-list / todo-list for more matrix exponential methods

  • An implementation of A. H. Al-Mohy and N. J. Higham, A new scaling and squaring algorithm
    for the matrix exponential, SIAM J. Matrix Anal. Appl., 31(3), (2009)
    This is basically the same as Higham 2005, but with a more accurate backward error estimate which in practice leads to less multiplications. The method behind expm in recent versions of matlab.
  • expmpoly: http://personales.upv.es/~jorsasma/software/expmpol.m described in Boosting the computation of the matrix exponential, Appl. Math. Comput., 2018 Requires only multiplications - no inverse. Main computation code can be generated with graph_exp_sid in GraphMatFun.jl.
  • ExpMethodArbitraryPrecision. Arbitrary precision scaling-and-squaring: https://epubs.siam.org/doi/10.1137/18M1228876?mobileUi=0
@ChrisRackauckas
Copy link
Member

Nice! Yeah, an arbitrary precision one would be very nice for the ecosystem. We've very much been missing it

@danielwe
Copy link

Adding this method to the list, which appears to be the expv and phiv version of the 2009 reference above. Currently used in Matlab for their expmv. Abstract claim:

Experimental comparisons with MATLAB codes based on Krylov subspace, Chebyshev polynomial, and Laguerre polynomial methods show the new algorithm to be sometimes much superior in terms of computational cost and accuracy."

  • Al-Mohy, Awad H., and Nicholas J. Higham. “Computing the Action of the Matrix Exponential, with an Application to Exponential Integrators.” SIAM Journal on Scientific Computing 33, no. 2 (January 2011): 488–511. https://doi.org/10.1137/100788860.

@danielwe
Copy link

danielwe commented Oct 4, 2024

Existing but old implementation of the above here: https://github.com/marcusps/ExpmV.jl. New StaticArrays-specific implementation here: https://github.com/jecs/StaticExpmv.jl.

@jarlebring
Copy link
Contributor Author

The methods in this setting are to compute the martix exp(A). The algorithm expmv is for exp(matrix)v where v is a vector (okay it can also be a tall skinny matrix). expmv belongs to a different method class, where you cannot use the squaring tricks we use in scaling-and-squaring. An implementation of expmv in SciML would probably be appreciated, but probably fit better in a setting independent of the above methods.

@danielwe
Copy link

danielwe commented Oct 8, 2024

ExponentialUtilities.jl already contains expv and phiv methods, no? See https://docs.sciml.ai/ExponentialUtilities/stable/#expv-and-phiv, as well as the final line in the readme.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants