A nonlinear optimization workflow that works in Mathematica 11.2 (M11) gives different results in Mathematica 14 (M14), even though the source code and input data are identical. The discrepancy appears in the FindMinimum step.
Expected behavior (M11): The final verification data500 - data20 evaluates to almost 0, indicating successful convergence of FindMinimum.
Observed behavior (M14): data500 - data20 is not 0, and FindMinimum does not reach the same solution as in M11 (sometimes it fails to converge or hits numerical issues).
What I’m looking for
How should I modify the FindMinimum call (or nearby code) so that M14 reproduces the M11 results—i.e., so that data500 - data20 ≈ 0 again? Concrete suggestions (e.g., Method options, working precision, initial values and bounds, evaluation/order-of-operations tips) would be very helpful.
Environment
- Mathematica 11.2 and 14 (run on the same machine)
- Same input data and the same source code in both versions
Minimal reproduction (outline)
- Generate model values
data20 from the input.
- Compare against observed data
data500.
- Minimize a log-space squared error:
FindMinimum[Total[expr2^2], ...].
- Verify with
data500 - data20.
I will attach the two notebooks (same code, run in different versions).
Attachments
- M11.nb (result from Mathematica 11.2)
- M14.nb (result from Mathematica 14)
Notes (if relevant)
- The
FindMinimum call is the same in both versions.
- The objective is the sum of squared differences of logs (i.e.,
Total[expr2^2]), with matched data points.
- If the issue is due to changes in default numerical behavior or optimization internals in M14, examples of robust option settings would be appreciated.
Attachments: