|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonsoir,
J'ai une courbe admettant des points d'inflexions (changements de concavité/convexité). J'ai comme données d'entrée une matrice représentant les valeurs de X et Y. Je veux obtenir ces points d'inflexions avec précision. Note: Je ne possède pas de fonction pour obtenir la courbe, je possède des coordonnées des points de la courbe dans une matrice. Je vous transmets 2 courbes en fichier joint, les points que je cherche à trouver sont en rouge. Merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 837 ![]() |
hum... Ca ne m'a pas l'air d'être toujours des points d'inflexions. Ni même des maximum de courbures. Comment as-tu fais pour savoir où mettre les croix ?
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonsoir,
pour la detection des points : la courbe demeure constante puis elle change de concavité. je cherche à determiner ce point ou elle change de concavité. Ici je commence l’étude de la courbe de droite à gauche, donc la courbe semble comme une droite horizontale au début puis elle change de concavité. Enfin je cherche determiner le dernier point de la courbe ; le plus haut point de la courbe(ici ça n'a rien avoir avec les points d'inflexions). Merci d'avance de m'aidez, ça fait des jours que je cherche sans avoir avancer Cordialement B.H |
|
|
00
|
|
|
#4 |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 837 ![]() |
Sur l'image de gauche, je ne vois vraiment pas pourquoi les croix représentent les seules "inflexions" de la courbe.
![]() A la rigueur, celle en index=400 pourrait être un max de courbure. Mais il y en a plein d'autre.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
et oui vs avez raison y'en a encore d'autres points d'inflexions. Mais j'ai besoin de detecter que les pentes ayant la forme présenter en fichier joint.
ma question toujours est commet detecter ce genre de point sachant que j'ai pa une fonction qui me permet d'obtenir la courbe. |
|
|
00
|
|
|
#6 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 837 ![]() |
Citation:
Avec les points de mesure dont tu disposes, tu peux utiliser des méthodes de régression pour évaluer ces paramètres. Tu obtiens alors l'équation de ta courbe. Tu peux alors faire l'analyse fonctionnelle et trouver les infos qui t'intéressent.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : janvier 2007 Messages : 9 651 ![]() |
Citation:
Est-ce le cas ??
__________________
"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 |
|
|
|
00
|
|
|
#8 | |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonjour,
oui je connais à priori que ma courbe va avoir une certaine "forme", mais je connais pas le nombre de point d'inflexions. Je vous explique mon cas: j'étudie la répartition des objets dans l'espace de 2-dimensions. mon data-frame contient un très grand nombre d'objets (>2000 objets). La repartition des objets a une distribution uniforme, le cas précis que j'etudie est lorsque ces objets sont reparties dans l'espace sur 3 "régions" ou "classes" où chaque classe a une densité differente. Donc les pentes ou les points d'inflexions dans ma courbe represente le "passage" d'une densites des points à une autre. Mon but est de détecter ces point la, pour me compendre veuillez voir le fichier joint "tt1" où il y'a un point qui represente le passage d'une densité à une autre et un autre point celui qui a comme ordonnée=max(y). j'ai les coordonnées de ces objets. j'espere que c'est clair ma problématique. Citation:
|
|
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : janvier 2007 Messages : 9 651 ![]() |
Désolé, ton exposé n'est toujours pas clair ...
Citation:
![]() Fais un effort pour expliquer ton problème parce que on ne comprend pas vraiment.. Un petit exemple serait le bienvenu.. C'est pas encore très clair...
__________________
"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 |
|
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonsoir,
Ok j'explique encore mon problème dans un petit exepmle: j'ai un data frame qui contient un très grand nombre d'objets. ces objets sont réparties sur 2 classes. la densité des objets dans ces classes sont différentes; une ayant une très grande densité et l'autre une densité plus petite comme c'est illustré dans le fichier joint "tt3". bien sur ces objets sont répartis dans l'espace de 2-dimensions. Mon algorithme consiste a: *calculer les distances entre chaque objet et les (n-1) objets restants et enregistrer ceci dans une matrice carrée (n lignes, n colonnes avec n:nbr d'objets). *faire le tri croissant des ces distances pour chaque ligne de la matrice et prendre la colonne num 5 qui correspond à la 4eme plus petite distance (5eme colonne puisque la matrice est symétrique). Puis je fait le plot et j'obtient la courbe obtenu dans le fichier "tt1" . le premier point (marqué en rouge sur la courbe) présente le passage de la 1er calsse ayant la plus grande densité à la 2eme classes ayant la densité plus petite. je cherche à détecter ce point là, mais je sais pas comment j'espère que c'est clair ma problématique. veuillez me poser des questions si c'est pas encore clair . |
|
|
00
|
|
|
#11 | |||
|
Expert Confirmé Sénior
![]() ![]() Inscription : janvier 2007 Messages : 9 651 ![]() |
Citation:
En fait, j'ai l'impression, en regardant l'ensemble de tes graphes, que tu recherches les points de rupture de types de pente : d'une pente à tendance verticale vrs une pente à tendance horizontale.. Est-ce ça ? Si c'est le cas, et en regardant tes schémas, une division serait sans doute : Code :
__________________
"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 |
|||
|
|
00
|
|
|
#12 | ||
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonjour,
Citation:
si non puor ta question Citation:
si non veuillez m'expliquer encore le code que vous avez écrit, surtout Code :
faire valeur = moyenne glissante de pente sur 3 points si vous voulez dire 0.05 , ben je connais pas d'avance moi ou se situe le(s) point(s) d'inflexion !!veuillez svp m'éclairer encore votre approche Merci d'avance |
||
|
|
00
|
|
|
#13 | |||
|
Expert Confirmé Sénior
![]() ![]() Inscription : janvier 2007 Messages : 9 651 ![]() |
Citation:
Ce que je voulais mettre c'était "-1".. Tangente(-45 degrés) = tan(- PI/4) = -1, donc :
D'autre part, pour diminuer l'influence du bruit, outre la moyenne glissante, on peut ajouter un seuil de confiance, qui est pluss facile à maîtriser avec des angles. Par exemple, si angle >= -40, horizontal,si angle <= -50 vertical. Enfin, vu que comme en info les tableaux commencent à l'indice zéro (sauf en Fortran), et que les angles sont en radians, ton algo sera du style : Code :
__________________
"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 |
|||
|
|
00
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonjour,
Ok, merci. Je vais tester ce code Mais si vous me permettez de vous poser encore une question: je travail avec le langage R. Alors quel est le package sur R qui me permet de calculer l'angle entre 2 points ?? encore une fois merci à vous pour tous vos réponses, j’espère qu’après le test de ce code je trouve le résultat que je cherche. |
|
|
00
|
|
|
#15 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : janvier 2007 Messages : 9 651 ![]() |
C'est pas un code, c'est un schéma d'algo..
Citation:
Si je fouille dans The R base package : Documentation for package ‘base’ version 2.15.2, sous Trigonometric functions, on a bien la fonction atan2 . Comme y tu lui passes (yB-yA), comme x (xB-xA)...
__________________
"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 |
|
|
|
00
|
|
|
#16 | ||||||
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonjour,
Je reviens toujours sur les points d'inflexion. Alors dans mon dernier message je me suis trompé et dire que c'est du code or ce n'est qu'un schéma d'algo , désolé sinon je reviens sur quelque point dans votre explication: vous avez parler des angles, arctangentes et atan2 !! or ds votre schéma d'algo y'a que la fonction angle !!! donc veuillez svp m'expliquer pourquoi vs avez parler de ces 2 fonctions arctangente et atan2 sans que vous les utiliser ? Quand à moi je possède dans mon package des ces trois fonctions. donc j'ai réussi à coder la première partie de ce schéma d'algo et j'a obtenu un tableau des angles mais je suis bloqué dans la partie suivante Citation:
Aussi ci c'est le cas et je dois utiliser que la fonction angle dans mon code, veuillez m'expliquer un peu cette deuxième partie. Elle me rend toujours un vecteur NULL. Concernant la premiere partie dont j'ai codé, voici un échantillon des résultats que j'obtient en utilisant Code :
angle = ( angle(i, i-1) + angle(i+1,i) ) / 2 Code :
Code :
angle = ( atan2(i, i-1) + atan2(i+1,i) ) / 2 Code :
Citation:
ça fait des jours que j'essaye sans arriver toujours veuillez me poser vos questions si c'est pas clair. Merci d'avance Cordialement B.H |
||||||
|
|
00
|
|
|
#17 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : janvier 2007 Messages : 9 651 ![]() |
rhaaaaa il faut lire la doc et comprendre un minimum ce qu'on dit...
atan2 s'utilise come : si on veut calculer l'angle "absolu" formé par 2 pts A et B : angle = atan2 ( (A.y - B.y), (A.x - B.x) ) Donc tu as un angle avec le précédent : A = Pts[i] B = Pts[i-1] et avec le suivant A = Pts[i+1] B = Pts[i]
__________________
"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 |
|
|
00
|
|
|
#18 | ||
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
Bonjour,
merci d'avoir répondu Mais c'était pas ça vraiment ma question. Je reformule encore ma question: Dans votre message vous avez parlez de "angle", "arctangente" et "atan2". En fait, je sais bien que vs faites la différence entre ces trois fonctions et l'utilisation de chacune dans un contexte bien précis. Mais le point que je comprend pas c'est dans le message où vs avez mis le schéma d'algorithme vous m'avez dit : Citation:
![]() et dans votre dernier vous avez dit : Citation:
Code :
angle= atan2((A.y(i)-B.y(i-1)),(A.x(i)-B.x(i-1)))+atan2((A.y(i+1)-B.(y(i))),(A.x(i+1),B.x(i)))/2 donc pour résumer si j'avais bien compris que je dois utiliser la fonction atan2 et que vous avez écrit "angle" d'une façon générale et vs désignez pas l'utilisation de la fonction angle. Est-ce que c'est le cas ?? Merci d'avance |
||
|
|
00
|
|
|
#19 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : janvier 2007 Messages : 9 651 ![]() |
Citation:
L'arc-tangente donnant un angle, la variable de sortie je l'ai appelée d'une manière générique.. et atan2 est très bien car elle calcule entre -PI et + PI (alors que atan calcule entre 0 et PI). Comme j'ai dit je ne connais pas R, et donc je ne sait pas si une fonction "angle" existe, mais en général elle n'existe pas dans les langages informatiques, et par contre arctangente existe (souvent sous ces 2 formes atan et atan2).
__________________
"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 |
|
|
|
00
|
|
|
#20 | |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : septembre 2012 Messages : 106 ![]() |
ok
Citation:
juste une autre question si vs voulez, la fonction atan2 me rend des angles en radian, donc je continue à les utiliser dans le reste du schéma d'algo en radian ou je dois les transformer en degré ?? (sachant qu'il y a une fonction sous R me permet de faire cette conversion de radian en degré) Merci infiniment pour vos réponses |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com