Page 2 sur 2

Re: bool3 et valeur interdite

Posté : mar. 5 juin 2012, 21:27
par OG
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.

Re: bool3 et valeur interdite

Posté : mer. 6 juin 2012, 00:49
par maurice
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

Re: bool3 et valeur interdite

Posté : mar. 12 juin 2012, 13:28
par OG
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.