The matrix is $$ A = \left( \begin{matrix} 1 & 2 \\ 2 & 4 \\ 3 & 6 \end{matrix} \right), $$ The rank is 1, there only one nonzero eigenvalue, and when I was doing the svd decomposition, I can only find the V and but not U. In U, I can only get the first column, but the rest two column is hard to calculate. As a look up online, the case is mostly column full rank or row full rank, or the Eigenvector is unit vector, but this one is quite special. anyone know how can I get the U here?
-
$\begingroup$ The first column of $\mathbf{U}$ is determined by your matrix $\mathbf{A}$. The remaining columns of $\mathbf{U}$ can be any columns that are pairwise orthogonal and orthogonal to the first column. $\endgroup$ – megas Dec 8 '14 at 23:49
-
$\begingroup$ The key here is to note that there are many possible choices for $U$. $\endgroup$ – Ben Grossmann Dec 8 '14 at 23:54
-
$\begingroup$ yup, I guess so. However, when I use the maltab to check the answer, the value for U is always the same though. $\endgroup$ – cliff Dec 8 '14 at 23:59
-
$\begingroup$ Because matlab is programmed to make a particular choice. Given a vector $u_1$, do you know how to find an orthonormal basis $\{u_1,u_2,u_3\}$? $\endgroup$ – Ben Grossmann Dec 9 '14 at 0:05
-
$\begingroup$ Let me try the G-S method first, I will update my status $\endgroup$ – cliff Dec 9 '14 at 0:42
I'm going to use a shortcut to get the singular value decomposition here; it turns out that it's really easy for rank $1$ matrices. In particular, we have $$ A = \pmatrix{1\\2\\3} \pmatrix{1&2} = \sqrt{70} \pmatrix{1/\sqrt{14}\\2/\sqrt{14}\\3/\sqrt{14}} \pmatrix{1/\sqrt{5}&2/\sqrt{5}} $$ That doesn't look quite like an SVD... yet. Let $u_1$ and $v_1$ be the vectors given by $$ u_1 = \pmatrix{1/\sqrt{14}\\2/\sqrt{14}\\3/\sqrt{14}}, \quad v_1 = \pmatrix{1/\sqrt{5}\\2/\sqrt{5}} $$ We can then write $A = \sigma_1 u_1 v_1^T$, where $\sigma_1 = \sqrt{70}$.
Now, find a $u_2,u_3$ and $v_2$ so that $\{u_1,u_2,u_3\}$ and $\{v_1,v_2\}$ are bases of $\Bbb R^3$ and $\Bbb R^2$ respectively. Let $U$ be the matrix whose columns are $u_i$ and $V$ the matrix whose columns are $v_i$. Finally, let $$ \Sigma = \pmatrix{\sigma_1&0\\0&\sigma_2\\0&0} $$ where $\sigma_2 = 0$. We have $$ U\Sigma V^T = \pmatrix{u_1 & u_2 & u_3} \pmatrix{\sigma_1&0\\0&\sigma_2\\0&0} \pmatrix{v_1^T\\ v_2^T} $$ Compute this product using block-matrix multiplication and verify that I have given the SVD of $A$.
-
$\begingroup$ It is really a fast way, nice. So the question here is going to be how to calculate the u_2 and u_3 right? $\endgroup$ – cliff Dec 9 '14 at 0:17
-
$\begingroup$ Right. There are a lot of answers, and any will do. The usual approach (and what I would guess matlab uses) is to apply the Gram Schmidt process $\endgroup$ – Ben Grossmann Dec 9 '14 at 0:20
-
-
$\begingroup$ See the answer to math.stackexchange.com/questions/1250359/… $\endgroup$ – user157986 Jul 26 '16 at 14:06
-