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$ – Omnomnomnom 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$ – Omnomnomnom 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\\0&\sigma_2&0} $$ where $\sigma_2 = 0$. We have $$ U\Sigma V^T = \pmatrix{u_1 & u_2 & u_3} \pmatrix{\sigma_1&0&0\\0&\sigma_2&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$ – Omnomnomnom Dec 9 '14 at 0:20
  • $\begingroup$ Thank you so much! I'm going to try that! $\endgroup$ – cliff Dec 9 '14 at 0:26
  • $\begingroup$ See the answer to math.stackexchange.com/questions/1250359/… $\endgroup$ – user157986 Jul 26 '16 at 14:06
  • $\begingroup$ How did you get the first equation? $\endgroup$ – Jay Wong Nov 6 '19 at 23:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.