You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Olexiy Movchan (JIRA)" <ji...@apache.org> on 2014/08/11 15:41:11 UTC

[jira] [Updated] (MATH-1144) LevenbergMarquardtOptimizer does not allow to change current point during optimization

     [ https://issues.apache.org/jira/browse/MATH-1144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Olexiy Movchan updated MATH-1144:
---------------------------------

    Attachment: LevenbergMarquardtOptimizer.java.patch

Added patch that fixes this regression in behavior.

We pass current point by reference to evaluator. So that we allow IN/OUT side effect for current point value.

> LevenbergMarquardtOptimizer does not allow to change current point during optimization
> --------------------------------------------------------------------------------------
>
>                 Key: MATH-1144
>                 URL: https://issues.apache.org/jira/browse/MATH-1144
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.3
>            Reporter: Olexiy Movchan
>              Labels: fitting
>             Fix For: 3.4
>
>         Attachments: LevenbergMarquardtOptimizer.java.patch
>
>
> It's a regression to commons-math v2.0.
> Our software uses LevenbergMarquardtOptimizer for surface fitting by sampled points. Our parameterization of the surface we are fitting may be unconstrained, for example it is enough to have only 4 variables to represent cylinder axis and origin (using euler angles and origin distance), but to simplify derivative computation we instead use 6 parameter representation (vector + point). To make sure that the we constrain our search to valid vectors and origins, we need to renormalize and update surface parameters on every step of optimization.
> Please see this article for details of 3d surface fitting and parameter normalization:
> http://nvlpubs.nist.gov/nistpubs/jres/103/6/j36sha.pdf



--
This message was sent by Atlassian JIRA
(v6.2#6252)