function [U,S,V]=mysvd(A)
B=A'*A;
[V,D]=eig(B);
[m0,n0]=size(B);
for i=1:m0
for j=1:n0
if i+j==m0+1
E(i,j)=1;
else
E(i,j)=0;
end
end
end
V=V*E;
D=E*D*E;
V1=V;
T=diag(D);
T0=T;
D0=D;
[m,n]=size(T);
for i=m:-1:1
if abs(T0(i)-0)< 10^(-10)
T(i)=[];
V1(:,i)=[];
D0(i,:)=[];
end
end
S=sqrt(D0);
D1=diag(sqrt(T));
U=A*V1*inv(D1);
B=A'*A;
[V,D]=eig(B);
[m0,n0]=size(B);
for i=1:m0
for j=1:n0
if i+j==m0+1
E(i,j)=1;
else
E(i,j)=0;
end
end
end
V=V*E;
D=E*D*E;
V1=V;
T=diag(D);
T0=T;
D0=D;
[m,n]=size(T);
for i=m:-1:1
if abs(T0(i)-0)< 10^(-10)
T(i)=[];
V1(:,i)=[];
D0(i,:)=[];
end
end
S=sqrt(D0);
D1=diag(sqrt(T));
U=A*V1*inv(D1);