Page 4 sur 6

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 16:36
par Zaf
Pourquoi cet exemple ne fonctionne pas correctement ?
import gm_tableaux;
usepackage("fourier");
size(350,150,false);
string[] x={"-7","-3","0","1","3","7"},
fx={"-3","-1","-2","0","3","0"},
sd={"","+","-","+","+","-"};
add(tabvar(var="x",fonct="f",deriv="f'(x)",
x,fx,
cr,
affderivee=false,sd));

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 16:41
par GM
Zaf a écrit :J'ai quand même l'impression que le même espacement de x2 partout règle bien le problème :roll:
Bien sûr que non ! Tu n'envisages pas tous les cas... comme je l'ai fait.

Danc cet exemple suivant, mets x2 partout, en supprimant les x1/2 de chaque côté et tu verras ce qu'il se passe pour tes flèches... car il te faudra bien décaler les deux infinis de chaque côté.

Figure asymptote bd72cd80ae41cdf4b5056866b3f7d763
*** 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 gm_tableaux_dev;
  2. import geometry;
  3. //usepackage("fourier");
  4. unitsize(1cm);
  5. string[] x={"-inf","a","b","+inf"},
  6. fx={"-inf","0","-5","+inf"},
  7. sd={"","+","0","-","0","+"};
  8. add(tabvar(var="t",fonct="g",deriv="g'(t)",
  9. x,fx,
  10. cr,
  11. affderivee=true,sd));
  12.  
  13. // valeurs par défaut dans l'extension :
  14. real x1=1.2, x2=2.4, y1=1, y2=2;
  15.  
  16. distance("$x_1$",(0,0),(x1,0),offset=-10mm);
  17. distance("$\frac{x_1}2+3\times x_2+\frac{x_1}2$",(x1,0),(2*x1+3*x2,0),offset=-10mm);
  18. distance("$x_1$",(x1/2,0),(x1/2+x1,0),offset=-5mm);
  19. distance("$x_2$",(x1/2+x1,0),(x1/2+x1+x2,0),offset=-5mm);
  20. distance("$x_2$",(x1/2+x1+x2,0),(x1/2+x1+2*x2,0),offset=-5mm);
  21. distance("$x_2$",(x1/2+x1+2*x2,0),(x1/2+x1+3*x2,0),offset=-5mm);
  22. distance("$y_1$",(0,0),(0,-y1),rotated=false,offset=10mm);
  23. distance("$y_1$",(0,-y1),(0,-2*y1),rotated=false,offset=10mm);
  24. distance("$\frac{y_1}2+y_2+\frac{y_1}2$",(0,-2*y1),(0,-3*y1-y2),rotated=false,offset=10mm);
  25. distance("$y_1$",(2*x1+4*x2,-y1/2),(2*x1+4*x2,-y1-y1/2),rotated=false,offset=-5mm);
  26. distance("$y_1$",(2*x1+4*x2,-y1-y1/2),(2*x1+4*x2,-2*y1-y1/2),rotated=false,offset=-5mm);
  27. distance("$y_2$",(2*x1+4*x2,-2*y1-y1/2),(2*x1+4*x2,-2*y1-y1/2-y2),rotated=false,offset=-5mm);
  28.  

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 16:46
par Zaf
Exact, je pensais que les flèches suivraient.

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 16:53
par GM
Zaf a écrit :Pourquoi cet exemple ne fonctionne pas correctement ?
import gm_tableaux;
usepackage("fourier");
size(350,150,false);
string[] x={"-7","-3","0","1","3","7"},
fx={"-3","-1","-2","0","3","0"},
sd={"","+","-","+","+","-"};
add(tabvar(var="x",fonct="f",deriv="f'(x)",
x,fx,
cr,
affderivee=false,sd));

Je ne comprends pas la question : tu me demandes pourquoi il ne fonctionne pas... ou tu me le proposes comme exemple ?

Car, si tu me le proposes comme exemple, tu conviendras que :
  • il n'y a pas x2 partout : il y a bien x1/2 au début et à la fin ; c'est toujours la même logique d'espacement que dans les exemples précédents : x1/2+ n * x2 + x1/2
  • si tu mets une double barre... ce sera pareil mais les limites de part et d'autre devront bien être décalées.
Il te faut envisager tous les cas... et une solution compromis.

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 16:57
par GM
Zaf a écrit :Exact, je pensais que les flèches suivraient.

Les flèches vont suivre (elles suivent toujours)... mais si tu supprimes x1/2 de chaque côté... pour pouvoir placer les infinis il te faudra les décaler et il y aura alors une différence des intervalles extrêmes par rapport à celui du milieu.

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 17:06
par GM
Voilà un essai avec x1=0 pour te montrer ce qu'il va se passer : il va falloir décaler les infinis... et tu auras le problème d'espacement horizontal sur la première ligne et sur la dernière, vis à vis de l'espacement entre a et b.

Figure asymptote 23b1d024e419f437cb596bf05000fb80
*** 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.  
  2. import gm_tableaux_dev;
  3. import geometry;
  4. //usepackage("fourier");
  5. unitsize(1cm);
  6. string[] x={"-inf","a","b","+inf"},
  7. fx={"-inf","0","-5","+inf"},
  8. sd={"","+","0","-","0","+"};
  9. add(tabvar(var="",fonct="",deriv="",
  10. x,fx,
  11. cr,
  12. affderivee=true,sd,
  13. x1=0));
  14. real x1=0,x2=2.4, y1=1, y2=2;
  15. distance("$3\times x_2$",(x1,0),(2*x1+3*x2,0),offset=-10mm);
  16. distance("$x_2$",(x1/2+x1,0),(x1/2+x1+x2,0),offset=-5mm);
  17. distance("$x_2$",(x1/2+x1+x2,0),(x1/2+x1+2*x2,0),offset=-5mm);
  18. distance("$x_2$",(x1/2+x1+2*x2,0),(x1/2+x1+3*x2,0),offset=-5mm);
  19. label("$-\infty$",(0,-y1/2),E,red);
  20. label("$-\infty$",(0,-5*y1/2-y2),E,red);
  21. label("$+\infty$",(3*x2,-y1/2),W,red);
  22. label("$+\infty$",(3*x2,-5*y1/2),W,red);
  23.  


Non vraiment... je crois (modestement) que j'ai adopté la meilleure solution, à savoir un compromis.

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 17:14
par Zaf
Oui, j'avais compris, on ne va pas donner ça aux élèves :lol:

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 17:17
par Zaf
En rouge c'est déjà moins horrible :mrgreen:

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 17:19
par GM
Je m'éloigne du pc... donc pour moi, le sujet des tableaux de variation est terminé pour quelques temps.

Re: Tableaux de variation avec Asymptote

Posté : dim. 21 mars 2010, 17:26
par Zaf
J'ai l'impression que lorsqu'il n'y a pas de valeurs interdites, le sens de variation est obligatoirement alterné, car sur quelques exemples compilés je trouve des tableaux faux.
Exemple :
import gm_tableaux;
usepackage("fourier");
size(350,150,false);
string[] x={"-7","-3","2"},
fx={"-1","1","4"},
sd={"","+","","+"};
add(tabvar(var="x",fonct="f",deriv="f'(x)",
x,fx,
cr,
affderivee=true,sd));