PROGRAMMATION : FONCTIONS MATHEMATIQUES (9)
Liste des figures
Figure fig_aa01_150309_fonctions_trigo
figure 0001
Figure fig_aa02_070409_fonctions_trigo
figure 0002
Figure fig_fh01_120409_fonctions_hyperboliques
figure 0003
Figure fig_pa01_310109_partie_entiere
figure 0004
Figure fig_pa02_120409_partie_entiere
figure 0005
Figure fig_pr01_050411_factorial_choose
figure 0006
Figure fig_ra01_120409_nombre_aleatoire
figure 0007
Figure fig_ra02_120409_nombre_aleatoire
figure 0008
Figure fig_va01_120409_valeur_absolue
figure 0009
Asymptote - Figure 0001: fig_aa01_150309_fonctions_trigo.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_aa01_150309_fonctions_trigo
// 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)));
Asymptote - Figure 0002: fig_aa02_070409_fonctions_trigo.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa02_070409_fonctions_trigo
// 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)));
Asymptote - Figure 0003: fig_fh01_120409_fonctions_hyperboliques.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_fh01_120409_fonctions_hyperboliques
// 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)));
Asymptote - Figure 0004: fig_pa01_310109_partie_entiere.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_pa01_310109_partie_entiere
// 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));
Asymptote - Figure 0005: fig_pa02_120409_partie_entiere.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_pa02_120409_partie_entiere
// 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));
}
Asymptote - Figure 0006: fig_pr01_050411_factorial_choose.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_pr01_050411_factorial_choose
// 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)));
Asymptote - Figure 0007: fig_ra01_120409_nombre_aleatoire.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ra01_120409_nombre_aleatoire
// 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));
Asymptote - Figure 0008: fig_ra02_120409_nombre_aleatoire.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ra02_120409_nombre_aleatoire
// 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));
Asymptote - Figure 0009: fig_va01_120409_valeur_absolue.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_va01_120409_valeur_absolue
// 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