<< ldl_blocktoep Factorization of Structured Matrices qr_blocktoep >>

Factorization of Structured Matrices >> Factorization of Structured Matrices > ldl_gs

ldl_gs

LDL factorization for strongly regular hermitian matrices with displacement structure

Calling Sequences

[L,d] = ldl_gs(F,G,p,q)
[L,d] = ldl_gs(F,G,p,q,k)

Parameters

F

sparse strictly lower triangular n x n matrix

G

n x r matrix

p,q

natural numbers, p+q=r

k

optional parameter: natural number, default value is k=n

L

n x n matrix

d

n x 1 vector, entries are +1 or -1

Description

Suppose we want to factorize the hermitian and strongly regular (i.e., all leading minors are non-zero) n x n matrix A. Then, the inputs F, G, p and q should such that the displacement D=A-F*A*F' satisfies D=G*J*G'. Here, J=[eye(p,p) zeros(p,q);zeros(q,p) -eye(q,q)] is the r x r signature matrix. The outputs L and d satisfy A=L*diag(d)*L'.

The optional parameter k can be used for early abortion of the algorithm. If k<n then only the first k columns of L and the first k elements of d are computed.

Examples

// create indefinite hermitian Toeplitz matrix
T = toeplitz(1:5,1:5)+toeplitz(%i*(0:4),-%i*(0:4));
// compute displacement with respect to the shift matrix
F = [spzeros(1,5);speye(4,4) spzeros(4,1)];
D = T-F*T*F';
// compute generator
G = [T(:,1) [0;T(2:$,1)]];
J = [1 0;0 -1];
// test generator
disp(D-G*J*G');
// compute LDL factorization
[L,d] = ldl_gs(F,G,1,1);
// test factorization
disp(T-L*diag(d)*L');

Authors


<< ldl_blocktoep Factorization of Structured Matrices qr_blocktoep >>