@Nils Wagner, thank you so much for taking your time to respond to my question urgently. However, I would prefer a solved example of such problem and not solving it with computer codes. I need a manual solution to the problem
A=[ 2 0 ; 0 -3 ; 0 0 ], where the entries are given row wise, the first two elements from left is the first row, followed like wise the 2nd row and 3rd row.
here, Rank(A) =2, Therefore row space of A, denoted Rowsp(A), is R^2 space, which implies any orthonormal basis in R^2 can form the V(2 by2) matrix in the SVD decomposition.
the Column space of A, denoted as Colsp(A), is 2 dim. subspace of R^3, from A itself we can visually see that the Orthonormal set { (1,0,0)', (0,1,0)' }, where ' stands for transpose operation , is a basis for Colsp(A).
The thin SVD of A, would be given as A = U(3 by 2)* S(2 by 2)* V(2 by 2)'
You can follow the following steps to determine The SVD in a systematic manner:
1) Given A(m by n), compute A'*A(n by n) and A*A'(m by m)
2) compute the eigenvalues and corresponding eigenvectors of A'*A(n by n) and A*A'(m by m), the eigenvalues will be same for both, and corresponding orthonormal eigenvectors set be v1,v2,...vn and u1,u2,....um respectively.
3) Retain only the non zero eigenvalues computed above, this is equal to rank of A( and A' as well), compute the squared root of these non zero eigenvalues and arrange them in non-increasing sequence from largest to smallest: s1, s2,...sk, where rank(A) = k
4) determine the phase sign of ui eigenvectors correctly, to do this compute A*vi=si* ui(c) , for each i=1,2,...k, use the ui(c)'s computed in these calculations since they are phase compatible with the fixed set of vi's used .
compute U(m by k) =[ u1(c) u2(c) uk(c) ] , S(k by k) = diag( s1,s2,...sk) and V(n by k)= [ v1 v2 vk ], A = U*S*V' is the SVD of A.
Compute Mi = (1/si)*vi*ui(c)', for each i =1,2,...k, the Moore Penrose Psuedoinverse is given as pinv(A)= SUM of Mi, i=1,2,..k
pinv(A) = V*(inverse of S)* U', where inverse of S = diag(1/s1, 1/s2,...1/sk)
in the numerical example above, since A has full column rank , pinv(A) = [ inverse of (A'*A) ]* A'