• GRAM;
  • Least-squares problem;
  • Eigenvalue problem;
  • Performance index;
  • Condition number


In this paper we discuss the practical implementation of the generalized rank annihilation method (GRAM). The practical implementation comes down to developing a computer program where two critical steps can be distinguished: the construction of the factor space and the oblique rotation of the factors. The construction of the factor space is a least-squares (LS) problem solved by singular value decomposition (SVD), whereas the rotation of the factors is brought about by solving an eigenvalue problem. In the past several formulations for GRAM have been published. The differences essentially come down to solving either a standard eigenvalue problem or a generalized eigenvalue problem. The first objective of this paper is to discuss the numerical stability of the algorithms resulting from these formulations. It is found that the generalized eigenvalue problem is only to be preferred if the construction of the factor space is not performed with maximum precision. This is demonstrated for the case where the dominant factors are calculated by the non-linear iterative partial least-squares (NIPALS) algorithm. Several performance measures are proposed to investigate the numerical accuracy of the computed solution. The previously derived bias and variance are proposed to estimate the number of physically significant digits in the computed solution. The second objective of this paper is to discuss the relevance of theoretical considerations for application of GRAM in the presence of model errors.