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 :
*** 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
import graph;
size(200, IgnoreAspect);
int xmin=-3, xmax=3, ymin=-3, ymax=3;
real f(real x){return 1/x;}
bool3 cond(real x) {
static int signe1=floor(f(xmin));
if((x==0)||(f(x)<ymin)||(f(x)>ymax)) return false;
int signe2=sgn(f(x));
bool b = (signe1==0) || (signe1==signe2);
signe1=signe2;
return (b ? true : default);
//signe1=signe2;
}
guide[] Cf=graph(f,xmin,xmax,n=(xmax-xmin)+1,cond);
draw(Cf, red, dot());
xaxis(xmin=xmin,xmax=xmax,Ticks(Step=1));
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
*** 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
import graph;
size(200,IgnoreAspect);
real f(real x) {return (real) floor(x);};
bool3 branch(real x)
{
real [] vi={-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
static int lastsign=-2;
int i=search(vi,x);
if (i!=-1 && x-vi[i] == 0) return false;
bool b=lastsign ==-2 || i == lastsign;
lastsign=i;
return b ? true : default;
}
draw(graph(f,-14,4,n=1000,branch),black+1bp);
axes("$x$","$y$",red);
Dans les négatifs le tracé continu en -13,-12,-11 est volontaire.
O.G.