function [coefs] = ajustarpol(n, w, x, y)
%
% Ajusta un polinomio de grado n a un conjunto de datos representado
% por los vectores x e y.
%
  ndata = length(x);
  np1   = n + 1;
  
  clear A B;
  A(np1, np1) = 0;
  B(np1, 1) = 0;
  
  for i = 1:np1
    for j = i:np1
      ipj  = i + j - 2;
      suma = 0;
      for k = 1:ndata
        suma = suma + w(k) * (x(k) ^ ipj);
      end
      A(i, j) = suma;
      A(j, i) = suma;
    end
    i1 = i - 1;
    suma = 0;
    for k = 1:ndata
      suma = suma + w(k) * y(k) * (x(k) ^ i1);
    end
    B(i, 1) = suma;
  end
  
  coefs = A \ B;
  
  fprintf('Coeficientes del polinomio de ajuste:\n');
  for i = 1:np1
    fprintf(' c%2.2d = %g\n', i - 1, coefs(i));
  end

end



