// Fonctions trigonométriques usepackage("siunitx", "locale=DE"); // extension qui permet // d'obtenir des écritures décimales avec virgule au lieu de point. size(7cm,5cm,IgnoreAspect); real x=2.7; // Affichage des valeurs int k=0; label(format("Le cosinus de $x=\num{%f}$ est ",x)+format("\num{%f}", cos(x)),(0,k)); label(format("Le sinus de $x=\num{%f}$ est ",x)+format("\num{%f}", sin(x)),(0,--k)); label(format("La tangente de $x=\num{%f}$ est ",x)+format("\num{%f}", tan(x)),(0,--k)); shipout(bbox(.5cm,Fill(white))); |
// Fonctions trigonométriques // une autre façon d'obtenir des écritures décimales avec virgule : usepackage("icomma"); // cela fonctionne sur mon serveur (cf. ci-contre) // (serveur sous ubuntu, avec locale qui donne LC_NUMERIC="fr_FR.UTF-8") // ... mais cela ne va pas sur mon pc sous XP. :-( size(7cm,5cm,IgnoreAspect); real x=2.7; // Affichage des valeurs int k=0; label(format("$\cos(%f)\approx$",x)+format("$%.5f$", cos(x)),(0,k)); label(format("$\sin(%f)\approx$",x)+format("$%.5f$", sin(x)),(0,--k)); label(format("$\tan(%f)\approx$",x)+format("$%.5f$", tan(x)),(0,--k)); shipout(bbox(.5cm,Fill(white))); |
// On appelle fonctions hyperboliques les fonctions : cosinus hyperbolique (cosh), // sinus hyperbolique (sinh) et tangente hyperbolique (tanh). // Les nom de sinus, cosinus et tangente proviennent de leur ressemblance avec les // fonctions trigonométriques (ou circulaires) et le terme de hyperbolique provient // de leur relation avec l'hyperbole d'équation x2 - y2 = 1. // cosh(x)=(exp(x)+exp(-x))/2, partie paire de exp // sinh(x)=(exp(x)-exp(-x))/2, partie impaire de exp // tanh(x)=sinh(x)/cosh(x) usepackage("icomma"); size(7cm,5cm,IgnoreAspect); real x=2.7; // Affichage des valeurs int k=0; label(format("$\cosh(%f)\approx$",x)+format("$%.5f$", cosh(x)),(0,k)); label(format("$\sinh(%f)\approx$",x)+format("$%.5f$", sinh(x)),(0,--k)); label(format("$\tanh(%f)\approx$",x)+format("$%.5f$", tanh(x)),(0,--k)); shipout(bbox(.5cm,Fill(white))); |
// Fonction "partie entière" // En mathématiques, la partie entière (par défaut) d'un nombre réel est l'entier // qui lui est immédiatement inférieur ou égal. Pour un nombre réel x, elle se note // usuellement E(x), où la lettre E désigne la fonction partie entière (par défaut). // La partie entière ne doit pas être confondue avec la troncature à l'unité d'un nombre, // qui correspond à la suppression des décimales en notation usuelle // et qui diffère de la partie entière pour les nombres négatifs. size(7cm,5cm,IgnoreAspect); int k=0; label(format("La partie enti\`ere de $\pi$ est $%i$.",floor(pi)),(0,k)); label(format("La partie enti\`ere de $-\pi$ est $%i$.",floor(-pi)),(0,--k)); // La notation [x] est aussi utilisée mais a tendance à être remplacée par la notation // anglo-saxonne qui distingue : la partie entière par défaut (floor, « plancher ») // et la partie entière par excès (ceiling, « plafond »). label("Avec les notations anglo-saxonnes :",(0,--k)); label(format("partie enti\`ere par d\'efaut : $\lfloor{\pi\rfloor}=%i$", floor(pi)),(0,--k)); label(format("partie enti\`ere par exc\`es : $\lceil{\pi\rceil}=%i$", ceil(pi)),(0,--k)); |
// Fonction "partie entière" usepackage("icomma"); size(7cm,5cm,IgnoreAspect); real[] val={pi,4*sqrt(2),-pi,-4*sqrt(2)}; int x=0,y=0; label("x",(x,y)); label("floor(x)",(++x,y)); label("ceil(x)",(++x,y)); label("round(x)",(++x,y)); for (real k : val) { x=0; --y; label(format("$%.5f$",k),(x,y)); label(format(floor(k)),(++x,y)); label(format(ceil(k)),(++x,y)); label(format(round(k)),(++x,y)); } |
// factorial(int n) // choose(int n, int k) size(200); int nmax=7; for(int n=0; n<=nmax; ++n) for(int k=0; k<=n; ++k) label(string(choose(n,k)),(k,-n)); for(int n=0; n<=nmax; ++n) label(string(factorial(n)),(nmax+2,-n)); shipout(bbox(10,Fill(.7orange+white))); |
// Génération de nombres aléatoires entiers // entre 0 et randMax = 2147483647 size(7cm,6cm,IgnoreAspect); label("Random entre 0 et "+string(randMax),(.5,1)); for (int y=0; y>-4; --y) for (int x=0; x<2; ++x) label(string(rand()),(x,y)); |
// Génération de nombres aléatoires réels entre 0 et 1. usepackage("siunitx", "locale=DE"); size(7cm,6cm,IgnoreAspect); label("Random entre 0 et 1",(1,1)); for (int y=0; y>-5; --y) for (int x=0; x<3; ++x) label(format("\num{%.7f}",unitrand()),(x,y)); |
// Fonction "valeur absolue" // deux fonctions équivalentes : abs et fabs usepackage("icomma"); size(7cm,6cm,IgnoreAspect); real[] val={-2.7,-1,-.5,0,3,sqrt(2)}; int x=0,y=0; label("x",(x,y)); label("abs(x)\quad =\quad fabs(x)",(x+1.5,y)); for (real k : val) { x=0; --y; label(format("$%.5f$",k),(x,y)); // affichage limité à 5 décimales label(format(abs(k)),(++x,y)); // affichage limité par défaut à 3 décimales label(format("%.7f",fabs(k)),(++x,y)); // affichage limité à 7 décimales } |
Dernière modification le Fri Oct 28 12:58:46 CEST 2011 par G.Marris Valide XHTML