Hi Gilles,

Le 07/09/2011 15:05, Gilles Sadowski a écrit :
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?

The purpose was to check that impossible problems were detected properly.

Luc


Thanks,
Gilles

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



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

Reply via email to