function x=LeastSquares(A,b)
m = []; n = [];
len=length(b);
[am,an]=size(A);
A0 = A(1:an,:);
AA = A0'*A0;
AAN = inv(AA);
x = AAN*A0'*b(1:an);
for i=an+1:am
s = 0;
a = A(i,:);
M = 1+a*AAN*a';
x = x + AAN*a'*inv(M)*(b(i)-a*x);
AAN = AAN-AAN*a'*inv(M)*a*AAN;
for j=1:am
xi = 0;
for k = 1:an
xi = xi + A(j,k)*x(k);
end
s = s + b(j) - xi;
end
m(end+1)=i-an;
n(end+1)=s;
end
x = x';
end