[ 
https://issues.apache.org/jira/browse/MATH-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13804016#comment-13804016
 ] 

Sean Owen commented on MATH-1045:
---------------------------------

These are good points, as well as the comments from the thread on commons-dev 
-- Ted in particular notes that you can use the threshold in the decomposition 
itself to simply stop computing eigenvalues when they get small.

Now, these more advanced changes are near the limit of my ability and I am not 
sure I feel confident making them. I propose these additional changes be 
considered in another issue: (maybe) moving a threshold parameter, maybe 
modifying the decomposition.

The patch here does I think represent a small, distinct positive change, in 
that it employs a reasonable test for singularity after the fact.

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

Reply via email to