Bonjour.
Je fais de la spectroscopie et pour analyser des spectres, je dois construire un hamiltonien qui reproduit les niveaux énergétiques de ma molécules et ainsi calculer les constantes fondamentales de cette molécules.
Le Hamiltonien est ici une matrice d'une certaine taille et j'utilise la méthode de Gauss-Newton pour fitter mes données.
Le programme marche a priori bien. Je l'ai testé en simulant des transitions (des raies d'un spectres) d'une molécule dont les constantes fondamentales sont déjà connues et il me donne les résultats attendus.
Malheureusement, j'ai un petit problème. En effet, lorsque je fitte mes données, il est instable. Je m'explique. Le jeu de constantes converge vers la solution en quelques itérations et juste avant d'arriver au jeu de valeurs finales (pour lesquelles ma RMSE est minimale), une des constante devient instable et 'saute' vers une autre valeur qui est très différente de la valeur attendue. Voici un exemple :
Vous pouvez voir qu'il y a un saut entre les itérations 6 et 7. Et ce saut se répète continuellement : le programme reconverge toujours vers la même rmse (vers les 0.002834) puis diverge d'un coup etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 rmse=0.063452 1 rmse=0.039652 2 rmse=0.010345 3 rmse=0.003369 4 rmse=0.002870 5 rmse=0.002838 6 rmse=0.032519 7 rmse=0.008480 8 rmse=0.003243 9 rmse=0.002861 10
Maintenant, comme je l'ai dit précédemment, je sais exactement qu'elle constante me pose problème. Malheureusement, je ne peux pas m'en passer, car elle a un sens physique important. Au final, le programme a été testé et devrait bien se comporter. Je me demandais donc s'il était possible que ce problème soit purement numérique et si oui s'il y a des solutions qui peuvent être envisagées pour y remédier.
Merci d'avance!
Partager