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

Mathématiques Discussion :

Optimisation de fonction


Sujet :

Mathématiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut Optimisation de fonction
    Bonjour à toutes et à tous,

    Je fais actuellement une régression non linéaire (moindres carrés) dans l'optique de fitter un ensemble de points avec deux fonctions :
    -Pour un vecteur de données x décroissantes, j'utilise la fonction y1=a.exp(b.x)+c
    -Pour un vecteur de données x croissantes, j'utilise la fonction y2=-a.exp(-b.x)+c
    ceci pour des raisons bien particulières.

    J'utilise l'algorithme de Levenberg-Marquardt pour la minimization des fonctions.

    Est-ce que vous pensez qu'il est possible de regrouper ces deux fonctions en une seule suivant la "pente" des données (décroissante, croissante) ?
    Quelque chose du style : y3=al.y1+be.y2
    ou al et be prendrait les valeurs 0 ou 1 (une sorte de OU exclusif) ?
    il existe certainement une manière élégante de le faire, mais je ne vois pas...

    Merci pour vos conseils et vos remarques...
    Gian

  2. #2
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Je te conseillerai de décider a priori si ta fonction est croissante ou décroissante. Une manière simple est de comparer les ordonnées des points extrèmes, une autre est de regarder la pente de la droite des moindres carrés...

    Sinon tu peux faire
    y3=ay1 + (1-a)y2.

    Mais lorsque tu fais l'interpolation, tu ne peux a priori pas fixer que a est entier.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    comme a dit Francis, une combinaison style poids..

    Par contre, bien que plus élégant, ça sera moins optimisé, car en général cela fera les 2 calculs....

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut
    Merci pour ces réponses!
    Je vais tenter la chose....

  5. #5
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Le log de tes équations est linéaire, donc ton prob a une écriture matricielle, et une solution analytique. Tu n'as pas besoin d'un solveur pour le résoudre. juste de Matlab (une ligne en matlab. J'ai écrit un tuto là-dessus dans la FAQ matlab) ou à défaut de matlab d'un algo de décomposition de matrice symétrique définie positive pour faire une division matricielle.

    Pour la deuxieme question j'ai pas bien compris ton prob de pente. tu veux résoudre deux équations en meme temps ? c'est possible (voir mon tuto)

    OL

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut
    Merci de l'info, j'utilise effectivement matlab pour faire la regression non linéaire.
    vais regarder tes tutos...

    Edit : Je précise je suis sous Octave

  7. #7
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    cf ton MP : mon tuto est ici.
    OL

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    Citation Envoyé par Giansolo
    Merci de l'info, j'utilise effectivement matlab pour faire la regression non linéaire.
    vais regarder tes tutos...

    Edit : Je précise je suis sous Octave
    justement le fond de la pensée de ol9245 etait que ton probleme se ramene a un probleme lineaire.

Discussions similaires

  1. Optimisation des fonctions?
    Par JauB dans le forum DB2
    Réponses: 5
    Dernier message: 31/01/2007, 20h47
  2. Optimiser une fonction (trouver le minimum)
    Par Noel Gallagher dans le forum C
    Réponses: 2
    Dernier message: 27/11/2006, 06h46
  3. probleme d'optimisation de fonction
    Par franc82 dans le forum C++
    Réponses: 3
    Dernier message: 31/10/2006, 09h45
  4. Optimisation de fonction
    Par Elendhil dans le forum Assembleur
    Réponses: 2
    Dernier message: 19/06/2006, 15h03
  5. Optimisation de fonction ...
    Par dark_vidor dans le forum Langage
    Réponses: 10
    Dernier message: 02/01/2006, 11h50

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