title: SVD function returns matrices with not compatible dimensions
body: <p>let us consider following matrix</p>
  
  <pre><code>2 4
  1 3
  0 0
  0 0
  </code></pre>
  
  <p>creation of this matrix in python and corresponding singular value decomposition can be  done in python in  a simple  way</p>
  
  <pre><code>A =np.array([[2,4],[1,3],[0,0],[0,0]])
  u,s,v =np.linalg.svd(A)
  </code></pre>
  
  <p>when i typed  dimensions of corresponding matrix, i got following</p>
  
  <pre><code>print(u)
  print(np.diag(s))
  print(v)
  
  [-0.57604844  0.81741556  0.          0.        ]
   [ 0.          0.          1.          0.        ]
   [ 0.          0.          0.          1.        ]]
  [[5.4649857  0.        ]
   [0.         0.36596619]]
  [[-0.40455358 -0.9145143 ]
   [-0.9145143   0.40455358]]
  </code></pre>
  
  <p>therefore following code for reconstructing original matrix does not work</p>
  
  <pre><code>print(u.dot(np.dot(np.diag(s),v)))
  </code></pre>
  
  <p>how can i fix this problem? thanks in advance</p>