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

- :
`r`=**expm***(*¶`A`) Return the exponential of a matrix.

The matrix exponential is defined as the infinite Taylor series

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

However, 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.

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

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

logm (

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

`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.

- :
`s`=**sqrtm***(*¶`A`) - :
*[*`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.

- :
`C`=**kron***(*¶`A`,`B`) - :
`C`=**kron***(*¶`A1`,`A2`, …) Form the Kronecker product of two or more matrices.

This is defined block by block as

c = [ 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.

- :
`C`=**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

- :
`X`=**sylvester***(*¶`A`,`B`,`C`) Solve the Sylvester equation.

The Sylvester equation is defined as:

A X + X B = C

The solution is computed using standard LAPACK subroutines.

For example:

sylvester ([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]