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?
-
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. – megas Dec 08 '14 at 23:49
-
The key here is to note that there are many possible choices for $U$. – Ben Grossmann Dec 08 '14 at 23:54
-
yup, I guess so. However, when I use the maltab to check the answer, the value for U is always the same though. – cliff Dec 08 '14 at 23:59
-
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}$? – Ben Grossmann Dec 09 '14 at 00:05
-
Let me try the G-S method first, I will update my status – cliff Dec 09 '14 at 00:42
-
So, I have a thought. I try to find u_2 which has many possible, and then find u_3 which is orthogonal to u_1 and u_2. Is it right? – cliff Dec 09 '14 at 00:49
-
@megas: The columns cannot be any columns. They should be eigenvectors corresponding to the eigen value. You have to find the eigenspace for the eigenvalue 0, find an orthonormal basis and use it as the remaining columns of $U$. – user157986 Jul 26 '16 at 14:04
1 Answers
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$.
- 225,327
-
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? – cliff Dec 09 '14 at 00:17
-
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 – Ben Grossmann Dec 09 '14 at 00:20
-
-
See the answer to http://math.stackexchange.com/questions/1250359/svd-how-to-find-the-columnvector-of-u-corresponding-to-a-singular-value-equal-t/1871410#1871410 – user157986 Jul 26 '16 at 14:06
-
-
@JayWong one systematic approach is as follows: take $u$ to be the first non-zero column and then solve for the elements of $v$. – Ben Grossmann Nov 07 '19 at 15:44
-