- #1
mikeph
- 1,235
- 18
A is pretty large (and sparse). I'd really like to be able to calculate this, using less RAM.
Eig(A'*A) represents the eigenvalues of the matrix A'*A. These eigenvalues can tell us important information about the original matrix A, such as its trace, determinant, and condition number.
The matrix A'*A can be quite large, especially for matrices with a large number of columns. This means that computing the eigenvalues for Eig(A'*A) can require a lot of memory, and depending on the capabilities of your computer, it may not have enough memory to complete the computation.
Yes, there are a few methods that can be used to compute Eig(A'*A) more efficiently. One approach is to use iterative methods, such as the power method or the Lanczos algorithm, which can reduce the computational burden by only computing a subset of the eigenvalues. Another option is to use sparse matrix techniques, which can be helpful if A'*A is a sparse matrix.
There are a few ways to avoid running out of memory when computing Eig(A'*A). One option is to use a computer with more memory or to allocate more memory to the computation. Another approach is to break up the computation into smaller chunks and then combine the results. Additionally, using sparse matrix techniques or iterative methods can also help reduce the memory requirements.
Eig(A'*A) can be used for any square matrix A. However, for non-square matrices, you can still compute the eigenvalues by using the singular value decomposition (SVD) instead of Eig(A'*A). The SVD is a more general method that can be used for rectangular matrices.