Unlimited learning, half price | 50% off

Last chance! 50% off unlimited learning

Sale ends in


matrixcalc (version 1.0-3)

duplication.matrix: Duplication matrix for n by n matrices

Description

This function returns a matrix with n * n rows and n * ( n + 1 ) / 2 columns that transforms vech(A) to vec(A) where A is a symmetric n by n matrix.

Usage

duplication.matrix(n=1)

Arguments

n

Row and column dimension

Value

It returns an n2×12n(n+1) matrix.

Details

This function is a wrapper function for the function D.matrix. Let Ti,j be an n×n matrix with 1 in its (i,j) element 1i,jn. and zeroes elsewhere. These matrices are constructed by the function T.matrices. The formula for the transpose of matrix D is D=j=1ni=jnui,j(vecTi,j) where ui,j is the column vector in the order 12n(n+1) identity matrix for column k=(j1)n+i12j(j1). The function u.vectors generates these vectors.

References

Magnus, J. R. and H. Neudecker (1980). The elimination matrix, some lemmas and applications, SIAM Journal on Algebraic Discrete Methods, 1(4), December 1980, 422-449.

Magnus, J. R. and H. Neudecker (1999) Matrix Differential Calculus with Applications in Statistics and Econometrics, Second Edition, John Wiley.

See Also

D.matrix, vec, vech

Examples

Run this code
# NOT RUN {
D <- duplication.matrix( 3 )
A <- matrix( c( 1, 2, 3,
                2, 3, 4,
                3, 4, 5), nrow=3, byrow=TRUE )
vecA <- vec( A )
vechA<- vech( A )
y <- D %*% vechA
print( y )
print( vecA )
# }

Run the code above in your browser using DataLab