Quelques trucs de geo2d

Utilisation de Xcas

Modérateur : xcasadmin

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Quelques trucs de geo2d

Message par slejoly » jeu. mai 07, 2009 5:32 pm

1) Longueur

Je crois que j'ai déjà fait part de cette remarque :
la commande longueur ou distance peut renvoyer des nombres négatifs :

Code : Tout sélectionner

A:=point(i):;B:=point(sqrt(2)):;C:=point(sqrt(2)+i):;O:=point(0):;
I:=milieu(O,B):;J:=milieu(A,C):;K:=milieu(B,C):;
k:=longueur(I,B)/longueur(A,O)
(sqrt(2))/2-sqrt(2)
cela à sûrement des avantages mais ce n'est pas spécifié dans la doc (ou l'aide) :
Calcule la distance entre 2 points ou un point et une courbe
je pense qu'il faudrait rajouter un « attention...».


2)Figure 2d

J'ai défini des points sans les faire tracer (voir le code ci-dessus) ensuite j'ouvre un niveau geo2d et je rentre les commandes

Code : Tout sélectionner

O,A,B,C,I,J,K
les points sont bien placés mais n'ont pas de légende, n'y a t-il pas un moyen autre que de réécrire :
A:=point(i):;B:=point(sqrt(2)):;C:=point(sqrt(2)+i):;O:=point(0):;
I:=milieu(O,B):;J:=milieu(A,C):;K:=milieu(B,C):;
?

Stéphane Lejoly

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

Message par parisse » jeu. mai 07, 2009 7:57 pm

Sur le point 1, je n'arrive pas à le reproduire, ça me renvoie l'opposé (positif). C'est sur mac uniquement ou aussi sous linux?
Sur le point 2, il faut écrire
eval([O,A,B,C,I,J,K],1)
pour que les points ne perdent pas leur légende (l'évaluation d'un objet graphique lui fait perdre sa légende, d'où le eval(...,1) qui évalue au niveau 1 ce qui ne fait que remplacer les variables par leur valeur)

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Message par slejoly » jeu. mai 07, 2009 8:49 pm

Génial, pas sur le mac et ... mince sur linux, si, enfin non et puis si...
je viens de comprendre le soucis : en mode réel c'est bon :

Code : Tout sélectionner

A:=point(i):;B:=point(sqrt(2)):;C:=point(sqrt(2)+i):;O:=point(0):; 
I:=milieu(O,B):;J:=milieu(A,C):;K:=milieu(B,C):; 
k:=longueur(I,B)/longueur(A,O)

"Done","Done","Done","Done","Done","Done","Done",-(sqrt(2))/2+sqrt(2)
et si je coche complexe dans la configuration il me renvoie :

Code : Tout sélectionner

"Done","Done","Done","Done","Done","Done","Done",(sqrt(2))/2-sqrt(2)
Que je sois sur le mac ou linux c'est en mode complexe le problème.

Pour mémoire : le mode complexe permet de renvoyer des solutions complexes et prend en charge de nombres comme i (complexes quoi !) mais le fait de cocher en plus variables complexes apporte quoi en plus ?

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

Message par parisse » ven. mai 08, 2009 7:16 am

Ah ca explique alors, parce que en mode complexe, certaines simplifications se font différamment, par exemple sqrt(x^2) renvoie x au lieu de abs(x).
En fait, il n'est que rarement necessaire de passer en mode complexe, parce que pour factoriser etc. sur C on peut utiliser cfactor, csolve, cpartfrac, etc.
Je regarderai quand meme si pour une valeur numerique on peut améliorer.
Pour les variables complexes en mode complexe, c'est pour que re(z) et im(z) soient laisses tels quels et non simplifies en z et 0, mais en pratique, il vaut souvent mieux ne pas cocher variables complexes et poser z=a+i*b.

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Message par slejoly » ven. mai 08, 2009 9:42 am

Je n'avais jamais utilisé cfactor, csolve car de manière naturelle pour un exercice avec les complexes (ici les similitudes) je cochais complexes.
Quel est l'intérêt qu'en mode C :
sqrt(x^2) renvoie x au lieu de abs(x)
(je sens que je vieillis en posant cette question, l'agreg commence à être loin (ce que est confirmé quand je lis les messages de F. Han) je dois avoir oublié une grande partie du cours d'analyse complexe !).

Stéphane Lejoly (la larme à l'œil) !

P.S. une réponse du style « revoyez votre Cartan ! » sera très bien prise !

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

Message par parisse » ven. mai 08, 2009 1:01 pm

sqrt(x^2)=x pour la définition usuelle de la racine carrée dans C, lorsque Re(x)>0, sinon c'est -x. On a toujours des problèmes de branche dans C, avec le ln , les ^, j'ai fait le choix (pour le moment) de renvoyer une expression parfois trop simplifiée à celui de renvoyer un ifte(real(x)>0,x,-x) plus rigoureux mais qui serait difficile à simplifier.

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Message par frederic han » lun. mai 11, 2009 9:57 pm

Hello,

pour bien voir les arguments, le nombre de tours selon l'ordre du zero... (pour pole sens des couleurs inverse...):

une vue depuis Z=cte

plotfunc(((x+i*y)^2),[x,y],affichage=rempli,nstep=3000)

et les Pb de continuite:

plotfunc(sqrt((x+i*y)^2),[x,y],affichage=rempli,nstep=3000)

il y a aussi de jolis dessins chez mon voisin de bureau la:

http://people.math.jussieu.fr/~koelblen/zplot

a+
Frederic

Répondre