If $M=v_1v_i^TD_i$, compute $v_i$ and $D_i$

58 Views Asked by At

A known real-valued $n\times n$ matrix $M$ can be written as $$ M = v_1v_i^TD_i, $$ (no summation on repeated indices) where the $v_i$ are orthonormal column vectors, $D_i$ are diagonal matrices and $1\leq i\leq n$.


Knowing only $M$ with the properties stated above, how can the $v_i$ and $D_i$ be computed?


Computing $MM^T$ we have $$ MM^T=v_1v_i^TD_iD_jv_jv_1^T=(v_i^TD_iD_jv_j)v_1v_1^T=cv_1v_1^T, $$ where $c$ is a real numberm. As this result must be true whatever $i$ or $j$, then the number $c$ must be the same whatever $i$ or $j$. Now the vector $v_1$ can be computed through $MM^T=cv_1v_1^T$ and then be used to obtain $$ v_1^TM=v_i^TD_i. $$

And here is how far I could go. Obviously the diagonal matrix $D_1$ can also be computed, but I have no clue about how to get the other ones.


Numerical Example

Below there is an example of a matrix $M$with the properties stated above and a solution given by the orthonormal vectors $v_i$. The diagonal matrices can be easily computed. $$ M=\begin{pmatrix} 0.14329 & 0.14545 & 0.14999 & 0.14607 & 0.18787 & 0.18648 & 0.14401\\ 0.15788 & 0.16026 & 0.16525 & 0.16094 & 0.20698 & 0.20547 & 0.15866\\ 0.10375 & 0.10532 & 0.10860 & 0.10576 & 0.13603 & 0.13503 & 0.10427\\ 0.15007 & 0.15233 & 0.15708 & 0.15298 & 0.19675 & 0.19531 & 0.15082\\ 0.11313 & 0.11484 & 0.11842 & 0.11533 & 0.14833 & 0.14724 & 0.11370\\ 0.11289 & 0.11459 & 0.11817 & 0.11508 & 0.14801 & 0.14692 & 0.11346\\ 0.11027 & 0.11193 & 0.11540 & 0.11240 & 0.14455 & 0.14350 & 0.11081 \end{pmatrix}, $$ and $$ [v_1,v_2,\ldots,v_7]= \begin{pmatrix} 0.4199104 &0.2134484 &-0.3097492& -0.3709365&-0.7358314&-0.0549746&0.0103221\\ 0.4626576& 0.4298270& 0.2838626&-0.2988347& 0.4186424& 0.1090201& 0.4941353\\ 0.3040402&-0.4154454&-0.1812354&-0.4642904& 0.3939669&-0.4718971&-0.3296302\\ 0.4397767 & -0.6990359 & 0.0094533 & 0.1918160 & -0.0817424 & 0.4438271 & 0.2782053\\ 0.3315402 & 0.1327565 & -0.3266486 & 0.6639579 & 0.0725541& -0.5220768& 0.2170005\\ 0.3308324 & 0.3013229 & -0.2818176 & 0.1981848 & 0.2493111 & 0.4958764 &-0.6107427\\ 0.3231259& 0.0047608& 0.7774454& 0.2015631& -0.2323336& -0.2167151& -0.3867475 \end{pmatrix} $$

1

There are 1 best solutions below

1
On BEST ANSWER

The statement that a matrix can be written as the product of two vectors $$M = ab^T$$ means that it is a rank-one matrix, i.e. ${\rm rank}(M)=1$.

NB: Your numerical example has ${\rm rank}(M)=7$, so it cannot be the product of two vectors.

The particular form you have chosen $$M=av^TD$$ reduces to the above canonical form by setting $\,b^T=v^TD$.

Let $m_k$ denote the $k^{th}$ column of $M$.
Then the $a$-vector is equal to any such column, after normalization. $$a=\frac{m_1}{\|m_1\|}=\frac{m_2}{\|m_2\|}=\ldots$$ The components of the $b$-vector are simply the normalization factors. $$b^T=\pmatrix{\|m_1\|&\|m_2\|&\|m_3\|&\ldots&}$$ The $b$-vector itself can be factored into a normalized vector and a scale factor. $$\beta=\|b\|=\|M\|_F,\quad n=\frac{b}{\beta},\quad b=\beta\,n$$ This yields unique factorization of a rank-one matrix in terms of two unit vectors and a scalar factor. $$M=\beta\,ab^T$$ This is, in fact, the Singular Value Decomposition of the matrix.