flamt
Messages postés19Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention21 mai 2010 20 sept. 2008 à 22:10
je me trompe peut être mais si on cherche l'ensemble des centre possible d'un cercle en connaissant la position de deux de ses points, la solution c'est la médiatrice de la droite formée par ces 2 points. (en fait 2 demi droite).
ensuite si on connais le rayon du cercle on se retrouve avec l'equation d'une droite, la distance d'un de nos deux point p a cette droite est la moitié de la distance p1 p2, et la distance du centre du cercle a p1 est r.
si avec tout ca on ne peux pas trouver une expression simple de la solution, sans passer par des équations compliquées ^^....
hichmous
Messages postés1Date d'inscriptionjeudi 10 août 2006StatutMembreDernière intervention25 septembre 2007 25 sept. 2007 à 19:42
theta= atan(CJ/OJ) c'est pas tout le temps vrai, il faut avoir un angle droit dans le triangle COJ
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 20 sept. 2007 à 22:59
Je l'ai dit au-dessus pour systèmes non linéaires base de Groeber et algo de Buchberger
sebsheep
Messages postés3Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention20 septembre 2007 20 sept. 2007 à 19:57
Merci lucky pour ta réponse
Cyberboy>
ah ben non, faut pas pousser non plus ... sinon on aurait pas besoin de construire des supercalculateurs de plusieurs tera flops (floating operation per second) :-p
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 20 sept. 2007 à 19:50
Oui je me doute que ta méthode résoud le systeme, même s'il ne se trouve pas sous cette forme.
Mais je pensais plutot à des méthodes générales de resolutions de systemes non linéaires (genre pivot de gauss ou autres pour du linéaire)
cs_Lucky92
Messages postés180Date d'inscriptionmercredi 22 décembre 2004StatutMembreDernière intervention16 août 20122 20 sept. 2007 à 07:16
Bonjour,
en utilisant les complexes, j'obtiens les solutions non triviales par la formule suivante :
z = ( a + b ) / 2. ± i / 2. * ( b - a ) * sqrt( norm( 2 * R / ( b - a ) ) - 1 );
z affixe des centres des cercles recherchés
a , b affixes des deux points donnés
i = std::complex<double>( 0 , 1 )
std::norm( x + iy ) = x² + y²;
Pour arriver à ce résultat, j'ai utilisé la géométrie affine ; j'esquive ainsi la trigonométrie & les systèmes d'équations non linéaires. J'ai basculé en complexe uniquement pour simplifier l'implémentation.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 19 sept. 2007 à 20:53
Pour info on peut résoudre n'importe quel système polynômial de façcon générale (base de Groebner), enfin du moins on peut isoler toutes les inconnues pour obtenir des équations indépendantes, mais évidemment il faut chercher à ce moment là des solutions numériques si le degré est supérieur ou égal à 5.
sebsheep
Messages postés3Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention20 septembre 2007 19 sept. 2007 à 20:22
ben la preuve c'est ce que j'ai fait ... mais apres doit pas falloir rajouter des trucs en plus sinon ca devient assez insolubles. Non linéaire ne veut pas dire impossible à résoudre à la main. x^2=4 est une équation non linéaire, et pourtant un 3 eme sait le faire !
Sinon pour ce qui est de la solution en résolvant le système, ca me fait des trucs assez barbares comme expressions...
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 19 sept. 2007 à 20:08
Ya des manières non numeriques de résoudre des systemes non linéaires, comme c'est le cas ici ?
Il me semble que ca ce généralise assez mal mais bon je prends si vous avez des infos intéressantes la dessus :)
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 19 sept. 2007 à 11:32
Ben t'as deux points (x1;y1) et (x2;y2), tu cherches le centre (x;y) d'un cercle de rayon R donc tu as le système :
(x-x1)²+(y-y1)²=R²
(x-x2)²+(y-y2)²=R²
Et t'as plus qu'à résoudre ça.
sebsheep
Messages postés3Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention20 septembre 2007 19 sept. 2007 à 10:23
effectivement les exceptions ne sont pas gérées, mais vu l'application, il n'y a pas d'exception possible.
Sinon, j'avais essayé de résoudre à la main mais j'étais pas arrivé à grand chose ... tu peux m'éclairer?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 18 sept. 2007 à 20:25
Tu devrais gérer les exceptions(p1=p2,||p1p2||>2R); il serait possible de faire cela sans trigo : résout les équations à la main dans le cas général et utilises après le résultat dans le code, ca sera plus rapide.
Et niveau initié c'est pas un peu (beaucoup) exagéré?
20 sept. 2008 à 22:10
ensuite si on connais le rayon du cercle on se retrouve avec l'equation d'une droite, la distance d'un de nos deux point p a cette droite est la moitié de la distance p1 p2, et la distance du centre du cercle a p1 est r.
si avec tout ca on ne peux pas trouver une expression simple de la solution, sans passer par des équations compliquées ^^....
25 sept. 2007 à 19:42
20 sept. 2007 à 22:59
20 sept. 2007 à 19:57
Cyberboy>
ah ben non, faut pas pousser non plus ... sinon on aurait pas besoin de construire des supercalculateurs de plusieurs tera flops (floating operation per second) :-p
20 sept. 2007 à 19:50
Mais je pensais plutot à des méthodes générales de resolutions de systemes non linéaires (genre pivot de gauss ou autres pour du linéaire)
20 sept. 2007 à 07:16
en utilisant les complexes, j'obtiens les solutions non triviales par la formule suivante :
z = ( a + b ) / 2. ± i / 2. * ( b - a ) * sqrt( norm( 2 * R / ( b - a ) ) - 1 );
z affixe des centres des cercles recherchés
a , b affixes des deux points donnés
i = std::complex<double>( 0 , 1 )
std::norm( x + iy ) = x² + y²;
Pour arriver à ce résultat, j'ai utilisé la géométrie affine ; j'esquive ainsi la trigonométrie & les systèmes d'équations non linéaires. J'ai basculé en complexe uniquement pour simplifier l'implémentation.
19 sept. 2007 à 20:53
19 sept. 2007 à 20:22
Sinon pour ce qui est de la solution en résolvant le système, ca me fait des trucs assez barbares comme expressions...
19 sept. 2007 à 20:08
Il me semble que ca ce généralise assez mal mais bon je prends si vous avez des infos intéressantes la dessus :)
19 sept. 2007 à 11:32
(x-x1)²+(y-y1)²=R²
(x-x2)²+(y-y2)²=R²
Et t'as plus qu'à résoudre ça.
19 sept. 2007 à 10:23
Sinon, j'avais essayé de résoudre à la main mais j'étais pas arrivé à grand chose ... tu peux m'éclairer?
18 sept. 2007 à 20:25
Et niveau initié c'est pas un peu (beaucoup) exagéré?