# Frobenius norm and Trace

I found the connection between Frobenius norm and trace operation is simple and elegant.

Frobenius norm is a square-root sum of absolute squares of every element. It defines as:

$||X||_F = \sqrt{\sum_i \sum_j |a_{ij}|^2}$

If all elements in the matrix is real number, then we do not need an absolute operator.

Now, we re-express matrix X such that each row is one vector:

$X = \begin{bmatrix} \vec{r_1} \\ \vec{r_2} \\ \cdots \\ \vec{r_m} \end{bmatrix}$

Since the sum of square of $\vec{r_i}$ is a dot product $\vec{r_i}^T\vec{r_i}$, we can compute the sum of squres of all elements by:

$XX^T = \begin{bmatrix} \vec{r_1} \\ \vec{r_2} \\ \cdots \\ \vec{r_m} \end{bmatrix}\begin{bmatrix} \vec{r_1} \\ \vec{r_2} \\ \cdots \\ \vec{r_m} \end{bmatrix}^T$

Any element along the diagonal of $XX^T$ is a sum square of element from one of the row of $X$

To compute the total sum squares of every element, we can sum along the diagonal:

$\sum_i (XX^T)_{ii} = \text{Tr}(XX^T)$

And a sum along a diagonal of matrix is a trace operation.