I have the following MATLAB code:
n = [10, 20, 50, 100];
j = 1;
% Create closed planar polygon
L = linspace(0,2.*pi,n(j)-1);
x = cos(L);
y = sin(L);
x = [x, x(1)]';
y = [y, y(1)]';
% x_hat0 and y_hat0 (first iteration)
x(:,2) = x(:,1) - 1/10 * (sum(x(:,1)));
y(:,2) = y(:,1) - 1/10 * (sum(y(:,1)));
x_pol(:,2) = x(:,2) / norm(x(:,2)); % Normalized vectors
y_pol(:,2) = y(:,2) / norm(y(:,2));
% Compute new points (produces square matrices so that I can compute
% eig(x), eig(y)
for k=2:n(j)-1
for i=1:(n(j)-1)
x(i,k+1) = (x(i,k) + x(i+1,k))/2;
y(i,k+1) = (y(i,k) + y(i+1,k))/2;
end
x(end,k+1) = x(1,k+1);
y(end,k+1) = y(1,k+1);
x_pol(:,k+1) = x(:,k+1) / norm(x(:,k+1));
y_pol(:,k+1) = y(:,k+1) / norm(y(:,k+1));
end
It basically creates a sequence of new polygons by taking the new vertices as the middle point of the previous ones: given two column vectors of x and y coordinates (starting values), it takes the middle point of each side and creates a new polygon with vertices being these new x and y coordinates. I can see that if you keep doing this, you will end up with the center of mass of the polygon. I also noticed, by chance, that the eigenvalues (of the matrices of coordinates, with each column being the x or y coordinates of one polygon) keep decreasing until they reach the value zero. Is this a coincidence? Is there a (hidden) property of this iterative process? Where can I learn more?
Real part of eigenvalues of y coordinates matrix
Lorenzo
As you noticed, the coordinates of the polygon vertices approach the centroid $G=(x_G,y_G)$. That means your square matrix for the $x$ coordinates, for instance, will approach a $n\times n$ matrix whose entries are all equal to $x_G$. Such a matrix can have as eigenvalues only $0$ and $nx_G$ (apparently you missed the latter for some reason).