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 :

approximation de courbes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut approximation de courbes
    Le titre n'est pas forcément évocateur, donc voilà :

    Pour un projet perso, j'ai besoin de déterminer 2 paramètres (la densité de l'eau et sa viscosité dynamique en fonction de la trempérature) avec une précision 'moyenne' (la 4 ou 5ème décimale).

    Pour ce faire, j'ai réussi à mettre la main sur les courbes (merci Google) mais pas sur les équations qui ont permis de les tracer. Or, il m'est difficile d'intégrer ces courbes dans mon programme.

    Serait-il donc possible de déterminer une équation de type polynomiale pour calculer les différentes valeurs, à partir des points de la courbe que je connais déjà (un peu à la façon des calculatrices scientifiques avec un mode "Solveur") ? Je précise bien que ces équations ne doivent pas forcément me donner la valeur archi-exacte à la 1000 décimale, mais seulement une bonne approximation (en gros : les courbes densité/visco que j'obtiendrais avec ces équations doivent se superposer au mieux avec les courbes en ma possession, si possible avec une précision de l'ordre de .0001 ou .00001)

    Il me semble, mais je n'en suis pas sûr, avoir vu l'un de mes profs de maths, il y a bien longtemps, utiliser une méthode à base de matrice pour trouver les divers coefficients.

    Je ne sais pas si j'ai été asez explicite, mais si qqun pouvait me renseigner.

    Cordialement,

    Damien

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    beaucoup trop vaste comme question...

    Il y a des dizaines de manière d'interpoler une courbe...

    Pour ne citer que quelques exemples :

    dfférents types :

    linéaire, cubique, polynomial, exponentiel, ..

    différentes méthodes (ou algos) :

    Bresenham, Spline, spline cubiques, hermite, itérations, moindre carrés, ......

    Si vous voulez qu'on vous aide, précisez un peu le problème, le but exact (déterminer des coefficients d'une équation, trouver la courbe s'approchant le plus de l'ensemble des points, trouver une courbe passant exactement par les points, est-ce que cette courbe doit être continue, à dérivée premièere et/ou seconde continue, etc...) et postez un exemple de courbe, avec éventuellement hypothèses physiques sous-jacentes (comportement attendu théorique, etc..)

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Est-ce que, par hasard, ces courbes collent a tes valeurs ?

    Densité de l'eau (L. W. Tilton, J. K. Taylor):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
              (T-3.9863)^2   T+288.9414 
    d = ( 1 - ------------ x ---------- ) x 0.999973
                508929.2     T+68.12963
    Viscosité (Helmholtz):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mu = 1.779x10^-3 / ( 1 + 0.03368*T + 0.00022099*T^2 )
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    @Souviron34 :
    Ce que je cherche est :
    - trouver une courbe passant exactement par des points dont je connais l'abscisse et l'ordonnée (et donc "interpolant" les ordonnées des points dont je ne connais que l'abscisse)
    - cette courbe doit être continue
    Désolé, je ne suis pas un matheux

    @pseudocode :
    - je vérifierai ce soir pour Helmholtz (je ne connaissais pas cette équation, mais comme il en a fait plusieurs)
    - pour l'équation de taylor-tilton : je n'arrive pas à afficher l'image (on me demande de me connecter, ce qui est déjà le cas, et quand je me ré-identifie, on me jette...)

    Edit : @pseudocode : même après déconnexion/reconnexion, pas moyen d'avoir accès à tilton-taylor. Pourrais-tu m'envoyer le jpg en MP stp ? Ou me donner une adresse ou je pourrais l'avoir ?

  5. #5
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Bon alors il y a plusieurs solutions :

    1) le spline bi-cubique
    (te donne une courbe arrondie PASSANT par les points, dont la dérivée première (tangente) ET la dérivée seconde (courbure) sont continues)

    En général existe (voir GraphicsGems) avec 2 routines : une calcule les coefficients avec les points de mesure, l'autre te permet d'interpoler n'importe où. (chacune une 15 aine de lignes de code)

    Inconvénient : (mais je ne pense pas que ce soit le cas dans ton cas, car c'est une grandeur physique, à moins qu'il y ait des points de discontinuité)
    Si 2 points sont assez proches mais avec des valeurs assez différentes, possibilités d'oscillations importantes (afin de garantir les continuités)....

    Avantage : pour des courbes physiques normales, fonctionne en général parfaitement , et colle à la réalité (courbe douce)

    2) Interpolation linéaire couple à couple

    3) Interpolation polynomiale

    4) .....

    Pour ce genre de problème je pencherais fortement pour le spline...

    Cherche dans Graphics Gems. Si tu ne trouves pas je peux fournir le code (en C).

    [EDIT]

    En relisant le post de pseudo-code, il y a aussi, si on connait l'équation, une méthode simple par itération dychotomique, convergeant très rapidement...

    [/EDIT]

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Impossible d'envoyer par MP... J'ai réécrit la formule en texte
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Ah là je m'incline

    C'est sûr qu'avec l'équation c'est tout de suite mieux

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par souviron34
    Ah là je m'incline

    C'est sûr qu'avec l'équation c'est tout de suite mieux
    Bah maintenant faut voir si la formule est applicable. Si je me souvient bien elle est applicable pour une pression normale et une eau non saline.

    Sinon, il y a la bonne vieille approximation: densite=1, viscosité=0
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    @pseudocode :

    La formule pourla densité de l'eau me semble très bien (j'en connaissais une autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((0.0000000008*T^5 -0.000000303*T^4 + 0.000053678*T^3 -0.00780474*T^2 +0.0523705799*T)+999.83932)/1000
    Les résultats entre ta formule et la mienne sont cohérents.

    Par contre pour la formule d'Helmhotz, il y a un facteur 10^4 qui doit se promener quelque part (les résultats de ta formule sont 10000 fois plus élevé que sur mes courbes, avec un résultat catastrophique sur mon reynolds et donc ma perte de charge. Ne serait-ce pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mu = 1779.10^-6 / ( 1 + 0.03368*T + 0.00022099*T^2 )
    En tous cas, merci pour toutes ces infos. Pourrais-tu me dire où tu as déniché ces formules, car j'ai regardé sur le web (Google) et j'ai rien trouvé. Je suppose que ça viens d'un manuel de physique ou de thermodynamique ?

    @souviron34
    Spline bi-cubique ? c'est pas gros mot ce truc ? LOL
    Ce que je recherchais, c'était une équation comme celle ci-dessus (décomposition en 'puissances')
    Mais je vais me renseigne sur GraphicsGems (il me semble que c'est un bouquin...)

    Cordialement,

    Damien

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par diam's
    @pseudocode :
    Par contre pour la formule d'Helmhotz, il y a un facteur 10^4 qui doit se promener quelque part
    Oups. Effectivement, j'ai oublié un zero et en plus le resultat est en mPa. J'ai corrigé mes 2 bourdes.

    Ces informations viennent de documents antédiluviens que nous utilisons au boulot (physique, chimie, optique et autres...). D'ailleur j'ai une autre formule plus precise pour la viscosité si tu veux, par Kestin & Wakeham, avec des Log base 10 .

    J'ai aussi des formules pour des trucs etranges (enthalpie ?) ou pour la pression de la vapeur... bref que des trucs utiles
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par diam's
    @souviron34
    Spline bi-cubique ? c'est pas gros mot ce truc ? LOL
    Ce que je recherchais, c'était une équation comme celle ci-dessus (décomposition en 'puissances')
    Mais je vais me renseigne sur GraphicsGems (il me semble que c'est un bouquin...)
    GraphicsGems est une bibliothèque de maths et de méthodes de calculs (dont beaucoup d'auteurs postent sur comp.graphic.algorithms) et que tu peux trouver ici : http://www.acm.org/tog/GraphicsGems/

    Pour les splines, tu as en anglais et en français :

    http://www.physics.utah.edu/~detar/p...ic_spline.html (anglais)


    http://en.wikipedia.org/wiki/Spline_(mathematics) (anglais)

    http://fr.wikipedia.org/wiki/Interpo...num%C3%A9rique (français)

    http://asi.insa-rouen.fr/~pleray/ftp/8approximation.pdf (français)

    et il y en a bien d'autres...


  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    @souviron34 : merci pour ces bonnes adresses, je vais y jeté un oeil

    @pseudocode : ça a beau remonté à avant le déluge, c'est quand même bien pratique. Si tu as d'autres jolies formules de ce type, je suis ARCHIPRENEUR en MP, ou si tu veux je te donne mon mail (je fais souvent des petits softs à usage perso qui touchent à la thermodynamique, à la mécanique des fluides, parfois à l'acoustique... bref, à toutes ces choses qu'on a essayé de m'inculquer en génie thermique et énergie, mais que j'ai pas tjrs écouté). A chaque fois que je veux faire un soft, c'est la galère car il me manque systématiquement UNE équation qui permet de calculer UN paramètre dont dépend TOUTES les autres équations (exemple d'aujourd'hui : la visco dyn conditionne Reynolds, qui conditionne le régime d'eau, qui conditionne la perte de charge...).

    Donc merci à tous les 2.

    Je taggue "résolu"

  13. #13
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par diam's
    (je fais souvent des petits softs à usage perso qui touchent à la thermodynamique, à la mécanique des fluides, parfois à l'acoustique... bref, à toutes ces choses qu'on a essayé de m'inculquer en génie thermique et énergie, mais que j'ai pas tjrs écouté). A chaque fois que je veux faire un soft, c'est la galère car il me manque systématiquement UNE équation qui permet de calculer UN paramètre dont dépend TOUTES les autres équations (exemple d'aujourd'hui : la visco dyn conditionne Reynolds, qui conditionne le régime d'eau, qui conditionne la perte de charge...).
    Pour ça il y a un excellent bouquin que j'ai utilisé parce que j'ai travaillé avec des météorologues :

    Iribarne et Goldson

    Je te donnerais la référence demain.

    C'est la bible thermo des météorologues, et c'est pas gros (si je me souviens en tout 250 p). Clairement expliqué, avec toutes les équations utilisées quasi-quotidiennement (humidité, thermoètre mouillé, adiabatique séche, humide, etc..)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Clustering et approximation de courbes
    Par nanath02 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 11/01/2011, 17h27
  2. [Bézier] Approximation de courbes
    Par Cthulhu_RLyeh dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 26/10/2008, 16h33
  3. Approximation d'une courbe
    Par comoliv02 dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/12/2007, 10h13
  4. Réponses: 4
    Dernier message: 22/05/2007, 17h08
  5. approximation de courbe par des segments
    Par dseguret dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 27/02/2007, 21h03

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