Details

Type: Bug

Status: Resolved

Priority: Minor

Resolution: Fixed

Affects Version/s: 3.2

Fix Version/s: 3.3

Labels:
Description
EigenDecomposition.Solver tests for singularity by comparing eigenvalues to 0 for exact equality. Elsewhere in the class and in the code, of course, very small values are considered 0. This causes the solver to consider some singular matrices as nonsingular.
The patch here includes a test as well showing the behavior – the matrix is clearly singular but isn't considered as such since one eigenvalue are ~1e14 rather than exactly 0.
(What I am not sure of is whether we should really be evaluating the norm of the imaginary eigenvalues rather than real/imag components separately. But the javadoc says the solver only supports real eigenvalues anyhow, so it's kind of moot since imag=0 for all eigenvalues.)
Issue Links
 relates to

MATH1049 Matrix decomposition and solver
 Open
Isn't the code in this class (and others similarly) supposed to work for a matrix with very small entries too? I mean that, if all eigenvalues are of the order of, say, EPSILON / 10, should the matrix be considered singular right away?