Optimisation fonctions mathématiques
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:
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) |