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

Algorithmes et structures de données Discussion :

traitement de courbe assouplissement et justesse


Sujet :

Algorithmes et structures de données

  1. #1
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut traitement de courbe assouplissement et justesse
    Le titre le montre bien, ce que je cherche est contradictoire.
    J'ai mis en place, déjà grâce à votre aide, un petit programme qui récupère un point donné sur une courbe, en passant par une recherche de sa dérivé seconde (récupère l'abscisse quand la dérivée seconde est nul)
    Dans le meilleur des mondes, l'algo fait son boulot, in real life aussi mais il est limité, par la conformation des courbes.

    Bien que de manière générale j'ai la forme d'une exponentielle précédé par une accélération, ce n'est pas toujours le cas, parfois l'accélération n'est pas suffisamment significatif pour représenter le plus haut pic sur ma dérivé seconde (c'est le critère que j'utilise pour discriminer cette partie précise de la courbe), parfois il n'y a tout simplement pas de point d'inflexion (honnêtement à l'oeil, je le remarque pas, mais sur la dérivé, il n'y a pas de passage d'un côté à l'autre de l'axe des abscisses ...)

    Je ne sais plus trop comment m'y prendre pour gérer un maximum de cas.

    J'ai déjà fait ceci :
    -Rechercher les "pic" de la dérivé seconde en admettant que toute valeur Y de cette courbe supérieur à deux tiers du maximum en est un, et alors prendre le premier pic,
    -Rechercher en parallèle la même chose mais sur une courbe lissé par moyenne, prendre le résultat le plus approprié.

    Mais pour les cas où l'expo "n'existe pas vraiment", je n'ai rien trouver.
    Même si vous n'avez pas d'idée pour mon cas, j'aimerais bien avoir des conseils quant aux méthodes pour englober un maximum de cas ^^"
    Expert en recherche google caféinomane

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 72
    Points : 129
    Points
    129
    Par défaut
    Bonjour,

    La méthode pour trouver le point d'inflexion avec la dérivée seconde peut être qualifiée de locale, je pense que tu as intérêt à utiliser une méthode globale qui tient compte de tous les points observés.
    Si je me base sur le dessin des 3 courbes que tu as posté http://www.developpez.net/forums/d13...e/#post7595314 on voit que la pente maximale de la partie croissante est liée à l'asymptote.( y = K)
    Avec un modèle f(x)= K / (1+e^(-r (x-x0))), tu peux trouver K avec les valeurs de la partie stable (ou presque) ensuite tu peux trouver r et x0 en faisant une régression linéaire.
    y = K / (1+e^(-r (x-x0)) peut s'écrire ln( K/y -1 ) = -r( x-x0)
    donc si on pose z = ln( K / y -1 ) on a z = -rx + rx0 qui correspond à l'équation d'une droite

    Pratiquement on calcule les z_i = ln( K/ y_i - 1 ) où K a été déterminé par l'asymptote et on cherche a et b par régression linéaire ( z= ax+b)
    d'où les valeurs de r et x0 (pour la régression linéaire je pense qu'il faut se restreindre aux points de la partie en S).
    les images en miniatures montrent l'influence des coef K , r et x0 sur la courbe.
    Ça m'intéresse car c'est en pratique une partie du programme de math de terminale ES!(fonctions logistiques)
    Tu avais déjà pensé à tout ça, je confirme seulement que c'est une bonne démarche
    Images attachées Images attachées    

  3. #3
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut

    J'ai jamais reçu de notification pour ce post, désolé pour le temps de réponse (j'étais passé sur une autre partie moins terre à terre du programme en attendant une réponse).

    Alors là, il y a beaucoup de math ! ^^ Je te remercie de m'appuyer sur l'idée de fonction logistique et de régression. Ce qui me bloque c'est la méthode à employer. J'ai beau avoir fait une filière S, la fonction logistique je ne l'ai utilisé et connu qu'après, dans ma formation biologique puis plus en détail en biostat dans ma formation bioinfo. De ce fait ba ... je suis un peu perdu, je ne sais pas comment effectuer ma régression.
    On se base par principe sur la découverte de variables, afin de recréer une fonction qui match assez bien, à l'alpha prêt, mais comment concrêtement retrouver ces valeurs Oo. L'asymptote, ça, je vois très bien, du moins dans les cas où elle sera bien horizontale, mais j'arriverais toujours à me débrouiller. Par contre pour le reste...

    Si j'arrive à te suivre :
    Pour chaque t, chercher z(t) en passant la formule (ln( K/(y(t))-1) Et après , il manque encore r et Xo a trouver non ? (j'ai pas compris la suite)

    Désolé j'ai beaucoup perdu concernant la logique mathématique, c'est trop abstrait pour moi @.@
    Expert en recherche google caféinomane

  4. #4
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    Bonjour,
    Depuis mon dernier message j'ai tenté des trucs, notamment visualiser la courbe de la fonction linéaire qui résulte de la première partie du traitement. Et résultat c'est linéaire! sur la partie exponentielle uniquement... En même temps en travaillant sur du log fallait s'attendre à ça ^^' Mais du coup je ne sais pas vraiment comment poursuivre. Trouver a et b de cette fonction en théorie c'est simple, en pratique je ne sais pas comment discriminer la partie linéaire du reste...
    Expert en recherche google caféinomane

Discussions similaires

  1. RDotNet et traitement de courbe en VB.NET
    Par Uranne-jimmy dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/10/2013, 10h55
  2. traitement d'une "courbe-image"
    Par ilasreb08 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 14/04/2008, 21h54
  3. Design patterns pour un logiciel de traitements de courbes.
    Par theMan dans le forum Design Patterns
    Réponses: 1
    Dernier message: 27/07/2006, 20h19
  4. [VB6] [MSChart] Courbe incorrecte
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 08/10/2002, 21h53
  5. Matrice de filtrage ?
    Par gimlithedwarf dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/08/2002, 09h44

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