bool3 et valeur interdite

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

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 :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
OG
V.I.P.
V.I.P.
Messages : 142
Enregistré le : dim. 7 mars 2010, 22:27

Re: bool3 et valeur interdite

Message non lu par OG » mar. 5 juin 2012, 21:27

Pour la petite histoire, j'ai modifié le code de 1/x (ça se voit vu
le nom des variables) de façon empirique.
Pour l'histoire d'enlever ou non le point, c'est certainement mieux de le mettre
même si de toute façon en arithmétique approchée il y a peu de chances de tomber
dessus exactement et avec une discrétisation suffisamment fine à l'oeil ça ne se voit pas
(et il faut une discrétisation fine pour le reste).
Je voyais plutôt le côté "on enlève les points de discontinuités" sans
distinguer la continuité à droite, à gauche, ce qui revient au même que 1/x.

O.G.

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: bool3 et valeur interdite

Message non lu par maurice » mer. 6 juin 2012, 00:49

bonsoir, j'ai finalement compris et après tatonnement j'arrive à ça :

Figure asymptote 0be4fcafa25373f7510316f3e37132ed
*** 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
  1. import graph;
  2. size(200, IgnoreAspect);
  3.  
  4. int xmin=-3, xmax=3, ymin=-3, ymax=3;
  5. real f(real x){return 1/x;}
  6. bool3 cond(real x) {
  7. static int signe1=floor(f(xmin));
  8. if((x==0)||(f(x)<ymin)||(f(x)>ymax)) return false;
  9. int signe2=sgn(f(x));
  10. bool b = (signe1==0) || (signe1==signe2);
  11. signe1=signe2;
  12. return (b ? true : default);
  13. //signe1=signe2;
  14. }
  15.  
  16. guide[] Cf=graph(f,xmin,xmax,n=(xmax-xmin)+1,cond);
  17.  
  18. draw(Cf, red, dot());
  19. xaxis(xmin=xmin,xmax=xmax,Ticks(Step=1));
  20. yaxis(ymin=ymin,ymax=ymax,Ticks(Step=1));


Ça ressemble un peu à ce qu'il y a dans la doc officielle.

je vais essayer d'adapter ça à une fonction où il y a une valeur interdite différente de 0 puis au cas de plusieurs valeurs interdites mais pas sur ne faille pas utiliser plutôt la méthode avec contour ...?

a+

bruno
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

OG
V.I.P.
V.I.P.
Messages : 142
Enregistré le : dim. 7 mars 2010, 22:27

Re: bool3 et valeur interdite

Message non lu par OG » mar. 12 juin 2012, 13:28

Bonjour

Pour les valeurs interdites, si bien sûr la liste est donnée/ordonnée dans un tableau
et, ce n'est pas le cas ici, si l'expression de f dépend des sous intervalles
alors on doit pouvoir bricoler quelque chose comme

Figure asymptote 9358266269da2adabc4bcb09751f237c
*** 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
  1. import graph;
  2. size(200,IgnoreAspect);
  3. real f(real x) {return (real) floor(x);};
  4.  
  5. bool3 branch(real x)
  6. {
  7. real [] vi={-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
  8. static int lastsign=-2;
  9. int i=search(vi,x);
  10. if (i!=-1 && x-vi[i] == 0) return false;
  11. bool b=lastsign ==-2 || i == lastsign;
  12. lastsign=i;
  13. return b ? true : default;
  14. }
  15. draw(graph(f,-14,4,n=1000,branch),black+1bp);
  16. axes("$x$","$y$",red);


Dans les négatifs le tracé continu en -13,-12,-11 est volontaire.


O.G.

Répondre