Research Article

Computing the Pseudoinverse of Specific Toeplitz Matrices Using Rank-One Updates

Algorithm 4

function alg42 = alg42(A,ll)
%***************************%
% General Information.%
%***************************%
% Synopsis:
% alg42 = alg42(A)
% Input:
% A = the mxn initial matrix of interest.
% ll=n-m+1
% Output:
% alg42 = improvement of Algorithm 1 according to Theorem 6.
% This function follows Algorithm 2.
% The correct performance of alg42 requires the presence of yltXl function.
Astar = A;
m,n = size(A);
f = A(1,1:ll);
E0 = zeros(1,m);
product = f*f;
for i = 1:ll
E0(1,i) = sum(diag(product,i-1));
end
E1=E0;
E = toeplitz(E1);
G0=zeros(ll-1);
Gnew = hankel(zeros(1,ll-2) f(end), flip(f(1,2:end)));
for i = 1:ll-1
Gkoutnew = G0+Gnew(:,i)*Gnew(i,:);
G0=Gkoutnew;
end
Gmnew = G0;
fullmatrix = zeros(m-ll+1) zeros(m-ll+1,ll-1);zeros(ll-1,m-ll+1) Gmnew;
Gkout = E-fullmatrix;
Y02 = GkoutA;
X02 = Y02;
for l = m+1:n-1
yltout,Xlout = yltXl(Y02,X02,Astar,l,m,n);
Y02 = yltout;
X02 = Xlout;
end
alg42 = X02 - Astar*Y02(:,n)*Y02(:,n)/(1+Astar(n,:)*Y02(:,n));