Partage
  • Partager sur Facebook
  • Partager sur Twitter

Interpolation logarithmique

Sujet résolu
    7 novembre 2011 à 9:36:50

    Bonjour,

    Je voudrais réaliser une interpolation logarithmique entre deux listes. :-° Après quelques recherches sur Internet, je n'ai pas réussi à trouver de module permettant de le faire :( . Je me tourne donc vers vous pour savoir si une bibliothèque existait déjà pour faire ceci, ou si il fallait que je le fasse moi même :euh: (j'ai déjà fouillé un peu dans la doc de SciPy, mais je n'ai rien trouvé de concluant)

    Merci de votre aide! :D
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      7 novembre 2011 à 10:55:41

      euhh interpolation logarithmique? Tu n'as pas un nom de méthode précis, comme par exemple la méthode des moindres carrés?

      Il me paraîtrait surprenant que numpy/scipy ne fasse pas ce que tu veux.

      • Partager sur Facebook
      • Partager sur Twitter
        7 novembre 2011 à 11:27:50

        JE n'ai malheureusement pas de nom de méthode associé, sinon je l'aurais mentionné ;)
        Pour faire plus simple, j'ai deux points dans un espace loglog ou semilog, qui forment une droite, et je désire pouvoir représenter cette droite dans un espace linéaire (qui n'est alors plus une droite). Comme numpy avait la possibilité de réaliser une interpolation linéaire, je voulais savoir si il existait une méthode équivalente, mais avec le logarithme.:)
        • Partager sur Facebook
        • Partager sur Twitter
          7 novembre 2011 à 11:29:46

          Je sais pas comment tu veux le représenter, mais au vu de ce que tu sembles savoir, c'est trivial comme transformation, pas besoin d'un module pour ça.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            7 novembre 2011 à 11:39:24

            surtout si tu n'as que 2 points
            • Partager sur Facebook
            • Partager sur Twitter
              7 novembre 2011 à 13:01:13

              Je n'ai pas que deux points, c'était juste pour montrer mon problème. De plus, je suis conscient que ce que je recherche est faisable à la main, mais si un module déjà existant pouvait faire ce que je veux, ça me permettrais de gagne du temps plutôt que de recoder quelque chose déjà existant (il me semble que c'est l'utilité d'un module), aussi simple soit-il (une interpolation linéaire, c'est simple à faire, pourtant il y a un module pour ça).
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                7 novembre 2011 à 13:15:26

                bon en faite c'est quoi que tu veux faire ?
                Car pourquoi tu ne fais pas une interpolation linéaire dans le plan semi-log ou log-log, puisque tu dis que ça existe, et une fois la droite trouvé dans ce plan, tu l'inverse pour retrouver ta fonction ?
                • Partager sur Facebook
                • Partager sur Twitter
                  7 novembre 2011 à 13:38:47

                  En gros, je créé un programme permettant à un utilisateur de rentrer des points dans un plan de son choix (linéaire ou loglog) afin de tracer un spectre (une courbe).
                  Dans le cas, ou il rentre des points linéaire, aucun soucis car je rentre directement ces points par matplotlib et il me trace des droites, mais dans le cas où il utilise la fonction loglog, j'aurais des droites dans le plan loglog, mais des "courbes" dans le plan linéaire.

                  Etant donné que les calculs que j'effectue sur ces courbes par la suite sont dans le plan linéaire, j'ai besoin de récupérer cette courbe (ou plutot, les points de la courbe). J'effectue alors un échantillonnage correspondant à l'intervalle maximal des abscisses divisé par 2000 pour créer de nouvelles abscisses. Au même titre qu'une interpolation linéaire pour approximer les ordonnées des nouveaux points dans le cas d'une fonction affine (cas de création du spectre linéaire en fait), j'ai besoin d'interpoler de façon "logarithmique" ces nouveaux points.

                  J'espère que mon explication est claire, sinon j'essaierais de mieux m'expliquer :p
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 novembre 2011 à 14:00:10

                    En tout cas, t'aurais terminé depuis longtemps si t'essayais pas de chercher à tout prix un module qui va te remplacer 5 lignes de code (en écrivant gros).
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 novembre 2011 à 14:31:20

                      Citation : VainEntetement

                      En tout cas, t'aurais terminé depuis longtemps si t'essayais pas de chercher à tout prix un module qui va te remplacer 5 lignes de code (en écrivant gros).



                      Excuse moi d'avoir voulu chercher une fonction du même style que numpy.interp() pour la version logarithmique. Et ne t'inquiète pas pour la perte de temps, j'avais d'autres points à régler sur mon programme, en attendant une hypothétique réponse.
                      En tout cas, c'est certainement pas avec ce genre de remarque que j'aurais avancé. Je ferais cette "fonction triviale" par moi-même.

                      Sur ce, désolé d'avoir fait perdre le temps de certains au lieu de finir mon programme
                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 novembre 2011 à 18:27:42

                        Bah, c'est pas de mon temps que je parle, c'est du tien. Mais effectivement, si de toute façon tu faisais autre chose...
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          7 novembre 2011 à 21:45:08

                          Tu as déjà été voir dans la doc section interpolation de numpy? Comme je dis auparavant, je suis surpris que numpy ne fasse pas ce que tu souhaites.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Interpolation logarithmique

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown