commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles Sadowski <gil...@harfang.homelinux.org>
Subject Re: [Math] "NonPositiveDefiniteMatrixException" message and meaning
Date Fri, 09 Sep 2011 11:13:07 GMT
On Thu, Sep 08, 2011 at 09:27:18PM -0500, Greg Sterijevski wrote:
> 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".

OK, I understand. But do you agree that the test should be changed from

   ltI[i] < absolutePositivityThreshold

to

   ltI[i] <= absolutePositivityThreshold

?

Gilles

> > 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.
> > >
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message