[ https://issues.apache.org/jira/browse/MATH1045?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=13801866#comment13801866
]
Gilles commented on MATH1045:

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?
> EigenDecomposition.Solver should consider tiny values 0 for purposes of determining singularity
> 
>
> Key: MATH1045
> URL: https://issues.apache.org/jira/browse/MATH1045
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 3.2
> Reporter: Sean Owen
> Priority: Minor
> Labels: eigenvalue, singular
> Attachments: MATH1045.patch
>
>
> 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.)

This message was sent by Atlassian JIRA
(v6.1#6144)
