https://github.com/pnavaro/taylorexponentialmatrix.jl
Computing the matrix exponential with an optimized Taylor polynomial approximation
https://github.com/pnavaro/taylorexponentialmatrix.jl
julia-language matrix-exponential matrix-exponentiation taylor-polynomial
Last synced: over 1 year ago
JSON representation
Computing the matrix exponential with an optimized Taylor polynomial approximation
- Host: GitHub
- URL: https://github.com/pnavaro/taylorexponentialmatrix.jl
- Owner: pnavaro
- License: mit
- Created: 2020-01-21T13:53:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-11-09T11:14:59.000Z (over 2 years ago)
- Last Synced: 2025-02-05T11:20:35.687Z (over 1 year ago)
- Topics: julia-language, matrix-exponential, matrix-exponentiation, taylor-polynomial
- Language: Julia
- Homepage:
- Size: 42 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.bib
Awesome Lists containing this project
README
# TaylorExponentialMatrix.jl
This is a julia translation of the matlab code available [here](http://www.gicas.uji.es/Research/MatrixExp.html).
**Computing the Matrix Exponential with an Optimized Taylor Polynomial Approximation**
**Philipp Bader** (Departament de Matemàtiques, Universitat Jaume I, Castellón, Spain),
**Sergio Blanes** (Instituto de Matemática Multidisciplinar, Universitat Politècnica de València, Spain)
and **Fernando Casas** (IMAC and Departament de Matemàtiques, Universitat Jaume I, Castellón, Spain)
```julia
julia> using Pkg
julia> pkg" add https://github.com/pnavaro/TaylorExponentialMatrix.jl"
julia> A = rand(5,5)
5×5 Array{Float64,2}:
0.0224285 0.160116 0.504822 0.370332 0.203693
0.861772 0.156394 0.178399 0.645844 0.229411
0.0630692 0.584537 0.358806 0.763173 0.410573
0.320181 0.391341 0.78607 0.619399 0.055634
0.450914 0.0945151 0.277274 0.0576302 0.560325
julia> exp(A) # version from LinearAlgebra
5×5 Array{Float64,2}:
1.45688 0.636229 1.1295 1.13607 0.591914
1.41956 1.77159 1.2015 1.70089 0.734244
0.918259 1.29852 2.42545 2.00871 1.02066
1.04361 1.20838 1.88584 2.99255 0.655514
0.848529 0.454553 0.838875 0.638862 2.02498
julia> using TaylorExponentialMatrix
julia> expm2(A) # Version using Taylor polynomial aproximation (simple algorithm)
5×5 Array{Float64,2}:
1.45688 0.636229 1.1295 1.13607 0.591914
1.41956 1.77159 1.2015 1.70089 0.734244
0.918259 1.29852 2.42545 2.00871 1.02066
1.04361 1.20838 1.88584 2.99255 0.655514
0.848529 0.454553 0.838875 0.638862 2.02498
julia> expm3(A) # Version using Taylor polynomial aproximation (sophisticated algorithm)
5×5 Array{Float64,2}:
1.45688 0.636229 1.1295 1.13607 0.591914
1.41956 1.77159 1.2015 1.70089 0.734244
0.918259 1.29852 2.42545 2.00871 1.02066
1.04361 1.20838 1.88584 2.99255 0.655514
0.848529 0.454553 0.838875 0.638862 2.02498
```
# See also
- [ExponentialUtilities.jl](https://github.com/JuliaDiffEq/ExponentialUtilities.jl): Utility functions used by the exponential integrators in [OrdinaryDiffEq.jl](https://github.com/JuliaDiffEq/OrdinaryDiffEq.jl)
- [Expokit.jl](https://github.com/acroy/Expokit.jl): Julia implementation of EXPOKIT routines
- [ExpMV.jl](https://github.com/matteoacrossi/ExpmV.jl): Julia package to compute the result of `expm(t*A)*v` when A is a sparse matrix, without computing `expm(t*A)`.