Does there exist a way to compute matrix "properties" (eigenvalues, determinant, etc.) from its vectorized representation?

198 Views Asked by At

I am wondering whether there are some formulas that compute matrix eigenvalues, determinant, rank, etc. directly from its vectorized representation.

More formally: suppose $\bf S \in \mathbb{S}^N$, i.e. square and symmetric. We can represent any matrix with its vectorized form $\bf s= \operatorname{vec(\bf S)} \in \mathbb{R}^{N^2}$, i.e. by storing all its entries in a vector. At this point we can perform operations involving $\bf S$, by equivalently using $\bf s$. Simple example: $$\operatorname{trace}(\bf A^\top \bf S) = \sum_{i,j}A_{ij} S_{ij}= \operatorname{vec(\bf A)}^\top \operatorname{vec(\bf S)}= \bf a ^\top \bf s$$

This makes sense clearly.

Question 1: My first question stems from the fact that we have clearly the same information in $\bf s$ as in $\bf S$, we are not losing anything if not the structure. Can we then compute, say, the eigenvalues of $\bf S$ from $\bf s$ without reshaping it? At the end, they are function of the entries of $\bf S$.

Question 2: If the answer to the above question is yes, then another fundamental question is whether we can perform the same operation in the half-vectorization space of the matrix, i.e. the vector storing only its lower (or upper) triangular part, for a symmetric matrix. Again, we are not losing any information.

An affirmative answer to the above question is important, for instance, in algorithms where the use of vectors reduces the dimensionality of the problem at hand, but where matrix properties are necessary. Thank you

EDIT: to make the context more clear. I am implementing an iterative algorithm working with the independent variables of the matrix only. I need to perform an SVD to shrink the singular values at every iteration. I am wondering whether I can perform such operation without reshaping the matrix and then reshape back to a vector.

1

There are 1 best solutions below

8
On

As you note, the same information is there in either representation, so any property can be computed from either representation.

You are asking about whether there are efficiencies to be had choosing one representation over the other. I think the answer is "it depends". In algorithm design and implementation there are always tradeoffs to be made between work done on the data structure and work done in the procedural code. The balance will be different in different computations.