Next: Specialized Solvers, Previous: Matrix Factorizations, Up: Linear Algebra [Contents][Index]

- 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 Padé approximation method with three step preconditioning (SIAM Journal on Numerical Analysis, 1977). Diagonal Padé 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 Padé approximation when`Dq(A)`

is ill-conditioned.

- Function File:
`s`=**logm***(*`A`) - Function File:
`s`=**logm***(*`A`,`opt_iters`) - Function File:
*[*`s`,`iters`] =**logm***(…)* Compute the matrix logarithm of the square matrix

`A`. The implementation utilizes a Padé approximant and the identitylogm (

`A`) = 2^k * logm (`A`^(1 / 2^k))The optional argument

`opt_iters`is the maximum number of square roots to compute and defaults to 100. The optional output`iters`is the number of square roots actually computed.

- Built-in Function:
`s`=**sqrtm***(*`A`) - Built-in Function:
*[*`s`,`error_estimate`] =**sqrtm***(*`A`) Compute the matrix square root of the square matrix

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

- Built-in Function:
**kron***(*`A`,`B`) - Built-in Function:
**kron***(*`A1`,`A2`, …) Form the Kronecker product of two or more 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

If there are more than two input arguments

`A1`,`A2`, …,`An`the Kronecker product is computed askron (kron (

`A1`,`A2`), …,`An`)Since the Kronecker product is associative, this is well-defined.

- Built-in Function:
**blkmm***(*`A`,`B`) Compute products of matrix blocks. The blocks are given as 2-dimensional subarrays of the arrays

`A`,`B`. The size of`A`must have the form`[m,k,…]`

and size of`B`must be`[k,n,…]`

. The result is then of size`[m,n,…]`

and is computed as follows:for i = 1:prod (size (

`A`)(3:end))`C`(:,:,i) =`A`(:,:,i) *`B`(:,:,i) endfor

- Built-in 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 ]

Next: Specialized Solvers, Previous: Matrix Factorizations, Up: Linear Algebra [Contents][Index]