Distance entre un point et une conique
Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.
J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :
On va gagner du temps dans les réponses !
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.
J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :
- Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
- Version d'Asymptote et éditeur utilisé pour les figures Asymptote
- Distribution LaTeX et éditeur utilisé pour les tex.
On va gagner du temps dans les réponses !
Re: Distance entre un point et une conique
O(270, -1)
P1(39, -246), P2(88, -291), P3(142, -342), P4(200, -398), P5(261, -463)
Voici les coordonnées des points dans le repère par défaut d'Asymptote. Ce sont les valeurs qui sont contenues dans le fichier.txt.
P1(39, -246), P2(88, -291), P3(142, -342), P4(200, -398), P5(261, -463)
Voici les coordonnées des points dans le repère par défaut d'Asymptote. Ce sont les valeurs qui sont contenues dans le fichier.txt.
Y.M.
Re: Distance entre un point et une conique
Euh une petite question pour être sûr d'avoir bien compris ce que vous me conseillez :
il faut que je teste différentes valeurs pour le point jusqu'à obtenir le vecteur normal à la conique passant par M, colinéaire à ?
il faut que je teste différentes valeurs pour le point jusqu'à obtenir le vecteur normal à la conique passant par M, colinéaire à ?
Y.M.
Re: Distance entre un point et une conique
Hippyom a écrit :O(270, -1)
P1(39, -246), P2(88, -291), P3(142, -342), P4(200, -398), P5(261, -463)
Voici les coordonnées des points dans le repère par défaut d'Asymptote. Ce sont les valeurs qui sont contenues dans le fichier.txt.
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
- import geometry;
- size(5cm,0);
- defaultpen(fontsize(10pt));
- real[] tab={0,270,-1,39,-246,88,-291,142,-342,200,-398,261,-463};
- real Phi=tab[0]; // la première valeur correspond à la latitude géographique
- currentcoordsys=cartesiansystem((tab[1],tab[2]), i=(1,0), j=(0,1));
- point o=(tab[1],tab[2]),
- p1=(tab[3],tab[4]),
- p2=(tab[5],tab[6]),
- p3=(tab[7],tab[8]),
- p4=(tab[9],tab[10]),
- p5=(tab[11],tab[12]);
- conic co=conic (p1,p2,p3,p4,p5);
- draw(co);
- dot(p1, green);
- dot(p2, green);
- dot(p3, green);
- dot(p4, green);
- dot(p5, green);
- //dot(o,blue);
- bqe bqeco=bqe(p1,p2,p3,p4,p5);
- int i=-1;
- for(real k: bqeco.a) label("$a["+string(++i)+"]="+string(k)+"$",1.02truepoint(S));
- label("dr\^ole d'"+conictype(bqeco),truepoint(N));
Bon bein... effectivement... c'est un peu perturbant.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Re: Distance entre un point et une conique
Hippyom a écrit :il faut que je ...
que tu règles ton problème de la forme obtenue... avant de chercher à calculer une quelconque distance.
Philippe devrait réapparaitre tôt ou tard... et être intéressé par ton problème.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Re: Distance entre un point et une conique
Et bien à ce propos est-ce si anormal d'obtenir une forme de ce type ? ou bien est-ce qu'une conique tracée à partir de 5 points quelconques peut toujours avoir une forme conventionnelle du type parabole, ellipse, hyperbole ou dégénérée ?
Y.M.
Re: Distance entre un point et une conique
Hippyom a écrit :Et bien à ce propos est-ce si anormal ...
Je crois que c'est évident qu'il y a un problème (une conséquence d'un problème de précision de calcul ?)... car la courbe ne passe même pas par l'un des points.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Re: Distance entre un point et une conique
Euh oui c'est vrai qu'il y a un problème...
Mais il ne faut pas oublier que j'utilise des coordonnées provenant d'un tracé effectué à la main avec les imprécisions que cela comporte. Je me demande donc si l'erreur vient d'ici ?
Mais ce qui m'étonne est que pour d'autres essais que j'ai effectué avec des points différents, même choisis aléatoirement, je n'ai pas obtenu de forme aussi étrange.
Mais il ne faut pas oublier que j'utilise des coordonnées provenant d'un tracé effectué à la main avec les imprécisions que cela comporte. Je me demande donc si l'erreur vient d'ici ?
Mais ce qui m'étonne est que pour d'autres essais que j'ai effectué avec des points différents, même choisis aléatoirement, je n'ai pas obtenu de forme aussi étrange.
Y.M.
Re: Distance entre un point et une conique
bonsoir
J'ai tracé les points et la régression linéaire des points. Ils ne sont pas alignés
mais tout de même, l'erreur est de l'ordre de 1%.
Je n'ai pas le temps d'aller plus loin ce soir. Il faudrait vérifier
1) avec les coefficients donnés par asymptote tu obtiens une conique,
ces points sont-ils sur cette conique ?
2) si 1) est ok, c'est au niveau du tracé et certainement les grands coefficients
de ta conique incommodent geometry.asy. Ce genre d'exemple n'a pas été prévu,
il faut fouiller dans le code de geometry.asy
si 1) n'est pas ok, cela peut être une instabilité numérique (parce que tes points
sont presque alignés) et là c'est plus compliqué.
Ou alors un gros bug dans la résolution.
La méthode utilisée est celle de la résultante et in fine une résolution numérique
d'un polynôme de degré 4 (ou autre). Ce genre de problème doit être implémenté dans
Maple ou Mathematica en version calcul formel, voire du point purement numérique
facilement (ou presque) en Scilab ou Matlab.
D'autre part vu que tes données sont lues/acquises elles sont entachées d'une erreur.
Il serait intéressant de voir le conditionnement de ton problème, l'impact d'une modification
de l'ordre de 0,2 ou 0,4 ou moins des données sur les coefficients de ta conique.
Ça ne devrait pas beaucoup modifier la courbe au niveau de tes points mais au delà
cela peut être très sensible.
O.G.
J'ai tracé les points et la régression linéaire des points. Ils ne sont pas alignés
mais tout de même, l'erreur est de l'ordre de 1%.
Je n'ai pas le temps d'aller plus loin ce soir. Il faudrait vérifier
1) avec les coefficients donnés par asymptote tu obtiens une conique,
ces points sont-ils sur cette conique ?
2) si 1) est ok, c'est au niveau du tracé et certainement les grands coefficients
de ta conique incommodent geometry.asy. Ce genre d'exemple n'a pas été prévu,
il faut fouiller dans le code de geometry.asy
si 1) n'est pas ok, cela peut être une instabilité numérique (parce que tes points
sont presque alignés) et là c'est plus compliqué.
Ou alors un gros bug dans la résolution.
La méthode utilisée est celle de la résultante et in fine une résolution numérique
d'un polynôme de degré 4 (ou autre). Ce genre de problème doit être implémenté dans
Maple ou Mathematica en version calcul formel, voire du point purement numérique
facilement (ou presque) en Scilab ou Matlab.
D'autre part vu que tes données sont lues/acquises elles sont entachées d'une erreur.
Il serait intéressant de voir le conditionnement de ton problème, l'impact d'une modification
de l'ordre de 0,2 ou 0,4 ou moins des données sur les coefficients de ta conique.
Ça ne devrait pas beaucoup modifier la courbe au niveau de tes points mais au delà
cela peut être très sensible.
O.G.
Re: Distance entre un point et une conique
Bonjour,
j'ai constaté qu'en demandant à Asymptote de tracer la courbe en fonction des coefficients donnés par bqe, les coefficients arrondis au millième ne suffisent apparemment pas.
Pour obtenir la courbe j'ai donc rentré les coefficients arrondis à 12 chiffres et la courbe tracée est alors identique à la précédente et les points placés également de façon identique :
le code utilisé est celui-ci :
Je vais voir quel résultat pourrait avoir une légère modification des coefficients comme tu le suggères OG.
J'ai aussi la possibilité d'utiliser les données de quelques autres points du tracé initial je vais faire d'autres essais.
Merci encore de vous intéresser à mon problème
j'ai constaté qu'en demandant à Asymptote de tracer la courbe en fonction des coefficients donnés par bqe, les coefficients arrondis au millième ne suffisent apparemment pas.
Pour obtenir la courbe j'ai donc rentré les coefficients arrondis à 12 chiffres et la courbe tracée est alors identique à la précédente et les points placés également de façon identique :
le code utilisé est celui-ci :
Code : Tout sélectionner
import geometry;
input("parametres_du_cadran.txt", check=true, comment="#");
file fich=input("parametres_du_cadran.txt");
real[] tab=fich;
//real a=-1, b=-2.093, c=-1.098, d=-981.888, e=-1029.255, f=-241284.536;
real a=-1, b=-2.09298184242549, c=-1.09764082083416, d=-981.888108727323, e=-1029.2554303887, f=-241284.535878697;
coordsys R=cartesiansystem((tab[1],tab[2]), i=(1,0), j=(0,1));
point[] p;
bqe eq=bqe(R,a,b,c,d,e,f);
conic co=conic(eq);
draw(co);
write(conictype(eq));
for(int k=1; k<6; ++k){
p[k]=(tab[2*k+1],tab[2*k+2]);
p[k]=point(R, p[k]/R);
dot(p[k]);
}
shipout(bbox(4mm,invisible));
Je vais voir quel résultat pourrait avoir une légère modification des coefficients comme tu le suggères OG.
J'ai aussi la possibilité d'utiliser les données de quelques autres points du tracé initial je vais faire d'autres essais.
Merci encore de vous intéresser à mon problème
Y.M.
Re: Distance entre un point et une conique
Hippyom a écrit :Je vais voir quel résultat pourrait avoir une légère modification des coefficients comme tu le suggères OG.
Si on a trois ou quatre points alignés ou quasi alignés... ok, il y a un risque d'avoir une conique dégénérée... mais pas en forme d'aiguille à coudre.
Je ne crois pas que changer tes valeurs est la solution car :
1. si 3 à 3, ils ne sont pas alignés, on doit avoir une conique non dégénérée ;
2. il y a un problème évident du code ... CAR la courbe ne passe pas par l'un des points.
Je n'ai pas le temps de regarder le code de Philippe en ce moment... et je croise les doigts pour qu'il réapparaisse (disparu depuis au moins deux semaines) car c'est lui qui connait le mieux les limites de son code.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !