Fonction Heaviside - Echelon unité

Règles du forum
ATTENTION ! Il est demandé de ne déposer dans ce forum que des exemples de figures en langage Asymptote
  • finalisés
  • que l'on pense intéressants et optimisés
  • et qui se rapportent au thème du forum.
Si certains exemples déposés donnent lieu à de nombreuses modifications, ils seront déplacés et remplacés par un nouveau sujet dans ce forum avec la ou les meilleures propositions.
Pour les demandes d'aide ... il y a un forum spécifique !
Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Fonction Heaviside - Echelon unité

Message non lu par GM » sam. 29 mai 2010, 21:21

Suite à une demande sur Mathematex, voilà un code qui pourra peut-être être utile à certains : obtenir la courbe représentative de la fonction de Heaviside (également appelée fonction échelon) définie par :

Code : Tout sélectionner

real H(real t) {return t < 0 ? 0 : 1;}
Un appel particulier de la fonction graph permet de renvoyer un guide[], pour tracer des courbes par morceaux : un paramètre cond de type bool3 permet de définir les conditions pour relier ou pas les points.

Code : Tout sélectionner

guide[] graph(picture pic=currentpicture, real f(real), real a, real b,
int n=ngraph, real T(real)=identity, bool3 cond(real),
interpolate join=operator --);

Figure asymptote d36798e1dcb52b3244046b27b45c7b84
*** 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(300);
  3.  
  4. real xmin=-3,xmax=3;
  5. real ymin=-1,ymax=2;
  6.  
  7. // Test pour savoir s'il faut relier les points ou pas lors de l'utilisation de graph.
  8. bool3 condition(real x)
  9. { static int derniersigne=0;
  10. int signe = sgn(x);
  11. bool b = derniersigne == 0 || signe == derniersigne;
  12. derniersigne = signe;
  13. return b ? true : default;
  14. }
  15.  
  16. // Définition de la fonction
  17. real H(real t) {return t < 0 ? 0 : 1;}
  18.  
  19. // Tracé de la courbe
  20. guide[] CH=graph(H,xmin,xmax,condition,n=400);
  21. draw(CH,1.5bp+blue);
  22.  
  23. real margeaxe=.4;
  24. xaxis(Label("$x$",align=Align),xmin-margeaxe,xmax+margeaxe,Ticks(NoZero),Arrow);
  25. yaxis(ymin-margeaxe,ymax+margeaxe,Ticks(NoZero),Arrow);
  26.  
  27. shipout(bbox(2mm,Fill(white)));
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

Répondre