|
NAG[f01mcc] NAG[nag_real_cholesky_skyline] - factorization of real symmetric positive-definite variable-bandwidth (skyline) matrix
|
|
Calling Sequence
f01mcc(a, row, al, d, 'n'=n, 'lal'=lal, 'fail'=fail)
nag_real_cholesky_skyline(. . .)
Parameters
|
a - Vector(1..lal, datatype=float[8]);
|
|
|
On entry: the elements within the envelope of the lower triangle of the positive-definite symmetric matrix , taken in row by row order. The following code assigns the matrix elements within the envelope to the correct elements of the array
|
k=0;
for i from 1 to n
do
for j from i-row[i]+1 to i
do
k:= k+1;
a[k]=matrix[i][j]
end do
end do;
|
|
row - Vector(1..n, datatype=integer[kernelopts('wordsize')/8]);
|
|
|
Constraint: , for . .
|
|
|
al - Vector(1..lal, datatype=float[8]);
|
|
|
|
d - Vector(1..n, datatype=float[8]);
|
|
|
On exit: the diagonal elements of the diagonal matrix . Note that the determinant of is equal to the product of these diagonal elements. If the value of the determinant is required it should not be determined by forming the product explicitly, because of the possibility of overflow or underflow. The logarithm of the determinant may safely be formed from the sum of the logarithms of the diagonal elements.
|
|
|
'n'=n - integer; (optional)
|
|
|
Default value: the first dimension of the arrays row, d.
|
|
On entry: , the order of the matrix .
|
|
Constraint: . .
|
|
|
'lal'=lal - integer; (optional)
|
|
|
Default value: the first dimension of the arrays a, al.
|
|
On entry: the smaller of the dimensions of the arrays a and al as declared in the function from which nag_real_cholesky_skyline (f01mcc) is called.
|
|
Constraint: . .
|
|
|
'fail'=fail - table; (optional)
|
|
|
The NAG error argument, see the documentation for NagError.
|
|
|
|
Description
|
|
|
Purpose
|
|
nag_real_cholesky_skyline (f01mcc) computes the Cholesky factorization of a real symmetric positive-definite variable-bandwidth matrix.
|
|
Error Indicators and Warnings
|
|
"NE_2_INT_ARG_GT"
On entry, while . These arguments must satisfy .
"NE_2_INT_ARG_LT"
On entry, while . These arguments must satisfy .
"NE_INT_ARG_LT"
On entry, n must not be less than 1: .
"NE_NOT_POS_DEF"
The matrix is not positive-definite, possibly due to rounding errors.
"NE_NOT_POS_DEF_FACT"
The matrix is not positive-definite, possibly due to rounding errors. The factorization has been completed but may be very inaccurate.
|
|
Further Comments
|
|
The time taken by nag_real_cholesky_skyline (f01mcc) is approximately proportional to the sum of squares of the values of .
The distribution of row widths may be very non-uniform without undue loss of efficiency. Moreover, the function has been designed to be as competitive as possible in speed with functions designed for full or uniformly banded matrices, when applied to such matrices.
The function may be called with the same actual array supplied for arguments a and al, in which case overwrites the lower triangle of .
|
|
|
Examples
|
|
>
|
n := 6:
lal := 14:
a := Vector([1, 2, 5, 3, 13, 16, 5, 14, 18, 8, 55, 24, 17, 77], datatype=float[8]):
arow := Vector([1, 2, 2, 1, 5, 3], datatype=integer[kernelopts('wordsize')/8]):
al := Vector(14, datatype=float[8]):
d := Vector(6, datatype=float[8]):
NAG:-f01mcc(a, arow, al, d, 'n' = n, 'lal' = lal):
|
|
|
See Also
|
|
Jennings A (1966) A compact storage scheme for the solution of symmetric linear simultaneous equations Comput. J. 9 281–285
Wilkinson J H and Reinsch C (1971) Handbook for Automatic Computation II, Linear Algebra Springer–Verlag
f01 Chapter Introduction.
NAG Toolbox Overview.
NAG Web Site.
|
|