MatrixExponential

About the MatrixExponential class

The WaveBlocks Project

@author: R. Bourquin @copyright: Copyright (C) 2010, 2011, 2012 R. Bourquin @license: Modified BSD License

Class documentation

The WaveBlocks Project

This file contains several different algorithms to compute the matrix exponential. Currently we have an exponential based on Pade approximations and an Arnoldi iteration method.

@author: R. Bourquin @copyright: Copyright (C) 2007 V. Gradinaru @copyright: Copyright (C) 2010, 2011 R. Bourquin @license: Modified BSD License

MatrixExponential.arnoldi(A, v0, k)[source]

Arnoldi algorithm (Krylov approximation of a matrix)

Parameters:
  • A – The matrix to approximate.
  • v0 – The initial vector (should be in matrix form)
  • k – The number of Krylov steps.
Returns:

A tupel (V, H) where V is the matrix (large, N \times k) containing the orthogonal vectors and H is the matrix (small, k \times k) containing the Krylov approximation of A.

MatrixExponential.matrix_exp_arnoldi(A, v, factor, k)[source]

Compute the solution of v' = A v via k steps of a the Arnoldi krylov method.

Parameters:
  • A – The matrix.
  • v – The vector.
  • factor – An additional factor, usually contains at least the timestep.
  • k – The number of Krylov steps.
MatrixExponential.matrix_exp_pade(A, coefficients, factor)[source]

Compute the solution of v' = A v with a full matrix exponential via Pade approximation.

Parameters:
  • A – The matrix.
  • coefficients – The vector with the coefficients.
  • factor – An additional factor, usually contains at least the timestep.

Table Of Contents

Previous topic

ComplexMath

Next topic

MatrixExponentialFactory

This Page