IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Optimisation fonctions mathématiques


Sujet :

Calcul scientifique Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut 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 : 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)

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par sarreben Voir le message
    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.
    cls.__dict__ est un dictionnaire dont les clefs sont les noms des attributs de la classe et les valeurs l'objet associé que vous testez via type(y)==FunctionType.
    Modifier la fonction LIST_FUNC pour qu'elle retourne ces valeurs plutôt que les clefs est trivial.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    D'accord, je vais réfléchir.

    Je vous remercie.

    Cordialement,
    Benjamin.

    J'ai réfléchi.
    Pour le test, j'ai essayé les lignes de code suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    test = MODEL.__dict__
    plt.plot(np.linspace(0., 1., 100), test['FONCTION1'](np.linspace(0., 1., 100), 100., 0.1))
    plt.show()
    Avec ce code cela fonctionne.
    Toutefois, est-ce que ma construction de classe est correcte ?

    Je vous remercie.

    C'est bon, j'ai réglé mon problème.
    Cela n'est peut-être pas la meilleure solution mais ça marche !!

    Merci.

    Cordialement,
    Benjamin.

Discussions similaires

  1. optimiser une fonction mathématique
    Par kadij dans le forum MATLAB
    Réponses: 1
    Dernier message: 14/01/2012, 21h08
  2. Réponses: 0
    Dernier message: 07/12/2011, 15h36
  3. codage du calcul de dérivée d'une fonction mathématique
    Par pispa2005 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 08/01/2005, 20h54
  4. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo