You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gilles (JIRA)" <ji...@apache.org> on 2014/11/03 12:19:34 UTC

[jira] [Resolved] (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 ]

Gilles resolved MATH-1144.
--------------------------
    Resolution: Implemented

Implemented in:
http://git-wip-us.apache.org/repos/asf/commons-math/commit/321fd029


> 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, MATH-1144.patch, SurfaceFitterSimpleTest.java, surface_fitting_tests.zip.001, surface_fitting_tests.zip.002
>
>
> 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
> Attached surface_fitting_tests.zip package with 2 unit tests that reproduce this problem.
> Contents of package:
> 1) simple - simple single file test that tests only in/out side effect of patched library
> 2) full - complex test that fits cylinder using sampled points (uses cylinder, fit, utils sources)
> 3) lib - contains commons-math3 jar libraries: v3.3 and v3.3A1 (patched). There are also library sources.
> 4) patch - contains SVN patch file
> To reproduce:
> Run SurfaceFitterFullTest.java and SurfaceFitterSimpleTest.java tests with commons-math3-3.3.jar OR commons-math3-3.3A1.jar libraries.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)