commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Dunning <ted.dunn...@gmail.com>
Subject Re: [Math] "NonPositiveDefiniteMatrixException" message and meaning
Date Thu, 08 Sep 2011 16:36:47 GMT
Since the diagonal elements are heavily modified during the Cholesky
decomposition, it isn't clear what these actually mean.

With pivoting, the meaning of these is even less clear.

Also, I thought that the test for non-positive definiteness was whether the
diagonal element after reduction from previous rows and columns was
negative.  This is only a comparison between two elements in the case of the
second diagonal element.  For all subsequent elements, the question is more
subtle.

Perhaps the message should be more like:

    The matrix was detected to not be positive definite at diagonal element
{3}.

Care should be taken to make sure that this comparison uses appropriate fuzz
so that cases that are simply rank-deficient get appropriate treatment.

On Thu, Sep 8, 2011 at 6:30 AM, Gilles Sadowski <
gilles@harfang.homelinux.org> wrote:

> Hi.
>
> In revision 1166674, I've added an argument to that exception so that it
> can
> print the value that failed the test.
> However, I also wonder whether the message should not be
> ---CUT---
>  not positive definite matrix: diagonal element at ({1},{1}) is not
> strictly larger than {2} ({0})"
> ---CUT---
> instead of the current
> ---CUT---
>  not positive definite matrix: diagonal element at ({1},{1}) is smaller
> than {2} ({0})
> ---CUT---
>
> In a class where the exceptionmay be thrown ("CholeskyDecompositionImpl"),
> the
> test is (at line 128):
> ---CUT---
>  ltI[i] < absolutePositivityThreshold
> ---CUT---
> Which will *not* fail if "absolutePositivityThreshold" is zero.
>
> Changing it to
> ---CUT---
>  ltI[i] <= absolutePositivityThreshold
> ---CUT---
> would allow to set the threshold to "0" exactly, for those cases where one
> wants to avoid raising an exception (like where the matrix assumed to be
> positive definite), but nevertheless wants to retain a basic fool-proof
> check.
>
>
> Regards,
> Gilles
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message