par lyceen95 » 20 Juil 2022, 09:54
Je pense qu'une méthode classique est la méthode du gradient.
Ici, on cherche une courbe sous la forme y=a atan(dx-b)-c
On peut trouver une première estimation de certains paramètres:
a : La fonction atan va de -1 à 1 ; ici, nos données vont de 0.1 à 0.5 donc il nous faut une valeur de a proche de 0.2
c : Les données y vont de 0.1 à 0.5 ; la valeur au milieu entre ces 2 extrêmes est 0.3, donc c sera proche de 0.3.
b et d : Les valeurs x vont de 0.2 à 2, leur moyenne est environ 1.2 ; on peut donc considérer dans un premier temps que le point d'inflexion sera proche de 1.2 ; donc 1.2d-b=0
Et l'amplitude sur l'axe des x est de 2-0.2= 1.8, on va donc prendre d proche de 1.8 * 1.5 pour avoir déjà la forme caractéristique de cette courbe.
On a donc un premier jeu de valeurs (a=0.2, c=0.3, d=2.7, b=3.24)
On sait calculer les écarts entre les points et la courbe obtenue, et donc calculer le r².
Ensuite on tâtonne.
On prend e=0.1, et on teste les points voisins, en ajoutant ou retranchant e à chacune des valeurs a,b,c,d. Donc 81-1=80 points voisins à tester. Et on garde le point le meilleur
Et on recommence avec e=0.05 (on divise par 2 à chaque fois).
On peut utiliser aussi une procédure 'monte-carlo' : on prend des valeurs au hasard, proche de ce point initial, et on regarde pour chaque jeu de coefficients si ça améliore le r²
On a probablement besoin d'utiliser cette méthode de monte-carlo, parce que j'ai peur qu'on arrive à un minimum local (et non absolu) par la méthode du gradient.
Autrement dit : tâtonnement, dans les 2 scénarios. Mais l'étape initiale, pour trouver des valeurs plausibles pour a,b,c,d, elle reste valable dans les grandes lignes.
Je ne crois pas que des méthodes déterministes aboutissent (=on calcule telle dérivée, et on arrive à tel système...mais malheureusement, on ne sait pas résoudre le système)