Bonjour,

Je dispose d'une série de données, composée d'un vecteur x et d'un vecteur y.
Je voudrais identifier un modèle mathématique à partir de cette série de données.
Mon idée est de définir une classe contenant l'ensemble des équations à identifier.

Je veux faire une boucle sur le nombre de fonction à identifier.
Pour se faire, j'ai bricolé une fonction permettant de lister l'ensemble des équations à identifier.
Mon soucis est que je retourne des strings avec cette fonction.
Du coup, je ne peux pas m'en servir pour appeler les fonctions de la classe MODEL().

Je ne sais pas trop comment faire.
Auriez-vous des suggestions ?

Je vous remercie par avance.

Cordialement,
Benjamin.

Ps : Je tiens à préciser que je débute en python et encore plus avec l'objet.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
import numpy as np
from scipy.integrate import curve_fit
 
class MODEL:
    def FONCTION1(X, PARAM1, PARAM2):
        return PARAM1+np.cos(X)*PARAM2
 
    def FONCTION2(X, PARAM1, PARAM2):
        return PARAM1+np.cos(X)*PARAM2
 
def LIST_FUNC(cls):
    return [x for x, y in cls.__dict__.items() if type(y)==FunctionType]
 
 
TEST = MODEL()
 
for i in range(len(LIST_FUNC(MODEL)):
    popt, pcov = np.curvefit(TEST.LIST_FUNC[i], xdata, ydata)