Partage
  • Partager sur Facebook
  • Partager sur Twitter

Longueur de courbes

    8 décembre 2011 à 18:01:32

    Bonjour à tous,

    Ca fait un petit moment maintenant que je me pose une question toute bête : comment calculer la longueur d'une courbe représentative de fonction sur un intervalle I ?

    J'ai regardé sur google (notre meilleur ami ;) ), mais les articles ne m'ont pas convaincu. J'ai pensé à utiliser les intégrales, mais sans succès pour le moment.
    Auriez vous une idée ?

    FaZeGa
    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2011 à 18:47:56

      Je pense qu'il faut regarder du côté de l’abscisse curviligne.
      On a <math>\(ds=\sqrt{dx^2+dy^2}=\sqrt{1+(f'(x))^2}dx\)</math> (on suppose <math>\(dx>0\)</math>) ce qui donnerait une longueur <math>\(L=\int_{x_0}^{x_1}\sqrt{1+(f'(x))^2}dx\)</math>
      • Partager sur Facebook
      • Partager sur Twitter
        8 décembre 2011 à 19:10:57

        Ok, merci, ca m'éclaircit les idées ;)
        • Partager sur Facebook
        • Partager sur Twitter
          8 décembre 2011 à 23:34:50

          rushia > Ta formule est très intéressante, je ne la connaissais pas !

          Si j'ai une courbe dans l'espace paramétrique, ça peut marcher aussi ?

          Si je comprends bien, j'aurai :
          <math>\(ds = \sqrt{(dx^2+dy^2+dz^2)}\)</math> ... <math>\(L = \int_{t_0}^{t_1} \sqrt{fx'(t)^2+fy'(t)^2+fz'(t)^2} dt\)</math>

          C'est ça ?
          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

            9 décembre 2011 à 7:57:36

            Ça donnerait ça oui.
            D'ailleurs, en tapant abscisse curviligne sur Wikipédia, le cas qui est traité est justement celui des courbes paramétriques.
            • Partager sur Facebook
            • Partager sur Twitter
              9 décembre 2011 à 9:38:10

              Ok, intéressant :)
              Par contre, peut on calculer facilement une telle intégrale ?
              Comment calculer une primitive de cette expression ?

              Mes courbes paramétriques peuvent être assez quelconques (souvent des NURBS), je peux calculer un fx(t),fy(t),fz(t) ainsi que les dérivées.

              J'ai essayé avec Maple de calculer la primitive, mais il ne me la donne pas (c'est une vieille version de Maple)
              • Partager sur Facebook
              • Partager sur Twitter

              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                9 décembre 2011 à 11:19:37

                Sauf cas très particuliers, tu ne pourras pas calculer cette primitive, et il faudra te contenter d'un calcul numérique.

                De plus, il faut faire attention que cette formule n'est vraie que pour f de classe C1 (dérivable et de dérivée continue).
                • Partager sur Facebook
                • Partager sur Twitter
                  9 décembre 2011 à 11:57:28

                  Je peux facilement voir si ma courbe est C0, C1, C2, etc...

                  Que mon conseilles tu si je veux calculer la distance entre un t0 et un t1 fixé ?
                  A la sortie, je veux une valeur numérique de toute façon.

                  Sachant que je peux difficilement calculer des limites aussi : je souhaite faire une fonction en C pour ça.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                    9 décembre 2011 à 15:00:32

                    C'est ce que je me disais aussi : calculer la primitive d'un telle fonction ne me parait pas possible ...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 décembre 2011 à 19:05:21

                      Si ta courbe es seulement C0, il ne peut pas y avoir de méthodes générales (les courbes de peano par exemple sont continues, mais de "longueur" infinie - mais on est ici dans la catégorie des "monstres" fractals).

                      Si elle est au moins C1 (par morceaux), pour le calcul d'intégrale, t'as le choix ; si t'as pas besoin de précision, une méthode des rectangles, ou pas beaucoup plus dur à implémenter mais bigrement plus efficace, méthode de simpson (cf wikipédia). Après t'as pleins de méthodes plus ou moins exotiques/efficaces mais simpson devrait convenir je pense.

                      Edit : je ne connais pas les nurbs, mais apparement, il s'agit de sortes de splines c'est ça ? Et les splines, tu peux justement t'arranger pour que courbe soit C1, C2 voir Cn (c'est le but non ?) ; donc à priori, ça devrait marcher.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 décembre 2011 à 19:21:37

                        Oui, splines et Nurbs, ça se ressemble : la Nurbs est beaucoup plus souple. En effet, en regardant le vecteur nodal, je vois immédiatement si la courbe est C0, C1, etc...
                        Dans la majorité des cas, elle est C1 voir plus.

                        Actuellement, je fais une approxiamtion en polyline, donc pas top. Aussi la méthode des rectangles me semble calculatoire. Mais si je pouvais avoir un truc plus rapide, ce serait intéressant :)
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                          10 décembre 2011 à 10:57:54

                          Tu n'as pas le choix de faire autre chose qu'un truc calculatoire ! Tu peux avoir des méthodes plus efficace, mais ça restera calculatoire.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Longueur de courbes

                          × 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