For a square matrix A
, vech(A)
returns the vector formed
by the lower triangular portion of the matrix, including the diagonal;
usually, this only makes sense for a symmetric matrix of numeric values.
If v=vech(M)
where M
is a symmetric numeric matrix,
vech2mat(v)
performs the inverse operation and returns the original
matrix M
; this explain the requirement on length(v)
.
For a positive integer n
, D=duplicationMatrix(n)
is a matrix
of dimension (n^2, n*(n+1)/2)
such that D %*% vech(M)
returns
the vec
-form of a symmetric matrix M
of
order n
, that is, the vector which stacks the columns of M
;
for more information, see Section 3.8 of Magnus and Neudecker (1988).
For a square numeric matrix x
, tr(x)
returns its trace.
blockDiag(...)
creates a block-diagonal matrix from a set of matrices
or objects coercible into matrices. Generally, this is useful only for
numeric objects.