Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_matop_complex_gen_matrix_cond_pow (f01ke)

## Purpose

nag_matop_complex_gen_matrix_cond_pow (f01ke) computes an estimate of the relative condition number ${\kappa }_{{A}^{p}}$ of the $p$th power (where $p$ is real) of a complex $n$ by $n$ matrix $A$, in the $1$-norm. The principal matrix power ${A}^{p}$ is also returned.

## Syntax

[a, condpa, ifail] = f01ke(a, p, 'n', n)
[a, condpa, ifail] = nag_matop_complex_gen_matrix_cond_pow(a, p, 'n', n)

## Description

For a matrix $A$ with no eigenvalues on the closed negative real line, ${A}^{p}$ ($p\in ℝ$) can be defined as
 $Ap= expplogA$
where $\mathrm{log}\left(A\right)$ is the principal logarithm of $A$ (the unique logarithm whose spectrum lies in the strip $\left\{z:-\pi <\mathrm{Im}\left(z\right)<\pi \right\}$).
The Fréchet derivative of the matrix $p$th power of $A$ is the unique linear mapping $E⟼L\left(A,E\right)$ such that for any matrix $E$
 $A+Ep - Ap - LA,E = oE .$
The derivative describes the first-order effect of perturbations in $A$ on the matrix power ${A}^{p}$.
The relative condition number of the matrix $p$th power can be defined by
 $κAp = LA A Ap ,$
where $‖L\left(A\right)‖$ is the norm of the Fréchet derivative of the matrix power at $A$.
nag_matop_complex_gen_matrix_cond_pow (f01ke) uses the algorithms of Higham and Lin (2011) and Higham and Lin (2013) to compute ${\kappa }_{{A}^{p}}$ and ${A}^{p}$. The real number $p$ is expressed as $p=q+r$ where $q\in \left(-1,1\right)$ and $r\in ℤ$. Then ${A}^{p}={A}^{q}{A}^{r}$. The integer power ${A}^{r}$ is found using a combination of binary powering and, if necessary, matrix inversion. The fractional power ${A}^{q}$ is computed using a Schur decomposition, a Padé approximant and the scaling and squaring method.
To obtain the estimate of ${\kappa }_{{A}^{p}}$, nag_matop_complex_gen_matrix_cond_pow (f01ke) first estimates $‖L\left(A\right)‖$ by computing an estimate $\gamma$ of a quantity $K\in \left[{n}^{-1}{‖L\left(A\right)‖}_{1},n{‖L\left(A\right)‖}_{1}\right]$, such that $\gamma \le K$. This requires multiple Fréchet derivatives to be computed. Fréchet derivatives of ${A}^{q}$ are obtained by differentiating the Padé approximant. Fréchet derivatives of ${A}^{p}$ are then computed using a combination of the chain rule and the product rule for Fréchet derivatives.
If $A$ is nonsingular but has negative real eigenvalues nag_matop_complex_gen_matrix_cond_pow (f01ke) will return a non-principal matrix $p$th power and its condition number.

## References

Higham N J (2008) Functions of Matrices: Theory and Computation SIAM, Philadelphia, PA, USA
Higham N J and Lin L (2011) A Schur–Padé algorithm for fractional powers of a matrix SIAM J. Matrix Anal. Appl. 32(3) 1056–1078
Higham N J and Lin L (2013) An improved Schur–Padé algorithm for fractional powers of a matrix and their Fréchet derivatives MIMS Eprint 2013.1 Manchester Institute for Mathematical Sciences, School of Mathematics, University of Manchester http://eprints.ma.man.ac.uk/

## Parameters

### Compulsory Input Parameters

1:     $\mathrm{a}\left(\mathit{lda},:\right)$ – complex array
The first dimension of the array a must be at least ${\mathbf{n}}$.
The second dimension of the array a must be at least ${\mathbf{n}}$.
The $n$ by $n$ matrix $A$.
2:     $\mathrm{p}$ – double scalar
The required power of $A$.

### Optional Input Parameters

1:     $\mathrm{n}$int64int32nag_int scalar
Default: the first dimension of the array a and the second dimension of the array a. (An error is raised if these dimensions are not equal.)
$n$, the order of the matrix $A$.
Constraint: ${\mathbf{n}}\ge 0$.

### Output Parameters

1:     $\mathrm{a}\left(\mathit{lda},:\right)$ – complex array
The first dimension of the array a will be ${\mathbf{n}}$.
The second dimension of the array a will be ${\mathbf{n}}$.
The $n$ by $n$ principal matrix $p$th power, ${A}^{p}$, unless ${\mathbf{ifail}}={\mathbf{1}}$, in which case a non-principal $p$th power is returned.
2:     $\mathrm{condpa}$ – double scalar
If ${\mathbf{ifail}}={\mathbf{0}}$ or ${\mathbf{3}}$, an estimate of the relative condition number of the matrix $p$th power, ${\kappa }_{{A}^{p}}$. Alternatively, if ${\mathbf{ifail}}={\mathbf{4}}$, the absolute condition number of the matrix $p$th power.
3:     $\mathrm{ifail}$int64int32nag_int scalar
${\mathbf{ifail}}={\mathbf{0}}$ unless the function detects an error (see Error Indicators and Warnings).

## Error Indicators and Warnings

Errors or warnings detected by the function:
${\mathbf{ifail}}=1$
$A$ has eigenvalues on the negative real line. The principal $p$th power is not defined in this case, so a non-principal power was returned.
${\mathbf{ifail}}=2$
$A$ is singular so the $p$th power cannot be computed.
${\mathbf{ifail}}=3$
${A}^{p}$ has been computed using an IEEE double precision Padé approximant, although the arithmetic precision is higher than IEEE double precision.
${\mathbf{ifail}}=4$
The relative condition number is infinite. The absolute condition number was returned instead.
${\mathbf{ifail}}=5$
An unexpected internal error occurred. This failure should not occur and suggests that the function has been called incorrectly.
${\mathbf{ifail}}=-1$
Constraint: ${\mathbf{n}}\ge 0$.
${\mathbf{ifail}}=-3$
Constraint: $\mathit{lda}\ge {\mathbf{n}}$.
${\mathbf{ifail}}=-99$
An unexpected error has been triggered by this routine. Please contact NAG.
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.

## Accuracy

nag_matop_complex_gen_matrix_cond_pow (f01ke) uses the norm estimation function nag_linsys_complex_gen_norm_rcomm (f04zd) to produce an estimate $\gamma$ of a quantity $K\in \left[{n}^{-1}{‖L\left(A\right)‖}_{1},n{‖L\left(A\right)‖}_{1}\right]$, such that $\gamma \le K$. For further details on the accuracy of norm estimation, see the documentation for nag_linsys_complex_gen_norm_rcomm (f04zd).
For a normal matrix $A$ (for which ${A}^{\mathrm{H}}A=A{A}^{\mathrm{H}}$), the Schur decomposition is diagonal and the computation of the fractional part of the matrix power reduces to evaluating powers of the eigenvalues of $A$ and then constructing ${A}^{p}$ using the Schur vectors. This should give a very accurate result. In general, however, no error bounds are available for the algorithm. See Higham and Lin (2011) and Higham and Lin (2013) for details and further discussion.

## Further Comments

The amount of complex allocatable memory required by the algorithm is typically of the order $10×{n}^{2}$.
The cost of the algorithm is $O\left({n}^{3}\right)$ floating-point operations; see Higham and Lin (2013).
If the matrix $p$th power alone is required, without an estimate of the condition number, then nag_matop_complex_gen_matrix_pow (f01fq) should be used. If the Fréchet derivative of the matrix power is required then nag_matop_complex_gen_matrix_frcht_pow (f01kf) should be used. The real analogue of this function is nag_matop_real_gen_matrix_cond_pow (f01je).

## Example

This example estimates the relative condition number of the matrix power ${A}^{p}$, where $p=0.4$ and
 $A = 1+2i 3 2 1+3i 1+i 1 1 2+i 1 2 1 2i 3 i 2+i 1 .$
```function f01ke_example

fprintf('f01ke example results\n\n');

% Principal power p of matrix A

a = [ 1+2i  3      2     1+3i;
1+ i  1      1     2+ i;
1     2      1       2i;
3        i   2+i   1];

p = 0.4;

[pa, condpa, ifail] = f01ke(a,p);

disp('A^p:');
disp(pa);

fprintf('Estimated condition number is: %6.2f\n', condpa)

```
```f01ke example results

A^p:
0.9742 + 0.5211i   0.8977 - 0.1170i   0.6389 - 0.3900i   0.0975 + 0.6205i
0.1586 + 0.2763i   1.0176 - 0.0250i   0.0623 - 0.3471i   0.6431 + 0.2560i
0.2589 - 0.5817i   0.5633 + 0.3969i   1.1470 + 0.4042i  -0.3771 + 0.3113i
0.8713 - 0.0270i  -0.5734 + 0.0868i   0.2816 + 0.3739i   1.3568 - 0.2709i

Estimated condition number is:   6.86
```

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015