Précédent   Forum des professionnels en informatique > Autres langages > Algorithmes > Mathématiques
Mathématiques Forum d'entraide sur les mathématiques et l'algorithmique numérique. Avant de poster : Cours d'algorithmique numérique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 17h00   #1
Invité de passage
 
Inscription : février 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 3
Points : 1
Points : 1
Par défaut Calcul de courbure à partir de coordonnées

Bonjour,

je cherche actuellement à développer un code de calcul me permettant de retrouver la courbure, de l'approcher tout du moins, d'une courbe définie par des points. En gros, j'ai un fichier contenant des coordonnées mais je n'ai pas d'équation. J'ai bien vu que cela était possible dans d'autres langages (typiquement Matlab mais je n'y entend pas grand chose) et que certaines méthodes existaient mais je suis encore un peu "jeune" en programmation. J'ai une expression géométrique que je pourrais programmer facilement mais je voudrais faire quelque chose de plus propre. J'ai un peu fouillé le numerical recipes cela y est peut-être et je ne suis pas tombé dessus xD
Néanmoins, si quelqu'un pouvait me donner des indications ou une méthode vers laquelle me tourner cela m'aiderait beaucoup.

En vous remerciant par avance!

PS: j'ai des coordonnées 3D
Plouest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 17h13   #2
Rédacteur/Modérateur
 
Jean-Marc Blanc
Inscription : avril 2007
Messages : 2 658
Détails du profil
Informations personnelles :
Nom : Jean-Marc Blanc
Âge : 71

Informations forums :
Inscription : avril 2007
Messages : 2 658
Points : 3 498
Points : 3 498
Salut!
Ta question n'a rien à voir avec le langage Fortran, En conséquence, je transfère cette discussion dans le forum algo/maths.
Jean-Marc Blanc
__________________
Calcul numérique de processus industriels
Formation, conseil, développement

Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)
FR119492 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h43   #3
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 741
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 741
Points : 9 975
Points : 9 975
je suis plus familier avec le 2D, mais je crois que ça existe aussi en 3D : les splines..

par exemple Splines 3D (Paul Bourke)

Tu as aussi une pplication intéressante avec de l'ADN :

Optimisation du calcul de la courbure d’ADN (pdf)

'fin bref, il y a pas mal de possibilités.. Il faut rechercher un peu..
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 13h44   #4
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 423
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : décembre 2006
Messages : 9 423
Points : 14 131
Points : 14 131
Citation:
Envoyé par Plouest Voir le message
En gros, j'ai un fichier contenant des coordonnées mais je n'ai pas d'équation
Connais-tu également le parcours à suivre de ces coordonnées ? Si oui, je plussoie la méthode de souviron34.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h05   #5
Membre éclairé
 
Doctorant en informatique
Inscription : juin 2009
Messages : 244
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Doctorant en informatique

Informations forums :
Inscription : juin 2009
Messages : 244
Points : 347
Points : 347
N'est-il pas simplement possible de faire une régression de moindres carrés. On chercherait à trouver les paramètre x,y et r tels que:

E = sum_i (sqrt((xi-x)^2 + (yi-y)^2) - r)^2

soit minimum.

en posant ri = sqrt((xi-x)^2 + (yi-y)^2)

On a le gradient

dE/dx = -2 sum_i (xi-x) (ri-r)/ri
dE/dy = -2 sum_i (yi-y) (ri-r)/ri
dE/dr = -2 sum_i ri-r
Alexis.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h47   #6
Invité de passage
 
Inscription : février 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 3
Points : 1
Points : 1
Bonjour,

D'abord, désolé pour le post mal-placé ^^'

J'étais bien tombé sur le rapport l'optimisation du calcul de la courbure ADN mais je concède que je n'ai pas eu le courage d'aller bien bien loin. J'ai un peu plus regardé et je vais continuer.
Dans un premier temps je pensais le faire à position fixée donc sans connaître le chemin à suivre de mes coordonnées sans prendre en compte ce qui s'est passé avant et sans savoir ce qu'il se passera après. Néanmoins, quand j'ai jeté un coup d'oeil à la méthode de Souviron34, effectivement ça me parait faisable ^^' L'unique problème est que je suis en fortran 90. Je vais fouiller un peu le site, il me semble que je pourrais y trouver mon bonheur.

J'ai aussi pas mal fouillé avant de revenir lire vos réponses et j'ai vu que effectivement j'avais pas mal de possibilités comme celle que propose Alexis. M. J'avais aussi repérer les courbes de Bézier mais je ne sais pas si c'est vraiment adapté à mon problème :s
Je vais donc continuer à fouiller avec ce que vous m'avez donné. Je vois que je peux m'en sortir ^^

Merci!
Plouest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 16h54   #7
Membre éclairé
 
Doctorant en informatique
Inscription : juin 2009
Messages : 244
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Doctorant en informatique

Informations forums :
Inscription : juin 2009
Messages : 244
Points : 347
Points : 347
Si tu es intéressé par une mesure du "degré de courbure" plus que par le rayon de courbure lui même tu peux aussi calculer la plus petite valeur propre de la matrice de covariance des points dans un voisinage. Quand cette valeur propre est proche de zero, la courbe et plate sinon, le vecteur propre associé te donne une estimation de la normale à la courbe.
Alexis.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 18h34   #8
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 741
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 741
Points : 9 975
Points : 9 975
autre note 1 : les courbes de Béziers ne passent pas par les points (si on cherche à déterminer une interpolation. C'est autre chose quand on trace une courbe connue et dans ce cas ça passe par les points, mais ce sont des points caractéristiques)..

autre note 2 : Paul Burke doit avoir ça quelque part en Fortran.. Et je suis certain sinon que dans les lines donnés en global ici sur ce forum tu trouveras ton bonheur quelque part dans GraphicsGems ou dans les liens pointés par Scientific Computing and Numerical Analysis FAQ
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 12h48   #9
Invité de passage
 
Inscription : février 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 3
Points : 1
Points : 1
Oky donc je ne retiens pas les courbes de Bézier. C'est vraiment le rayon de courbure local qui m'intéresse et ce qui me gêne le plus c'est que j'ai un plan courbe. L'idée j'ai compris mais la mise en application est flou x) Quoiqu'en relisant cette discussion je crois que je commence à mieux comprendre comment faire
Je vais regarder tes liens souviron34.

Merci à vous ^^


Edit : j'ai bien réfléchi à mon problème et je pense avoir trouvé une solution. Je voudrais vous remercier pour vos réponses qui m'ont permis d'avancer dans ma réflexion et m'ont amené à découvrir des sites très intéressants pour la programmation en général!
Plouest est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h47.


 
 
 
 
Partenaires

Hébergement Web