Problème de lieu

Utilisation de Xcas

Modérateur : xcasadmin

jmsarlat
Messages : 9
Inscription : mer. juin 22, 2011 12:31 pm

Re: Problème de lieu

Message par jmsarlat » lun. juin 27, 2011 4:55 pm

alb a écrit : ...
6/ J'approche au mieux les tangentes aux points d'intersection
Tout ça demande vérification
C'est la partie la plus délicate pour la construction de l'animation... Enfin, en voici une

http://melusine.eu.org/syracuse/J/view/joukovski2

Si tu as d'autres idées, n'hésites pas. Cela me permet de tester et de reprendre le développement de mon script pfgiac (fabriquer des images/animations avec MetaPost en déléguant les calculs à giac :)

JMS

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: Problème de lieu

Message par alb » jeu. juin 30, 2011 9:38 pm

Voici un script qui me semble plus efficace mais assez peu lisible par un élève.
On peut peut-être simplifier la construction des tangentes.
La session même compressée ne passe pas (> 256 K)
Voici donc d'abord les deux fonctions utilisées (tracé des courbes/pente des tangentes):

Code : Tout sélectionner

Joukovsky(a,b,c,k):={
  local z0,A,O,z,Z,C;
  purge(t);
  z0:=b+i*c;
  A:=point(a);
  O:=point(z0);
  C:=couleur(cercle(O,A-O),k);
  z:=z0+abs(A-O)*e^(i*t);
  Z:=(z+a^2/z)/2;
  retourne C,couleur(plotparam(Z,t=0..6.29,tstep=0.001),k);
}
:;
Pente(b,c,par):={//renvoie la pente de la tangente au point de paramètre par à la courbe de Joukovsky
local z,Z,D;
purge(v);
z:=b+i*c+abs(2.0-b-i*c)*e^(i*v);
Z:=(z+4/z)/2;
D:=diff(Z,v);
retourne subst(im(D)/re(D),v=par);
}:;
Puis le script auquel j'ajoute un test les angles de droites étant définis à pi près
(il faudrait le reprendre avec des angles de vecteurs...)
[Edit] Je modifie la ligne 5 pour que le point M ne soit pas le point d'affixe 2

Code : Tout sélectionner

b:=element([(-5) .. 5,-3.38,0.001]);
c:=element([(-5) .. 5,-1.94,0.001]);
Jf:=affichage(Joukovsky(2,0.4,2,1),nom_cache+1);
Jm:=affichage(Joukovsky(2,b,c,4),nom_cache+4);
M:=affichage(inter_unique(Jf[0],Jm[0],[2]),quadrant2);
t1M:=evalf(csolve(0.4+2i+abs(1.6-2i)*e^(i*t)=affixe(M),t))[0];
t2M:=evalf(csolve(b+c*i+abs(2-b-i*c)*e^(i*t)=affixe(M),t))[0];
nodisp(T1:=tangente(Jf[0],M,couleur=1+epaisseur_ligne_2));
nodisp(T2:=tangente(Jm[0],M,couleur=4+epaisseur_ligne_2));
angle(T1,T2,"α",couleur=2+epaisseur_ligne_2);
legende([50,50],"α= "+evalf(angle(T1,T2),10));
tc(z):=(z+4/z)/2;
Mj:=affichage(point(tc(affixe(M)),quadrant2));
nodisp(Tj1:=droite(Mj,pente=Pente(0.4,2,t1M), affichage=nom_cache+1+epaisseur_ligne_2));
nodisp(Tj2:=droite(Mj,pente=Pente(b,c,t2M),affichage=nom_cache));
angle(Tj1,Tj2,"β",couleur=2+epaisseur_ligne_2);
legende([50,70],"β= "+evalf(angle(Tj1,Tj2),10));
titre="La transformation de Joukovsky z->(z+4/z)/2 conserve les angles";
si abs(angle(T1,T2)-angle(Tj1,Tj2))>0.1 alors legende([50,90],"α et -β sont supplémentaires") sinon legende([50,90],"α et β sont égaux") fsi;

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: Problème de lieu

Message par alb » sam. août 13, 2011 3:31 pm

Je n'arrive pas à refaire la figure avec la version 0.9.3
Je prends:

Code : Tout sélectionner

Joukovsky(a,b,c,k):={
  local z0,A,O,z,Z,C,t;
  purge(t);
  z0:=b+i*c;
  A:=point(a);
  O:=point(z0);
  C:=couleur(cercle(O,A-O),k);
  z:=z0+abs(A-O)*e^(i*t);
  Z:=(z+a^2/z)/2;
  retourne C,couleur(plotparam(Z,t=0..6.29,tstep=0.001),k);
}
Puis je fais la figure suivante:

Code : Tout sélectionner

b:=element([(-5) .. 5,1.071,0.001]);
c:=element([(-5) .. 5,3.665,0.001]);
Jf:=affichage(Joukovsky(2,0.4,2,1),nom_cache+1);
Jm:=affichage(Joukovsky(2,b,c,4),nom_cache+4);
M:=affichage(inter_unique(Jf[0],Jm[0],[2]),quadrant2);
T1:=tangente(Jf[0],M,couleur=1+epaisseur_ligne_2);
T2:=tangente(Jm[0],M,couleur=4+epaisseur_ligne_2);
Le point M ne semble pas reconnu comme appartenant aux cercles, les tangentes ne se tracent pas.
Je retrouve le pb dans ce script avec un rayon de 2.0

Code : Tout sélectionner

C1:=cercle(1+i,2.0);
C2:=cercle(-2+i,3);
M:=inter_unique(C1,C2);
tangente(C1,M);
tangente(C2,M);

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Problème de lieu

Message par parisse » jeu. août 18, 2011 9:13 am

je viens d'essayer avec la derniere version 0.9.3 sur mac et win, ca semble marcher. Je ne peux pas mettre a jour la version linux avant le 1er septembre (c'est mon PC de la fac qui a ce qu'il faut pour faire les package debian ubuntu).

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: Problème de lieu

Message par alb » jeu. août 18, 2011 4:21 pm

J'ai téléchargé la version 0.9.2 sous win en suivant le lien indiqué mais version() répond giac 0.9.3
Chez moi j'ai la version 0.9.3 testing sous linux
A titre de comparaison entre les deux versions voici quelques résultats:
1/ C:=cercle(0,2);D:=droite(y=x);M:=inter_unique(C,D);tangente(C,M)
win et linux: pas de dessin
2/ C:=cercle(0,2.0);D:=droite(y=x);M:=inter_unique(C,D);tangente(C,M)
OK sous win et linux
3/ C:=cercle(0,2);D:=droite(y=x);M:=inter_unique(C,D);tangente(C,5*pi/4)
OK sous win et linux
4/ C1:=cercle(1+i,2);C2:=cercle(-2+i,3);M:=inter_unique(C1,C2);tangente(C1,M);tangente(C2,M);
OK sous win et linux
5/ C1:=cercle(1+i,2.0);C2:=cercle(-2+i,3);M:=inter_unique(C1,C2);tangente(C1,M);tangente(C2,M);
OK sous win, pas de dessin sous linux
6/ C1:=cercle(1+i,1.2);C2:=cercle(-2+i,3);M:=inter_unique(C1,C2);tangente(C1,M);tangente(C2,M);
OK sous win et linux
Rien d'urgent, bonnes vacances !
Effectivement sous windows le script s'exécute sans problème (l'angle alpha est affiché) mais quelle lenteur !

Répondre