commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Sterijevski <gsterijev...@gmail.com>
Subject Re: [Math] "NonPositiveDefiniteMatrixException" message and meaning
Date Fri, 09 Sep 2011 02:27:18 GMT
I agree with Ted. You sometimes run into this issue with psuedoinverses. You
discover a zero eigenvalue at index i. The user's natural inclination is to
attribute it to the corresponding column of the data matrix.

-Greg

On Thu, Sep 8, 2011 at 6:55 PM, Ted Dunning <ted.dunning@gmail.com> wrote:

> OK.
>
> Replace that with the correct value.  I meant it to be an index.
>
> That doesn't change my other points.  There is an inherent problem with
> "less than" comments when you have subtracted several other elements
> previously and only now notices that the remainder is less than some other
> adjusted value.  The user cannot relate either value back to anything that
> they have and they may well look at their own matrix and see the opposite
> condition.  It is better to give a slightly more abstract message such as
> "Non-positive definiteness in input detected at diagonal element number
> xxx"
> where you will have to fill in the xxx since you know which place-holders
> are which.  NPD-ness is the condition that the decomposition talks about to
> the user but that condition doesn't occur at any single point in the
> matrix... it is a property of the whole.  All the algorithm can do is say
> "Badness happened, I found it this far along".
>
> On Thu, Sep 8, 2011 at 3:27 PM, Gilles Sadowski <
> gilles@harfang.homelinux.org> wrote:
>
> > >     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.
> >
> > Sorry, I don't understand much of the above.
> > However from reading the "{3}" I wonder whether there may be a
> > misunderstanding. In the message pattern, "{0}", "{1}", "{2}" are
> > placeholders:
> >  "{0}" stands for the value being tested (i.e. "ltI[i]" in the code
> > excerpt)
> >  "{1}" stands for the row (and column) index (i.e. "i")
> >  "{2}" stands for the threshold.
> >
> > There is no "{3}" placeholder.
> >
>

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