PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_matop_real_symm_posdef_inv (f01ab)
Purpose
nag_matop_real_symm_posdef_inv (f01ab) calculates the accurate inverse of a real symmetric positive definite matrix, using a Cholesky factorization and iterative refinement.
Syntax
[
a,
b,
ifail] = nag_matop_real_symm_posdef_inv(
a, 'n',
n)
Description
To compute the inverse of a real symmetric positive definite matrix , nag_matop_real_symm_posdef_inv (f01ab) first computes a Cholesky factorization of as , where is lower triangular. An approximation to is found by computing and then the product . The residual matrix is calculated using additional precision, and a correction to is found by solving . is replaced by , and this iterative refinement of the inverse is repeated until full machine accuracy has been obtained.
References
Wilkinson J H and Reinsch C (1971) Handbook for Automatic Computation II, Linear Algebra Springer–Verlag
Parameters
Compulsory Input Parameters
- 1:
– double array
-
lda, the first dimension of the array, must satisfy the constraint
.
The upper triangle of the by positive definite symmetric matrix . The elements of the array below the diagonal need not be set.
Optional Input Parameters
- 1:
– int64int32nag_int scalar
-
Default:
the second dimension of the array
a.
, the order of the matrix .
Constraint:
.
Output Parameters
- 1:
– double array
-
The lower triangle of the inverse matrix is stored in the elements of the array below the diagonal, in rows to ; is stored in for . The upper triangle of the original matrix is unchanged.
- 2:
– double array
-
The lower triangle of the inverse matrix , with stored in , for .
- 3:
– int64int32nag_int scalar
unless the function detects an error (see
Error Indicators and Warnings).
Error Indicators and Warnings
Errors or warnings detected by the function:
-
-
The matrix is not positive definite, possibly due to rounding errors.
-
-
The refinement process fails to converge, i.e., the matrix is ill-conditioned.
-
-
, or , or .
-
An unexpected error has been triggered by this routine. Please
contact
NAG.
-
Your licence key may have expired or may not have been installed correctly.
-
Dynamic memory allocation failed.
Accuracy
The computed inverse should be correct to full machine accuracy. For a detailed error analysis see page 40 of
Wilkinson and Reinsch (1971).
Further Comments
The time taken by nag_matop_real_symm_posdef_inv (f01ab) is approximately proportional to .
Example
This example finds the inverse of the
by
matrix:
Open in the MATLAB editor:
f01ab_example
function f01ab_example
fprintf('f01ab example results\n\n');
a = [ 5, 7, 6, 5;
7, 10, 8, 7;
6, 8, 10, 9;
5, 7, 9, 10];
a = [a; 0 0 0 0];
[X, L, ifail] = f01ab(a);
matrix = 'Lower';
diag = 'Non-unit';
xtitl = 'Lower triangle of inverse:';
[ifail] = x04ca( ...
matrix, diag, L, xtitl);
f01ab example results
Lower triangle of inverse:
1 2 3 4
1 68.0000
2 -41.0000 25.0000
3 -17.0000 10.0000 5.0000
4 10.0000 -6.0000 -3.0000 2.0000
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015