docs: def _get_kriging_matrix(self, n):
          """Assembles the kriging matrix."""
  
          xyz = np.concatenate((self.X_ADJUSTED[:, np.newaxis],
                                self.Y_ADJUSTED[:, np.newaxis],
                                self.Z_ADJUSTED[:, np.newaxis]), axis=1)
          d = cdist(xyz, xyz, 'euclidean')
          a = np.zeros((n+1, n+1))
          a[:n, :n] = - self.variogram_function(self.variogram_model_parameters, d)
          np.fill_diagonal(a, 0.)
          a[n, :] = 1.0
          a[:, n] = 1.0
          a[n, n] = 0.0
  
          return a