FiniteDifferencePropagatorConverter step size is scaled twice
In `FiniteDifferencePropagatorConverter.ObjectiveFunctionJacobian.value(...)` each parameter's scale is used as its step size. Then in `ParameterDriver.setNormalizedValue(...)` each step size is again multiplied by the parameter's scale factor. This results in the actual step size being the scale squared. This is bad from a unit perspective since the code now adding a value in units to a value in units squared. It also creates practical problems. For example when setting the scale for a parameter to 100 m (for coarse accuracy) the step size is now 10 km which is too big for the requested accuracy. Similarly setting the scale to 1 mm results in a step size of 1 um, which is small enough it can be lost in the noise.
I propose changing the step size (the increment array) in `FiniteDifferencePropagatorConverter.ObjectiveFunctionJacobian.value(...)` to 1 since it is using normalized values.
(from redmine: issue id 362, created on 2017-10-03, closed on 2017-11-25)
- Changesets:
- Revision 03e20f3c by Evan Ward on 2017-11-08T19:23:10Z:
Fix scaling in FiniteDifferencePropagatorConverter
Previously the scale factor had been applied twice when computing finite
differences, now it only applied once. Also added a test case and change log
entry.
Fixes #362
- Revision 03e20f3c by Evan Ward on 2017-11-08T19:23:10Z:
Fix scaling in FiniteDifferencePropagatorConverter
Previously the scale factor had been applied twice when computing finite
differences, now it only applied once. Also added a test case and change log
entry.
Fixes #362
- Revision 03e20f3c by Evan Ward on 2017-11-08T19:23:10Z:
Fix scaling in FiniteDifferencePropagatorConverter
Previously the scale factor had been applied twice when computing finite
differences, now it only applied once. Also added a test case and change log
entry.
Fixes #362