Petite histoire de la procédure MINIMI...

• De nombreux laboratoires de recherche en physique utilisent le logiciel de minimisation MINUIT pour ajuster des modèles théoriques sur des données expérimentales.

Après 1970, au fur et à mesure de ses développements successifs, le logiciel MINUIT (en fortran) s'était toutefois déjà progressivement transformé en “usine à gaz” : un logiciel hyper complet, mais d'utilisation très lourde pour effectuer des actions basiques. La situation a encore abominablement empiré depuis (bien que modernisé en version MINUIT2, en C++, l'usine à gaz est devenue carrément “intergalactique”... les fous d'informatique peuvent le vérifier facilement avec une petite recherche sur internet : rien que pour en comprendre les rouages élémentaires, il faut se plonger dedans pendant trois jours).

Dès le début des complications, Berthon et Portes avaient choisi de simplifier la tâche des utilisateurs “ordinaires” en en programmant (en fortran) une version très basique : MINCON ; beaucoup plus simple à mettre en œuvre, mais possédant de nombreuses fonctionnalités dont une prise en compte efficace des calculs d'incertitudes.

• Dans les années 1980, faute de logiciels équivalents sur Macintosh, j'en avais reprogrammé une version en pascal ; encore plus simplifiée, mais j'y avais joint une interface rudimentaire avec un interpréteur de formules et un traceur de graphiques (MINGRAPH ; dont le code est sur mon site).

L'évolution des ordinateurs et de leurs systèmes d'exploitation nécessite toutefois une mise à niveau incessante des logiciels. Je n'ai hélas pas le temps suffisant pour assurer cela. Or, bien que plusieurs logiciels récents disposent de fonctionnalités semblables, aucun ne gère efficacement les calculs d'incertitudes et des corrélations. Même Maple ou Mathematica semblent ne pas les gérer en standard (on ne peut les gérer qu'à l'aide d'une programmation conséquente).

remarque : on peut s'étonner que je propose encore (ci-dessus) une version pour Mac OS 9... qu'on peut juger obsolète ; certes, mais cette version peut très bien encore fonctionner avec l'émulateur SheepShaver... en freeware... (ce qui n'est pas sans intérêt pour de nombreux étudiants).

remarque : pour traiter le cas des paramètres soumis à des limites physiques, la méthode que je propose est différente de celle utilisée pour MINUIT et MINCON.

• Le cœur du processus étant dans la procédure MINIMI (un bijou de simplicité autant que d'efficacité), j'ai choisi l'option consistant à reprogrammer la procédure MINIMI dans l'environnement de Maple (j'en ai profité pour améliorer un peu le calcul d'incertitudes).

Pour faciliter les mises à jour (et simplifier les fichiers d'utilisation) j'ai placé MINIMI dans une bibliothèque (exemple1 ; exemple 2 ; exemple 3).

     TÉLÉCHARGEMENT - version mw 42 (procédure, bibliothèque et exemples de fichiers d'utilisation)

remarque : la version 42 améliore un peu le calcul d'incertitudes ainsi que la lisibilité de certaines parties du code.

• Une autre approche consister à faire de même vis à vis de l'environnement Excel/VisualBasic (code interface ; code minimi ; code fonction) ; exemple polaire (code fonction ; graphique polaire).

     TÉLÉCHARGEMENT - version xls 31 (classeurs Excel avec interface, modules et exemples)

remarque : la version 31 améliore la méthode pour utiliser MINIMI en imposant des bornes à certains des paramètres ajustés, mais elle contourne aussi deux bugs d'Excel 2007 et 2011 (la seule version où subsiste "définitivement" un problème est donc la version Mac 2008 où il n'y avait pas de VBA...).

• Les macro Excel sont adaptables pour LibreOffice ; je propose ici une version LibreOffice/Basic (code interface ; code minimi ; code fonction) ; exemple polaire (code fonction ; graphique polaire).

     TÉLÉCHARGEMENT - version ods 31 (classeurs LibreOffice avec interface, modules et exemples)

remarque : la version 31 améliore la méthode pour utiliser MINIMI en imposant des bornes à certains des paramètres ajustés, mais elle est surtout totalement adaptée à LibreOffice (par contre il y subsiste une partie de code VBA, compatible avec LibreOffice mais non avec OpenOffice.

• Projets éventuels : adapter pour OpenOffice...

• Bien que le langage python me semble encore un peu manquer de rigueur sur certains aspects, le fait qu'il soit relativement "à la mode" m'a incité à traduire MINIMI dans cet environnement. La version semble fonctionner mais est encore à tester ; pour cela utiliser la bibliothèque MinimiLib / myFCN (exemple 1 / myFCN / sortie ; exemple 2 / myFCN / sortie ; exemple 3 / myFCN / sortie).

     TÉLÉCHARGEMENT - version py 18 (modules, bibliothèque et exemples de fichiers d'utilisation)

• Des renseignements utiles sur la minimisation et les calculs d'incertitudes peuvent aussi être trouvés sur d'autres sites, en particulier :  le site d'Y.Cortial...




Retour au sommaire