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] "LUDecomposition" in "AbstractLeastSquaresOptimizer"
Date Wed, 07 Sep 2011 13:05:59 GMT
On Wed, Sep 07, 2011 at 02:46:59PM +0200, Luc Maisonobe wrote:
> Le 07/09/2011 12:45, Gilles Sadowski a écrit :
> >Hello.
> >
> >In class "AbstractLeastSquaresOptimizer" (in "o.a.c.m.optimization.general"),
> >the method "getCovariances()" uses "LUDecompositionImpl" to compute the
> >inverse of a matrix.
> >In my application, this leads to a "SingularMatrixException". If I change
> >"LUDecompositionImpl" to "QRDecompositionImpl", no exception is raised.
> >Also, keeping "LUDecompositionImpl" but passing a much lower singularity
> >threshold, does not raise the exception either.
> >
> >Thus, I wonder whether there was a reason for using "LU", and if not,
> >whether I could change the decomposition solver to "QR" (as this is a
> >cleaner solution than guessing a good value for the threshold).
> 
> There are no reason for LU decomposition, and QR decomposition is
> known to be more stable. So I would also consider switching to this
> algorithm is a cleaner solution.

Fine. I'll open a JIRA issue.

A unit test "testNonInvertible" in "LevenbergMarquardtOptimizerTest" fails
with the change to "QRDecomposition" because no "SingularMatrixException"
is raised anymore.
What was the purpose of that test?

Thanks,
Gilles

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


Mime
View raw message