## 1 Introduction  
When solving many applied problems, it often becomes necessary to solve systems of linear algebraic equations of the form  
\[A\ x=b. \tag{1}\]  
Here, in the general case, \(A\) is a dense rectangular matrix of dimension \(M\times N\) (\(M\geq N\)), and \(b\) is a column vector with \(M\) components. The problem is to find out a vector \(x\) solving System (1). When solving real applied problems, the components of the vector \(b\) on the right side of System (1) are usually measured experimentally. Therefore, due to the presence of experimental errors, this system may not have a classical solution. However, the pseudo-solution given by the least squares method is always obtained and it is the best approximation:  
\[x=\operatorname*{argmin}_{x\in\mathbb{R}^{N}}f(x),\quad\text{where}\quad f(x)= \|Ax-b\|_{2}^{2}. \tag{2}\]  
The element realizing the minimum of Functional (2) can be found by solving the system of normal equations  
\[A^{T}A\ x=A^{T}b. \tag{3}\]  
In the most common case, when the matrix \(A\) is nondegenerate, System (3) can be solved using direct methods for solving systems of linear algebraic equations with a square matrix (see, for example, [1]). Note that the matrix \(A^{T}A\) of System (3) has dimension \(N\times N\). As a consequence, the implementation of direct solution methods in the case of an arbitrary matrix \(A\) requires \(O(MN^{2})\) operations: \((2M-1)N^{2}\) operations to determine the matrix of System (3),\((2M-1)N\) operations to determine the right hand side, and \(O(N^{3})\) operations to implement the direct method of solving System (3). Therefore, for large values of \(M\) and \(N\), the quality of the solution can be critically affected by rounding errors accumulating during the execution of these \(\sim MN^{2}\) operations. In this regard, in practice, one often searches for an element that implements the minimum of Functional (2), not by solving a system of normal Equations (3), but by using gradient methods to minimize Functional (2) itself. These methods are iterative: they start from an arbitrary initial approximation for the solution and, at each iteration, find the next better approximation for the desired solution. When calculating without errors for an infinite number of iterations, such methods converge to the element \(x\), which realizes the minimum of Functional (2). Given that the problem (1) is linear, the most efficient gradient method for solving it is the conjugate gradient method (see, for example, [2; 3; 4]). This method, in the case of exact calculations, is able to find an element that implements the minimum of Functional (2) in exactly \(N\) iterations, each of which requires \(O(MN)\) operations. However, taking into account the fact that when solving practical problems, all calculations are performed only approximately (due to the presence of rounding errors), the statement about the possibility of minimizing the functional in exactly \(N\) iterations turns out to be incorrect. In practice, the following three situations are possible. 1. Starting from some iteration, the number of which is less than \(N\), the value of the minimized functional becomes comparable to the background of rounding errors. This means that all subsequent iterations are meaningless and the iterative process can be stopped, because the value of the functional will not decrease at subsequent iterations. Knowing such an iteration number makes it possible to interrupt calculations and save computational resources by finding an approximate solution by performing a much smaller number of operations compared to direct solution methods. 2. In the first case, it is also possible that the execution of the full set of \(N\) iterations leads to \"destruction\" of the numerical solution. Thus, the possibility of early termination of the iterative process can be especially useful in solving applied problems. The implementation of this possibility in practice not only saves computational resources, but also makes it possible to find an adequate approximate solution. 3.