[Rd] Problem in matrix definition?
Fabio Mathias Corrêa
fabio.ufla at yahoo.com.br
Mon Aug 31 19:09:03 CEST 2009
The problem is that arrays are the same size. The only difference is how they were built!
The way to build the matrix should not influence in the outcome!
Below is the commented code in MatLab!
Neural Information Processing - Letters and Reviews Vol.8, No.2, August 2005
function Y = geninv(G)
% Returns the Moore-Penrose inverse of the argument
% Transpose if m < n
[m,n]=size(G); transpose=false;
if m<n
transpose=true;
A=G*G';
n=m;
else
A=G'*G;
end
% Full rank Cholesky factorization of A
dA=diag(A); tol= min(dA(dA>0))*1e-9;
L=zeros(size(A));
r=0;
for k=1:n
r=r+1;
L(k:n,r)=A(k:n,k)-L(k:n,1:(r-1))*L(k,1:(r-1))';
% Note: for r=1, the substracted vector is zero
if L(k,r)>tol
L(k,r)=sqrt(L(k,r));
if k<n
L((k+1):n,r)=L((k+1):n,r)/L(k,r);
end
else
r=r-1;
end
end
L=L(:,1:r);
% Computation of the generalized inverse of G
M=inv(L'*L);
if transpose
Y=G'*L*M*M*L';
else
Y=L*M*M*L'*G';
end
Thanks!
Fábio Mathias Corrêa
Estatística e Experimentação Agropecuária/UFLA
Brazil
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
More information about the R-devel
mailing list