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 :

Méthode d'interpolation a partir d"une série de valeurs


Sujet :

Algorithmes et structures de données

  1. #41
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    OK, je vois Mais je n'avais jamais entendu parlé de calcul variationnel, j'ai l'habitude plutôt des méthodes classiques comme les dérivées de la méthode de Newton

  2. #42
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Pour information il existe un EXCELLENT "tool kit" du nom de Numerical Recipes.
    On peut acheter un livre d'accompagnement ( + de 1000 pages ! ) de la + grande valeur. Il est à mon avis de + grand interet que le CD. Le CD permet de programmer rapidement en C ou C++, le livre, avec un peu de temps, de comprendre!
    "Numerical Recipes in C++" The art of scientific computing 2nd edition cambridge university press.
    ISBN 0-521-75033-4
    Ce livre achetable sur le WEB. Prix de l'ordre de 100$ à vérifier mais son rapport qualité prix est infiniment supérieur à celui de bien d'autres. Par ailleurs son titre est trompeur: on y trouve bien des bases mathématiques sérieuses pour l'ensemble des algorithmes décrits.
    Parmi des centaines de problèmes, il y est décrit de nombreuses méthodes de moindres carrés ( chap 15 pages 661 à 711 )
    La Méthode dont j'ai fourni 1 source code s'inspire de la méthode Levenberg-Marquardt dont on trouve une présentation exaustive page 688 à 693

  3. #43
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    On peut aussi le télcharger chapitre par chapitre sur le site de l'éditeur. Mais c'est un tel régal qu'il vaut l'achat.

  4. #44
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    BRAVO!
    C'est une bible! et j'en félicite les auteurs. Il y a là une maitrise tout à fait certaine et qui mérite un grand respect.

  5. #45
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par j.p.mignot
    Pour information il existe un EXCELLENT "tool kit" du nom de Numerical Recipes.
    Il y a une revue de ce livre sur le site de l'ACCU qui met un bémol... J'espère que le lien est permanent: http://www.accu.org/cgi-bin/accu/rvo...&file=n003134a

  6. #46
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Je ne connaissais pas cet article qui semble du plus garnd interet. Ma réaction à chaud sur la conclusion
    "I would recommend this book for its coverage of numerical algorithms while issuing strong caveats on source code quality. However I most strongly recommend that purchasers of this book be willing to completely re-implement the code from basics both for IPR reasons and for quality."
    En fait, je ne me sens pas directement concerné. En effet dans la totalité des cas où j'ai eu à utiliser NR, j'ai avant tout étudié la méthodologie et l'argumentaion qui l'accompagnait. Leurs sources codes m'a quelques fois aidé à m'orienter mais j'ai chaque fois réécrit le code dans le cadre de mes applications. La méthodologie, elle, n'est pas sujet à liscences - surtout si elle est du domaine publique -
    J'ai à prioris une meilleures appréciation de NR sur la maitrise et la vue globales des algorithmes que sur les implémenttaions qu'ils proposent ( commentaires pour Delphi/Pascal que je connais assez bien et pas pour C++ que j'utilise sans plus )

    Il n'en reste pas moins vrai que je vai étudier plus en détail cet article qui - si ce n'est du point de vue scientifique - du point de vuu légal et commercial peut être du + grand intérêt

    Merci!

  7. #47
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par j.p.mignot
    Pour information il existe un EXCELLENT "tool kit" du nom de Numerical Recipes.
    Parmi des centaines de problèmes, il y est décrit de nombreuses méthodes de moindres carrés ( chap 15 pages 661 à 711 )
    La Méthode dont j'ai fourni 1 source code s'inspire de la méthode Levenberg-Marquardt dont on trouve une présentation exaustive page 688 à 693
    Au niveau algorithmique, il présente des techniques de base, c'est vrai, mais anciennes tout de même, enfin c'est mon avis ! En plus le code qu'il donne est de très mauvaise qualité, sans aucune explication, rien.

    Levenberg-Marquardt > C'est un affinage sur le mu que tu as dans ta version ? Tu le mets à jour de quelle manière ? - c'est surtout ça qui est intéressant je trouve -

  8. #48
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Je vous serais grés d'expliciter un peu plus votre définition de µ dans votre mail. Je ne saurais donner suite à votre remarque sans cela!
    J'ai utilisé les articles de NR aibsi que ceux, après recherche bibiliographique, des références citées - ou implicites -
    Miantenant je n'ai pas la prétention d'affirmer que se soit la "méthode absolue" elle m'a permi de résoudre des affinement de cristallographie ( RX, Neutrons ) de trouver des solutions à mes spectres Mössbauer et mes courbes magnétiques lors de mes études. Depuis j'utilise le même type d'algorithme pour de la reconnaissance vocale, de la reconnaissance d'écriture ...
    Si vous avez une approche + éfficace - et que vous la mettiez à disposition- je serais le 1er à vous en être reconnaissant.

  9. #49
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ah, pardon
    Le µ est la constante ajoutée à la diagonale de la matrice du hessien dans la minimisation. La méthode de base consiste à prendre un µ constant, mais plusieurs raffinements peuvent être effectués surtout près de la fin de la convergence afin d'améliorer celle-ci - avec un µ, on a plutôt une version descente du gradient, tandis qu'un µ petit implique une méthode plutôt de Gauss-Newton -

  10. #50
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Sorry, j'ai l'habitude d'appeler cette constante Lambda!. J'utilise un µ "adaptatif". J'essaie d'accroitre µ mais si on "tombe" dans un minimum j'essaie de relaxer les contraintes afin d'assayer d'echapper + un faux minimum
    tentative parfoi déséspéréE si les coef de départ sont vraiment farfelus ou si on libère trop de variables peu significatives dès le départ !!!

  11. #51
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ah, OK
    C'est la méthode de NR ou c'est une autre ?

  12. #52
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Il s'aggit du calcul de la matrice du Hessian simplifiée ( c.a.d sans les dérivées secondes ) Cette hypothèse est valide si on part d'1 jeu de paramètres proches de la réalité et tant que le système converge car leurs coef dépend de la différence entre y obs et Y model. Par contre de temps en temps mon algorithme diverge et je me demande si cette simplification n'en est pas la cause. En effet au départ on peut être loin de la solution, avoir des delta y assez grands quant à supposer que y'' soit intrinsèquement petit, suivant le modèle, cela peut être osé!. Pour cela, lors de l'implémentation de cette méthode dans le cadre d'1 programme, je prend le + grand soin à estimer correctement le point de départ ce qui peut dans cetains cas être une réelle difficulté.
    J'ai essayé d'introduire y'' dans le calcul mais sans succès: la + part du temps le fit devient instable mais, faute de temps, je n'ai jamais insisté.
    Au départ j'avais utilisé cette matrice de covariance telle qu'elle. Je n'ai que récemment tenté d'utiliser un passage "smooth" entre la méthode Gauss à la méthode du gradient en 'surévaluant' les coefficients diagonaux ceci après lecture du livre en question. C'est dans cet état que se situe le code proposé. - Attention : son calcul des erreurs standards me semble faux dans l'implémentation actuelle!
    J'utilise cette méthode depuis pas mal de temps avec succès en général mais je n'ai + guère le temps d'y revenir en tant que telle. Je suis donc très interessé à tout comment, detection de bug, amélioration ( gestion intelligente de µ plutôt qu'1 passage logarithmique 'à prioris' ) que vous pourriez me suggerer

  13. #53
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ah, OK
    C'est donc un quasi-Newton avec Levenberg-Marquardt, intéressant !
    J'ai vu quelques propositions de choix de la "constante" de manière adaptative, si je trouve qqch de plus explicite - formule et tout ça -, je l'indiquerai ici

  14. #54
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Peut-être que cette publi peut être utile : http://ietfec.oxfordjournals.org/cgi/reprint/E88-A/7/1971

  15. #55
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Programme C++ pour le fit d'une courbe
    Ce message s'adresse principalement à J.P. Mignot, mais servira peut-être à d'autres aussi.

    En effet,je travaille sur la détection d'un maximum d'une fonction. J'ai donc fait un fit de cette fonction puis cherché le maximum, mais je bute sur la précision de cette détection en raison de mon "fit" plus qu'approximatif (méthode de triangulisation utilisé).

    J'ai donc recherché sur le net si il existait des personnes qui avait développé des fonctions C qui permettent de faire un "fit" de courbe plus proprement que moi.

    C'est ainsi que je suis tombé sur votre soft LESS2 qui permet de faire ce fit proprement. Merci à lui pour cette contribution qui m'enlève une sacré épine du pieds !!

    Toutefois, je n'arrive pas à implémenter cette librairie dans mon programme. En fait, je bute sur l'appel de la fontion: j'ai l'impression qu'il y a deux appels:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Real MaFonction(Real a[], Real x);
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fit_ma_fonction(...,TableauY[], TableauX[],...);
    A quoi sert le premier code et comment l'utiliser ?

    Je pose peut-être une question hors sujet -> me répondre par MP à ce moment-là.

    Et je pose peut-être une question idiote -> je m'en excuse à l'avance !

    Toute aide me sera bien utile, si vous avez un moment pour me répondre.

    Cordialement

    Xavier

  16. #56
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par User Voir le message

    Excuse moi j.p.mignot mais je n'ai pas tout pigé:
    A priori je ne possède pas de modèle:
    Quand bien même: Quand tu parles de modèle, il s'agit bien d'avoir une idée générale de l'allure de la courbe à tracer ou de la fonction...

    Mais comment incorporer ce modèle à mon algorythme ???
    Ou comment faire en sorte que mon algo prenne en compte ce modèle ???

    @+ User
    On interpole quand on prédit une valeur dans l'intervalle des observations, par
    exemple si tes x_i sont dans l'intervalle [-1,1], tu peux interpoler la
    valeur de y pour x=0,27865.

    On extrapole losque l'on cherche à prédire en dehors de l'intervalle ou l'on
    a recueilli des observations. Extrapoler à partir d'un fit polynomial n'a pas de
    sens. Il faut un modèle. Par exemple en marketing il existe une loi de vie
    des produits dites "loi logistique". On peut à partir des ventes passées et
    de ce modèle essayer de prédire les ventes à venir.

    Un modèle est donc une loi qui s'applique à ton problème.

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/01/2013, 17h22
  2. Réponses: 8
    Dernier message: 30/01/2009, 15h32
  3. Chercher une série de valeurs dans un multiset.
    Par undercrash dans le forum SL & STL
    Réponses: 1
    Dernier message: 24/10/2007, 10h18
  4. Une série de valeurs pour obtenir une valeur X
    Par Geno312 dans le forum Mathématiques
    Réponses: 22
    Dernier message: 01/10/2007, 22h09
  5. Evaluer une série de valeurs dans une StringGrid
    Par fermat dans le forum Delphi
    Réponses: 1
    Dernier message: 24/09/2006, 18h35

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