Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

More robust unified fitting in Minuit.migrad and Minuit.mnprofile #1009

Merged
merged 4 commits into from
Jul 30, 2024

Conversation

HDembinski
Copy link
Member

@HDembinski HDembinski commented Jul 29, 2024

Closes #1008

This patch was developed in collaboration with
ikrommyd.

  • Minuit.migrad: When we have to iterate, MnSimplex is now called by
    default in between interations, since this seems to improve convergence
    in pathological cases. The new keyword use_simplex can be used to
    disable this feature. It is only used if the algorithm has to iterate,
    so for well-behaved functions there is no penalty of extra function
    calls. Also, when we have to iterate, the strategy is now automatically
    increased to 2, since this also seems to help.
  • Minuit.mnprofile: Now uses the same iterative robust fitting that
    Minuit.migrad uses. New keywords ncall, iterate, use_simplex allow
    to customize the fits. Strategy 0 is used first, and if that fails, the
    code switches to Strategy 2 in the iterations.
  • Minuit.mncontour: Now uses the same iterative robust fitting that
    Minuit.mnprofile uses if experimental is True. New keywords ncall,
    iterate, use_simplex allow to customize the fits.
  • A new tutorial illustrates the benefits of iterating and strategy on a pathological function. It is also shown that Scipy minimizers perform worse than Minuit when the function is pathological.

@HDembinski HDembinski merged commit 301ff07 into develop Jul 30, 2024
9 checks passed
@HDembinski HDembinski deleted the robuster_fitting branch July 30, 2024 09:44
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Pass ncall and iterate in methods that build profile likelihoods
1 participant