[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |

## 18.4 Functions of a Matrix

__Function File:__**expm***(*`a`)Return the exponential of a matrix, defined as the infinite Taylor series

expm(a) = I + a + a^2/2! + a^3/3! + …

The Taylor series is

*not*the way to compute the matrix exponential; see Moler and Van Loan, Nineteen Dubious Ways to Compute the Exponential of a Matrix, SIAM Review, 1978. This routine uses Ward's diagonal Pade' approximation method with three step preconditioning (SIAM Journal on Numerical Analysis, 1977). Diagonal Pade' approximations are rational polynomials of matrices-1 D (a) N (a)

whose Taylor series matches the first

`2q+1`

terms of the Taylor series above; direct evaluation of the Taylor series (with the same preconditioning steps) may be desirable in lieu of the Pade' approximation when`Dq(a)`

is ill-conditioned.

__Function File:__**logm***(*`a`)Compute the matrix logarithm of the square matrix

`a`. Note that this is currently implemented in terms of an eigenvalue expansion and needs to be improved to be more robust.

__Loadable Function:__[`result`,`error_estimate`] =**sqrtm***(*`a`)Compute the matrix square root of the square matrix

`a`.Ref: Nicholas J. Higham. A new sqrtm for MATLAB. Numerical Analysis Report No. 336, Manchester Centre for Computational Mathematics, Manchester, England, January 1999.

__Loadable Function:__**kron***(*`a`,`b`)Form the kronecker product of two matrices, defined block by block as

x = [a(i, j) b]

For example,

kron (1:4, ones (3, 1)) ⇒ 1 2 3 4 1 2 3 4 1 2 3 4

__Loadable Function:__`x`=**syl***(*`a`,`b`,`c`)Solve the Sylvester equation

A X + X B + C = 0

using standard LAPACK subroutines. For example,

syl ([1, 2; 3, 4], [5, 6; 7, 8], [9, 10; 11, 12]) ⇒ [ -0.50000, -0.66667; -0.66667, -0.50000 ]

[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |