?copyright ?license ?licence Copyright (C) 1986 - 1993, 1998 Thomas Williams, Colin Kelley La permission d'utiliser, de copier et de distribuer ce logiciel et sa documentation, quel que soit le but, en échange ou non d'une rémunération, est accordée, à condition que le copyright au-dessus apparaisse dans chaque copie, et que ce copyright et la présente permission apparaissent tous deux dans la documentation. La permission de modifier le logiciel est accordée, mais pas celle de distribuer le code source complètement modifié. Les modifications doivent être distribuées sous forme de patches pour la version officielle. La permission de distribuer des binaires compilés à partir de sources modifiées est accordée, à condition : 1. de distribuer les modifications correspondantes apportées au code source officiel, sous la forme d'un fichier patch accompagnant les binaires, 2. d'ajouter un identifiant spécial de version, pour distinguer votre version, en plus du numéro de version de base, 3. de fournir vos noms et adresses, en tant que contact principal pour le support de votre version modifiée, et 4. conserver les contacts d'origine afin de permettre à l'utilisateur de trouver le logiciel de base. La permission de distribuer la version officielle du code source, accompagnée des modifications sous forme d'un fichier patch est accordée avec les mêmes conditions que 2 à 4 pour les distributions binaires. Ce logiciel est distribué "tel quel", sans autre garantie, explicite ou implicite, que celle fournie par la loi en vigueur. AUTEURS Logiciel d'origine : Thomas Williams, Colin Kelley. Compléments Gnuplot 2.0 : Russell Lang, Dave Kotz, John Campbell. Compléments Gnuplot 3.0 : Gershon Elber et bien d'autres. Traduction française de l'aide : (c) Guilde Education, Avril 2000 G. Allegre, E. Fanchon, C. Boussard, V. Konieczek, A. Vareille, P. Giroud, R. Mazière Contact : ?introduction ? `gnuplot` est un programme de tracé de fonctions et de données en ligne de commande. Il est sensible à la casse (les noms de commandes et fonctions écrits en minuscules sont différents de ceux écrits en majuscules). Tous les noms de commandes peuvent être abrégés, tant que l'abbréviation n'est pas ambigüe. Il est permis d'enchaîner plusieurs commandes sur une ligne, séparées par des points-virgules (;) mais les commandes `load` et `call` doivent être les dernières sur leur ligne. Les guillemets peuvent être simples ou doubles, par ex. load "fichier" cd 'dir' bien qu'il y ait quelques subtiles différences (voir `syntaxe` pour plus de détails). Les arguments passés à gnuplot en ligne de commande sont considérés comme des noms de fichiers contenant des commandes gnuplot, à l'exception des arguments standard X11, qui sont traités en premier. Chaque fichier est chargé par la commande `charge`, dans l'ordre spécifié. `gnuplot` termine dès que le dernier fichier est traité. Si aucun fichier n'est passé, `gnuplot` s'exécute en mode interactif. Le nom de fichier spécial "-" fait référence à l'entrée standard. Pour plus de détails, voir "help batch/interactive". Beaucoup de commandes `gnuplot` ont de multiples options. Ces options doivent apparaître dans l'ordre spécicié, même si certaines peuvent être omises. Par exemple, si la commande complète est "commande a b c", alors "commande a c" marchera probablement, mais pas "commande c a". Une commande peut s'étendre sur plusieurs lignes avec un backslash (\). Le backslash doit être le _dernier_ caractère de chaque ligne. L'effet est le même que si le backslash et le caractère nouvelle-ligne n'étaient pas là. En clair, aucun espace n'est ajouté, un commentaire n'est pas terminé. En conséquence, commenter une ligne continuée commente toute la commande (voir `comment`). Mais notez que si une erreur survient dans une commande multilignes, l'analyseur n'est pas capable de la localiser précisément, et ne pointera pas forcément sur la ligne en cause. Dans ce document, les accolades ({}) entourent les arguments optionnels, et une barre verticale (|) sépare des choix mutuellement exclusifs. Les mots-clefs `gnuplot` et les sujets de l'aide `help` sont indiqués par des apostrophes inversées (backquotes) ou `en gras` (quand c'est disponible). Les crochets anguleux (<>) sont utilisés pour marquer les tokens remplaçables. Dans la plupart des cas, une valeur sera prise par défaut si un token est omis mais dans ces cas, les accolades autour des crochets anguleux sont parfois omises. Pour l'aide en ligne sur tout sujet, tapez `help` suivi du nom du sujet, ou juste `help` ou `?` pour obtenir un menu des sujets disponibles. Le débutant `gnuplot` devrait commencer par lire `plotting` (tracé) (en ligne, taper `help plotting`). ?seeking-assistance ?support Il existe une liste de diffusion d'utilisateurs `gnuplot`. Notez, cependant, que le forum (anglophone) comp.graphics.apps.gnuplot est identique à la liste de diffusion (ils transportent les mêmes messages). Nous préférons que vous lisiez les messages sur le forum plutôt que de vous inscrire sur la liste de diffusion. Les requêtes administratives doivent être envoyées à majordomo@dartmouth.edu Envoyez un message avec simplement le mot "help" dans le corps (pas dans le sujet) pour obtenir plus de détails. L'adresse pour écrire à la liste de diffusion est : info-gnuplot@dartmouth.edu Les rapports de bugs et les contributions au code doivent être envoyées à : bug-gnuplot@dartmouth.edu La liste des personnes intéressées par les versions en beta-test : info-gnuplot-beta@dartmouth.edu Il y a aussi une page Web, avec les dernières informations, dont les bugs connus : http://www.cs.dartmouth.edu/gnuplot_info.html Avant de demander de l'aide, veuillez, s'il vous plaît, vérifier la FAQ (Foire Aux Questions) (en anglais). Si vous ne trouvez pas de copie de la FAQ, vous pouvez en demander une par courriel à l'adresse Majordomo donnée plus haut, la télécharger par ftp à ftp://ftp.ucc.ie/pub/gnuplot/faq, ftp://ftp.gnuplot.vt.edu/pub/gnuplot/faq, ou aller consulter la page Web `gnuplot`. Si vous posez une question, veuillez inclure tous les détails : version de `gnuplot`, machine, et système d'exploitation que vous utilisez. Un _petit_ script montrant le problème peut être utile. Les tracés de fonctions sont préférables aux tracés de données. Si vous envoyez un mail à info-gnuplot, veuillez signaler si vous êtes inscrit à la liste ou pas, de sorte que les utilisateurs du forum sachent s'il faut vous répondre par mail. Il y a un formulaire pour ce type de demande sur le site Web. ?new-features ?nouveautes Gnuplot version 3.7 contient beaucoup de nouveautés. Cette section en donne une liste partielle et pointe vers les nouveaux sujets, sans ordre particulier. 1. `fit f(x) 'file' via` utilise la méthode de Marquardt-Levenberg pour interpoler les données. (Ce n'est que peu différent du patch `gnufit` disponible pour la version 3.5). 2. Commande `using` fortement étendue. Voir `plot using`. 3. `set timefmt` permet l'utilisation de dates en entrée et sortie pour les tracés de séries temporelles. Voir `Time/Date data` et timedat.dem. 4. Légendes multilignes et sélection de fontes dans certains drivers. 5. Graduations mineures (non étiquetées). Voir `set mxtics`. 6. Options `key` pour déplacer la légende (key box) dans la page (et même à l'extérieur du tracé), mettre un titre dessus, un rectangle autour, et plus encore. Voir `set key`. 7. Tracés multiples sur une seule page logique avec `set multiplot`. 8. Un driver `postscript` amélioré, avec exposants, indices et changements de fontes. (c'était un driver séparé (`enhpost`), disponible comme patch pour la version 3.5). 9. Seconds axes : utilisation des axes haut et droit indépendamment des axes bas et droit, à la fois pour le tracé et les graduations. Voir `plot` 10. Noms de fichiers de données spéciaux `'-'` et `""`. Voir `plot special-filenames`. 11. Nouveaux systèmes de coordonnées pour les étiquettes et les flèches. Voir `coordinates`. 12. `set size` peut essayer de tracer avec un ratio d'aspect (largeur/hauteur) spécifié. 13. `set missing` traite maintenant correctement les données manquantes. 14. La commande `call` (appel) : `load` (charge) avec des arguments. 15. Une commande `range` (intervalle) plus flexibles avec les mots-clefs `reverse` et `writeback`. 16. `set encoding` pour l'encodage multilingue. 17. Un nouveau driver `x11` avec fenêtres persistantes et multiples. 18. De nouveaux styles de tracés : `xerrorbars`, `histeps`, `financebars` et plus encore. Voir `set style`. 19. De nouveaux formats d'étiquettes de graduations, dont `"%l %L"` qui utilise la mantisse et l'exposant d'une base donnée pour les étiquettes. Voir `set format`. 20. De nouveaux drivers, dont `cgm` pour l'inclusion dans les applications MS-Office et `gif` pour délivrer des tracés sur le Web. 21. Des options de lissage et d'interpolation par splines pour `plot`. Voir `plot smooth`. 22. `set margin` et `set origin` fournissent un contrôle largement amélioré sur l'emplacement d'un graphe sur la page. 23. `set border` contrôle maintenant chaque bord individuellement. 24. Les nouvelles commandes `if` et `reread` permettent de programmer des boucles. 25. Les styles et tailles de point, les types et épaisseurs de ligne peuvent être spécifiés dans la commande `plot`. Les types et épaisseurs de ligne peuvent aussi être précisés pour les grilles, les bords, les graduations et les flèches. Voir `plot with`. De plus, ces types peuvent être combinés et stockés pour réutilisation. Voir `set linestyle`. 26. Le texte (étiquettes d'axes, de graduations, et horodatage) peut être écrit verticalement par les terminaux qui le supportent. ?script ?interactif ?batch/interactive `gnuplot` peut être exécuté en mode script (batch) ou interactif, et les deux peuvent même être mélangés sur la plupart des systèmes. Tout argument passé en ligne de commande est interprété comme nom de fichier contenant des commandes `gnuplot` (à l'exception des arguments X11 standard, qui sont interprétés les premiers). Chaque fichier est chargé avec la commande `load`, dans l'ordre spécifié. `gnuplot` termine après le traitement du dernier fichier. Quand aucun fichier à charger n'est passé, `gnuplot` entre en mode interactif. Le nom de fichier spécial "-" est utilisé pour spécifier l'entrée standard. Les commandes `exit` et `quit` terminent toutes deux le fichier de commande courant et passent au suivant, jusqu'à ce que tous aient été traités. Exemples : Pour lancer une session interactive : gnuplot Pour lancer une session script exécutant 2 fichiers de commande "entree1" et "entree2" : gnuplot entree1 entree2 Pour lancer une session interactive après un fichier d'initialisation "entete" et suivie par un fichier de commande "final" : gnuplot entete - final ?line-editing ?edition ?editing ?history ?historique ?command-line-editing L'édition de ligne de commande est supportée par les versions Unix, Atari, VMS, MS-DOS et OS/2 de `gnuplot`. Un mécanisme d'historique permet d'éditer et de ré-exécuter les commandes tapées. Quand la ligne de commande a été éditée, un retour-chariot valide la ligne entière, quelle que soit la position du cuseur. (La fonction readline de `gnuplot` n'est pas la même que celle utilisée dans GNU Bash et GNU Emacs. Si vous préférez la version GNU, elle peut être sélectionnée à la place de la version `gnuplot` à la compilation.) Les commandes d'édition sont les suivantes : `Edition de la ligne`: ^B revient d'un caractère en arrière. ^F avance d'un caractère. ^A revient au début de la ligne. ^E avance à la fin de la ligne. ^H efface le caractère précédent. ^D efface le caractère courant. ^K efface de la position courante à la fin de la ligne. ^L,^R réécrit la ligne au cas où elle soit polluée. ^U efface toute la ligne. ^W efface du mot courant à la fin de la ligne. `Historique`: ^P remonte d'une commande dans l'historique (plus ancienne) ^N redescend d'une commande dans l'historique (plus récente) Sur les PCs DOS, l'utilisation d'un programme résident comme DOSEDIT ou CED peut être préférée pour l'édition de ligne. Le makefile par défaut suppose que c'est le cas : par défaut, `gnuplot` est compilé sans capacité d'édition de ligne. Si vous voulez utiliser l'édition de ligne de `gnuplot`, positionnez READLINE dans le makefile, et ajoutez readline.obj au fichier de lien. Les touches fléchées suivantes sont utilisées sur les versions PC DOS et Atari si readline est utilisé : Flèche Gauche - same as ^B. Flèche Droite - same as ^F. Ctrl Flèche Gauche - same as ^A. Ctrl Flèche Droite - same as ^E. Flèche Haut - same as ^P. Flèche Bas - same as ^N. La version Atari de readline définit quelques touches supplémentaires : Undo - same as ^L. Home - same as ^A. Ctrl Home - same as ^E. Esc - same as ^U. Help - `help` plus Entrée. Ctrl Help - `help `. ?comments ?commentaires Les commentaires sont supportés comme suit : un `#` peut apparaître à peu près n'importe où dans une ligne et `gnuplot` ignore le reste de la ligne. Le `#` n'a aucun effet entre 2 guillemets, à l'intérieur des nombres (y compris les complexes), à l'intérieur des substitutions de commandes, etc. En résumé, il marche partout où c'est sensé. ?coordinates ?coordonnees Les commandes `set arrow`, `set key`, et `set label` permettent de dessiner quelque chose à une position arbitraire sur le graphe. Cette position est spécifiée par la syntaxe suivante : {} , {} {,{} } Chaque est un des 4 mots-clefs `first`, `second`, `graph`, `screen`. `first` place la coordonnée x, y, ou z dans le repère défini par les axes de gauche et du bas ; `second` la place dans le repère défini par les seconds axes (haut et droite) ; `graph` spécifie la position par rapport à la surface entre les axes : 0,0 en bas à gauche et 1,1 en haut à droite (pour splot, 0,0,0 est en bas à gauche de l'aire de tracé ; utilisez des z négatifs pour descendre vers la base --- voir `set ticslevel`) ; enfin, `screen` spécifie l'aire de l'écran (toute la surface, pas seulement la portion sélectionnée par `set size`), avec 0,0 en bas à gauche et 1,1 en haut à droite. Si le système de coordonnées n'est pas spécifié pour x, `first` est utilisé. S'il ne l'est pas pour y, le même que pour x est adopté. Si l'un (ou plus) des axes est une série temporelle, les coordonnées appropriées doivent être données sous forme d'une chaîne entre guillemets conforme à la chaîne de format de temps `timefmt`. Voir `set xdata` et `set timefmt`. `gnuplot` acceptera aussi une expression entière, qui sera interprétée comme le nombre de secondes écoulées depuis le 1er janvier 2000. ?environment ?environnement Plusieurs variables d'environnement du shell sont comprises par `gnuplot`. Aucune n'est indispensable, mais elles peuvent être utiles. Si GNUTERM est définie, elles est utilisée comme nom du type de terminal à utiliser. Elle supplante tout type de terminal déterminé par `gnuplot` au démarrage, mais elle est elle-même supplantée par le fichier de configuration .gnuplot (ou équivalent, voir `start-up` ou `demarrage`), et, bien sûr, par tout changement explicite effectué plus tard. Sous Unix, AmigaOS, AtariTOS, MS-DOS et OS/2, GNUHELP peut être défini pour contenir le chemin du fichier d'aide (gnuplot.gih). Sous VMS, le nom logique GNUPLOT$HELP devrait définir le nom de la bibliothèque d'aide pour `gnuplot`. L'aide `gnuplot` peut être ajoutée dans toute bibliothèque d'aide système, permettant l'accès à l'aide depuis `gnuplot` ou depuis l'extérieur, indifféremment. Sous Unix, HOME est utilisé comme nom du répertoire où chercher un fichier .gnuplot si aucun n'existe dans le répertoire courant. Sous AmigaOS, AtariTOS, MS-DOS et OS/2, gnuplot est utilisé. Sous VMS, SYS$LOGIN: est utilisé. Voir `help start-up` ou `help demarrage`. Sous Unix, PAGER est utilisé comme filtre de sortie pour les messages d'aide. Sous Unix, AtariTOS et AmigaOS, SHELL est utilisé pour la commande `shell`. Sous MS-DOS et OS/2, COMSPEC est utilisé pour la commande `shell`. Sous MS-DOS, si l'interface BGI ou Watcom est utilisée, PCTERM est utilisé pour déclarer la résolution maximale de votre moniteur, en la mettant à S. Par exemple, si la résolution maximale de votre moniteur est 800x600, alors déclarez : set PCTRM=S800 Si PCTRM n'est pas définie, le VGA standard est utilisé. FIT_SCRIPT peut être utilisée pour spécifier une commande `gnuplot` à exécuter quand un ajustement est interrompu --- voir `fit`. FIT_LOG spécifie le nom du fichier de rapport maintenu par fit. ?expressions En général, toute expression mathématique conforme aux langages C, FORTRAN, Pascal, ou BASIC, est valide. La précédence des opérateurs est celle du C. Espaces et tabulations sont ignorés à l'intérieur des expressions. Les constantes complexes s'expriment {,}, où et sont des nombres. Par exemple, {3,2} représente 3 + 2i; {0,1} représente 'i' lui-même. Les accolades sont obligatoires ici. A noter que gnuplot gère aussi bien les "réels" que les "entiers", tout comme FORTRAN et C. Les entiers s'écrivent "1", "-10", etc ; les réels "1.0", "-10.0", "1e1", 3.5e-1, etc. La principale différence entre les deux concerne la division : le résultat de la division entre entiers est tronqué : 5/2 = 2 ; celui de la division entre réels ne l'est pas : 5.0/2.0 = 2.5. Dans les expressions mixtes, les entiers sont convertis en réels avant l'évaluation : 5/2e0 = 2.5. Le résulat de la division d'un entier négatif par un entier positif varie selon les compilateurs. Faites un test du genre "print -5/2" pour voir si votre système répond -2 ou -3. L'expression entière "1/0" peut etre utilisée pour produire un message "undefined", ce qui fait que le point correspondant est ignoré ; l'opérateur `ternary` en donne un exemple. Les parties réelles et imaginaires des expressions complexes sont toujours des réels quelle que soit la façon dont on les a saisies : dans {3,2} le "3" et le "2" sont des réels, pas des entiers. ?expressions fonctions ?fonctions Les fonctions de `gnuplot` sont identiques aux fonctions correspondantes de la bibliothèque mathématique d'Unix (Unix math library), mis à part le fait que toutes les fonctions acceptent des arguments entiers, réels ou complexes, sauf s'il est spécifié explicitement autre chose. Pour les fonctions qui prennent en arguments ou renvoient des angles, lesquels peuvent etre exprimés en degrés ou en radians (sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(x) and arg(z)), l'unité peut etre spécifiée à l'aide de `set angles`, la valeur par défaut étant le radian. ?expressions fonctions abs ?fonctions abs ?abs La fonction `abs` renvoie la valeur absolue de l'argument. La valeur renvoyée est du même type que l'argument. Pour les arguments complexes, abs(x) est le module de x [i.e., sqrt(real(x)**2 + imag(x)**2) ]. ?expressions fonctions acos ?fonctions acos ?acos La fonction `acos` renvoie l'arc cosinus de son argument (inverse du cosinus). `acos` renvoie une valeur en radians ou degrés, selon ce qui a été spécifié avec `set angles`. ?expressions fonctions acosh ?fonctions acosh ?acosh La fonction `acosh` renvoie l'arg cosinus hyperpolique exprimé en radians. ?expressions fonctions arg ?fonctions arg ?arg La fonction `arg` renvoie l'argument d'un nombre complexe, en degrés ou en radians, selon ce qui a été spécifié avec `set angles`. ?expressions fonctions asin ?fonctions asin ?asin La fonction `asin` renvoie l'arc sinus de son argument. `asin` renvoie l'arc sinus de son argument, en degrés ou en radians, selon ce qui a été spécifié avec `set angles`. ?expressions fonctions asinh ?fonctions asinh ?asinh La fonction `asinh` renvoie l'arg sinus hyperbolique de son argument en radians. ?expressions fonctions atan ?fonctions atan ?atan La fonction `atan` renvoie l'arc tangente de son argument, en radians ou en degrés, selon ce qui a été spécifié avec `set angles`. ?expressions fonctions atan2 ?fonctions atan2 ?atan2 La fonction `atan2` renvoie l'arc tangente du rapport entre les parties réelles de ses arguments. `atan2` renvoie une valeur en radians ou degrés selon ce qui a été spécifié avec `set angles`, dans le quadrant convenable. ?expressions fonctions atanh ?fonctions atanh ?atan La fonction `atanh` renvoie l'arg tangente hyperbolique de son argument en radians ?expressions fonctions besj0 ?fonctions besj0 ?besj0 La fonction `besj0` renvoie la j-0ième fonction de Bessel de son argument. L'argument de `besj0` doit être en radians. ?expressions fonctions besj1 ?fonctions besj1 ?besj1 La fonction `besj1` renvoie la j-première fonction de Bessel de son argument. L'argument de `besj1` doit être en radians. ?expressions fonctions besy0 ?fonctions besy0 ?besy0 La fonction `besy0` renvoie la y-0ième fonction de Bessel de son argument. L'argument de `besy0` doit être en radians. ?expressions fonctions besy1 ?fonctions besy1 ?besy1 La fonction `besy1` renvoie la y-première fonction de Bessel de son argument. L'argument de `besy1` doit être en radians. ?expressions fonctions ceil ?fonctions ceil ?ceil La fonction `ceil` renvoie le plus petit entier non inférieur à son argument. Pour les nombres complexes, `ceil` renvoie le plus petit entier non inférieur à la partie réelle de son argument. ?expressions fonctions cos ?fonctions cos ?cos La fonction `cos` renvoie le cosinus de son argument. `cos` prend un argument en radians ou en degrés, selon ce qui a été spécifié avec `set angles`. ?expressions fonctions cosh ?fonctions cosh ?cosh La fonction `cosh` renvoie the le cosinus hyperbolique de son argument. L'argument de `cosh` doit être en radians. ?expressions fonctions erf ?fonctions erf ?erf La fonction `erf` renvoie la fonction d'erreur de la partie réelle de son argument. Si l'argument est complexe, la partie imaginaire est ignorée. La fonction d'erreur de x réel est définie par : erf(x) = 2/sqrt(pi) * intégrale de 0 à x de exp(-t*t) dt ?expressions fonctions erfc ?fonctions erfc ?erfc La fonction `erfc` renvoie 1.0 moins la fonction d'erreur de la partie réelle de son argument (complémentaire à 1.0 de la fonction d'erreur). Si l'argument est complexe, la partie imaginaire est ignorée. ?expressions fonctions exp ?fonctions exp ?exp La fonction `exp` renvoie la fonction exponentielle de son argument (`e` élévé à la puissance de cet argument). Dans certaines implementations (celle de Sun en particulier), exp(-x) renvoie une valeur indéfinie si x est très grand. Une fonction définie par l'utilisateur comme "safe(x) = x<-100 ? 0 : exp(x)" peut se révéler utile dans ce cas. ?expressions fonctions floor ?fonctions floor ?floor La fonction `floor` renvoie le plus grand entier non supérieur à son argument. Pour des nombres complexes, `floor` renvoie le plus grand entier non supérieur à la partie réelle de son argument. ?expressions fonctions gamma ?fonctions gamma ?gamma La fonction `gamma` renvoie la fonction gamma de la partie réelle de son argument. Elle est définie, pour x réel, par : gamma (x) = intégrale de 0 à +infini de t^(x-1) e^-t dt Pour un entier n, gamma(n+1) = n! Si l'argument est complexe la partie imaginaire est ignorée. ?expressions fonctions ibeta ?fonctions ibeta ?ibeta La fonction `ibeta` renvoie la fonction beta incomplète des parties réelles de ses arguments. p, q > 0 et x dans l'intervalle [0:1]. Si les arguments sont complexes, les parties imaginaires sont ignorées. ?expressions fonctions inverf ?fonctions inverf ?inverf La fonction `inverf` renvoie l'inverse de la fonction d'erreur de la partie réelle de son argument. ?expressions fonctions igamma ?fonctions igamma ?igamma La fonction `igamma` renvoie la fonction gamma incomplète de la partie réelle de son argument. a > 0 et x >= 0. Si les arguments sont complexes, les parties imaginaires sont ignorées. ?expressions fonctions imag ?fonctions imag ?imag La fonction `imag` renvoie le nombre réel partie imaginaire de son argument sous la forme d'un nombre réel. ?expressions fonctions invnorm ?fonctions invnorm ?invnorm La fonction `invnorm` renvoie l'inverse de la fonction de distribution normale de la partie réelle de son argument. ?expressions fonctions int ?fonctions int ?int La fonction `int` renvoie la partie entière de son argument, tronquée vers zéro. ?expressions fonctions lgamma ?fonctions lgamma ?lgamma La fonction `lgamma` renvoie le logarithme naturel de la fonction gamma de la partie réelle de son argument. Si l'argument est complexe, la partie imaginaire est ignorée. ?expressions fonctions log ?fonctions log ?log La fonction `log` renvoie le logarithme naturel (base `e`) de son argument. ?expressions fonctions log10 ?fonctions log10 ?log10 La fonction `log10` renvoie le logarithme (base 10) de son argument. ?expressions fonctions norm ?fonctions norm ?norm La fonction `norm` renvoie la fonction de distribution normale (ou gaussienne) de la partie réelle de son argument. ?expressions fonctions rand ?fonctions rand ?randin radians La fonction `rand` renvoie un nombre pseudo-aléatoire de l'intervalle [0:1], la partie réelle de l'argument étant prise comme point de départ. Si ce point de départ est négatif, la séquence est (ré)initialisée. Si l'argument est complexe, sa partie imaginaire est ignorée. ?expressions fonctions real ?fonctions real ?real La fonction `real` renvoie la partie réelle de son argument. ?expressions fonctions sgn ?fonctions sgn ?sgn La fonction `sgn` renvoie 1 si son argument est positif, -1 si son argument est négatif, et 0 si son argument est 0. Si l'argument est complexe, sa partie imaginaire est ignorée. ?expressions fonctions sin ?fonctions sin ?sin La fonction `sin` renvoie le sinus de son argument. L'argument de `sin` doit être en radians ou en degrés, selon ce qui a été spécifié avec `set angles`. ?expressions fonctions sinh ?fonctions sinh ?sinh La fonction `sinh` renvoie le sinus hyperbolique de son argument. L'argument de `sinh` doit être en radians. ?expressions fonctions sqrt ?fonctions sqrt ?sqrt La fonction `sqrt` renvoie la racine carrée de son argument. ?expressions fonctions tan ?fonctions tan ?tan La fonction `tan` renvoie la tangente de son argument. L'argument de `tan` doit être en radians ou en degrés, selon ce qui a été spécifié avec `set angles`. ?expressions fonctions tanh ?fonctions tanh ?tanh La fonction `tanh` renvoie la tangente hyperbolique de son argument. L'argument de `tanh` doit être en radians. Quelques autres fonctions sont disponibles également. ?expressions fonctions column ?fonctions column ?column `column(x)` ne peut être utilisé que dans des expressions `using`, pour la manipulation de fichiers de données à tracer (`plot`) ou à ajuster (`fit`). Voir `plot fichier using`. ?expressions tm_hour ?fonctions tm_hour La fonction `tm_hour` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie l'heure (un entier allant de 0 à 23) sous la forme d'un réel. ?expressions tm_mday ?fonctions tm_mday La fonction `tm_mday` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le jour du mois (un entier allant de 1 à 31) sous la forme d'un entier. ?expressions tm_min ?fonctions tm_min La fonction `tm_min` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie la minute (un entier allant de 0 à 59) sous la forme d'un réel. ?expressions tm_mon ?fonctions tm_mon La fonction `tm_mon` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le mois (un entier allant de 1 à 12) sous la forme d'un réel. ?expressions tm_sec ?fonctions tm_sec La fonction `tm_sec` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie la seconde (un entier allant de 0 à 59) sous la forme d'un réel. ?expressions tm_wday ?fonctions tm_wday La fonction `tm_wday` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le jour de la semaine (un entier allant de 1 à 7) sous la forme d'un réel. ?expressions tm_yday ?fonctions tm_yday La fonction `tm_yday` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le jour dans l'année (un entier allant de 1 à 366) sous la forme d'un réel. ?expressions tm_year ?fonctions tm_year La fonction `tm_year` interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie l'année (un entier) sous la forme d'un réel. ?expressions fonctions valid ?fonctions valid ?valid `valid(x)` ne peut être utilisé que dans des expressions `using`, pour la manipulation de fichiers de données à tracer (`plot`) ou à ajuster (`fit`). Voir `plot fichier using`. ?expressions operators ?operators ?expressions operateurs ?operateurs Les opérateurs de `gnuplot` sont identiques aux opérateurs correspondants du langage C, à la différence qu'ils acceptent tous des arguments entiers, réels et complexes, sauf mention contraire. L'opérateur ** (exponentiation) est disponible, comme en FORTRAN. Les parenthèses peuvent être utilisées pour changer l'ordre d'évaluation. ?expressions operateurs unaire ?operateurs unaire ?unaire Ce qui suit est une liste des opérateurs unaires avec leur usage : Symbole Exemple Explication - -a moins unaire + +a plus unaire (pas d'opération) ~ ~a * complément à un ! !a * négation logique ! a! * factorielle $ $3 * appel arg/colonne pendant une manipulation `using` (*) Les explications marquées d'une étoile indiquent que l'opérateur prend un argument entier. La précédence des opérateurs est la même qu'en Fortran et C. De la même manière que dans ces langages, les parenthèses peuvent être utilisées pour changer l'ordre des opérations. Ainsi -2**2 = -4, mais (-2)**2 = 4. L'opérateur factorielle retourne un nombre réel pour autoriser un plus grand domaine de valeurs. ?expressions operators binary ?operators binary ?binary ?expressions operateurs binaire ?operateurs binaire ?binaire Ce qui suit est une liste des opérateurs binaires avec leur usage : Symbole Exemple Explication ** a**b exponentiation * a*b multiplication / a/b division % a%b * modulo + a+b addition - a-b soustraction == a==b égalité != a!=b inégalité < a a>b plus grand que >= a>=b plus grand ou égal & a&b * ET bit à bit ^ a^b * OU exclusif bit à bit | a|b * OU inclusif bit à bit && a&&b * ET logique || a||b * OU logique (*) Les explications marquées d'une étoile indiquent que l'opérateur prend des arguments entiers. Le ET (&&) et le OU (||) logiques court-circuitent de la même façon qu'en C. Cela signifie que le second opérande du `&&` n'est pas évalué si le premier est faux ; le second opérande du `||` n'est pas évalué si le premier est vrai. ?expressions operators ternary ?operators ternary ?ternary ?expressions operateurs ternaire ?operateurs ternaire ?ternaire Il n'y a qu'un seul opérateur ternaire : Symbole Exemple Explication ?: a?b:c opération ternaire L'opérateur ternaire se comporte comme en C. Le premier argument (a), qui doit être un entier, est évalué. S'il est vrai (non nul), le second argument (b) est évalué et retourné ; sinon le troisieme argument (c) est évalué et retourné. L'opérateur ternaire est très utile à la fois pour construire des fonctions par morceaux et pour tracer des points seulement lorsque certaines conditions sont vérifiées. Exemples : 1. Tracer une fonction qui est égale à sin(x) pour 0 <= x < 1, 1/x pour 1 <= x < 2, et non définie ailleurs : f(x) = 0<=x && x<1 ? sin(x) : 1<=x && x<2 ? 1/x : 1/0 plot f(x) Noter que `gnuplot` ignore silencieusement les valeurs non définies, et qu'ainsi la branche finale de la fonction (1/0) ne produira aucun point traçable. Noter aussi que f(x) sera tracée comme une fonction continue en dépit de la discontinuité si un style `line` est utilisé. Pour tracer de manière discontinue, créer des fonctions séparées pour les deux morceaux. (Les fonctions paramétriques sont aussi utiles dans cette situation.) 2. Ayant des données dans un fichier, tracer la moyenne des données des colonnes 2 et 3 en fonction de la donnée en colonne 1, mais seulement si la donnée en colonne 4 est positive ou nulle : plot 'fichier' using 1:( $4<0 ? 1/0 : ($2+$3)/2 ) Voir `plot fichier using` pour une explication de la syntaxe `using`. ?expressions user-defined ?user-defined ?variables ?expressions utilisateur ?utilisateur De nouvelles variables définies par l'utilisateur, ainsi que de nouvelles fonctions de une a cinq variables, peuvent être déclarées et utilisées partout, y compris dans la commande `plot` elle-même. Syntaxe de définition des fonctions : ( {,} ... {,} ) = est définie en utilisant les variables à . Syntaxe de définition des variables : = Exemples : w = 2 q = floor(tan(pi/2 - 0.1)) f(x) = sin(w*x) sinc(x) = sin(pi*x)/(pi*x) delta(t) = (t == 0) ramp(t) = (t > 0) ? t : 0 min(a,b) = (a < b) ? a : b comb(n,k) = n!/(k!*(n-k)!) len3d(x,y,z) = sqrt(x*x+y*y+z*z) plot f(x) = sin(x*a), a = 0.2, f(x), a = 0.4, f(x) Noter que la variable `pi` est prédéfinie. Mais ce nom n'a rien de magique ; vous pouvez le redéfinir pour représenter ce que vous voulez. Les noms valides sont les mêmes que dans la plupart des langages de programmation : ils doivent commencer par une lettre, mais les caractères suivants peuvent être des lettres, des chiffres, "$", ou "_". Noter cependant que le mécanisme `fit` utilise plusieurs variables dont les noms commencent par "FIT_". Il est plus sûr d'éviter d'utiliser de tels noms. Néanmoins "FIT_LIMIT" est un de ceux que vous pouvez vouloir redéfinir. Voir la documentation sur `fit` pour les détails. Voir `show functions`, `show variables`, et `fit`. ?glossary ?glossaire Tout au long de ce document un effort a été fait pour maintenir la cohérence de la nomenclature. Cet objectif ne peut pas être totalement atteint parce que `gnuplot` a evolué au cours du temps, certaines commandes et noms de mots-clés ont été adoptés qui empêchent cette perfection. Cette section contient des explications sur la façon dont ces termes sont utilisés. Une "page" (page) ou un "écran" (screen) est la surface entière accessible à `gnuplot`. Sur un moniteur, c'est la surface de l'écran ; sur un traceur, c'est une feuille de papier. Un écran peut contenir un ou plusieurs "tracés" (plot). Un tracé est défini par une abscisse et une ordonnée, bien qu'ils n'apparaissent pas nécessairement, ainsi que par les marges et le texte. Un tracé contient un "graphe" (graph). Un graphe est défini par une abscisse et une ordonnée, bien qu'ils n'apparaissent pas nécessairement. Un graphe peut contenir une ou plusieurs "courbes" (lines). Une courbe correspond à une fonction unique ou un jeu de données unique. Les courbes d'un graphe peuvent avoir des noms individuels. Ceux-ci peuvent être listés acompagnés d'un échantillon du style de tracé utilisé pour les représenter dans la "légende" (key, legend). Le mot "titre" apparaît dans `gnuplot` avec plusieurs sens. Dans ce document, il sera toujours accompagné des compléments "de tracé", "de courbe", ou "de légende" afin d'en préciser le sens. Un graphe peut avoir jusqu'à quatre axes étiquetés. Diverses commandes ont le nom d'un axe inclu dans leur nom, comme `set xlabel`. D'autres commandes ont un ou plusieurs nom d'axe en option, comme `set logscale xy`. Les noms des quatre axes pour cet usage sont "x" pour l'axe parallèle au bord inférieur du tracé, "y" pour le bord gauche, "x2" pour le bord du haut, et "y2" pour le bord droit. "z" existe aussi dans les commandes de tracé 3D. Dans la partie sur les fichiers de données, le terme "enregistrement" sera exhumé et utilisé pour dénoter une ligne de texte dans le fichier, c'est-à-dire tous les caractères entre deux `saut-de-ligne` ou `fin d'enregistrement`. Un "point" est une donnée extraite d'un enregistrement unique. Un "bloc de données" est un ensemble de points provenant d'enregistrements consécutifs, délimités par des enregistrements vides. Une ligne,dans le contexte d'un fichier de données, est un sous-ensemble d'un bloc de données. ?plotting ?tracer ?trace Il y a trois commandes `gnuplot` qui créent effectivement un tracé : `plot`, `splot` et `replot`. `plot` génère des tracés 2D, `splot` génère des tracés 3D (en fait des projections en 2D évidemment), et `replot` ajoute ses arguments aux précédents `plot` ou `splot` et exécute la commande modifiée. La plupart des informations générales sur les tracés peuvent être trouvées dans la section sur `plot` ; les informations spécifiques à la 3D peuvent être trouvées dans la section sur `splot`. `plot` opère soit en coordonnées rectangulaires, soit en coordonnées polaires (voir `set polar` pour les détails sur ces dernières). `splot` opère seulement en coordonnées rectangulaires, mais la commande `set mapping` permet de traiter quelques systèmes de coordonnées supplémentaires. De plus, l'option `using` permet à `plot` et `splot` de traiter presque tous les systèmes de coordonnées que vous prendrez la peine de définir. `splot` peut tracer des surfaces et des contours en plus des points et/ou des lignes. En plus de `splot`, voir `set isosamples` pour des informations sur la définition des grilles de fonctions 3D ; `splot fichier` pour des informations sur la structure de fichier requise pour des valeurs de données 3D ; et `set contour` et `set cntrparam` pour des informations sur les contours. ?startup ?start ?demarrer ?.gnuplot Quand `gnuplot` est lancé, il cherche un fichier d'initialisation à charger. Ce fichier s'appelle `.gnuplot` sur les systèmes Unix et AmigaOS, et `GNUPLOT.INI` sur les autres systèmes. Si ce fichier n'est pas trouvé dans le répertoire courant, le programme va le chercher dans le répertoire utilisateur (home directory) (sous AmigaOS, Atari(single)TOS, MS-DOS et OS/2, la variable d'environnement `gnuplot` doit contenir le nom de ce répertoire). Note : si NOCWDRC est défini pendant l'installation, `gnuplot` ne lira pas le répertoire courant. Si le fichier d'initialisation est trouvé, `gnuplot` exécute les commandes qu'il contient. Celles-ci peuvent être n'importe quelles commandes `gnuplot` légales, mais typiquement elles se limitent à configurer le terminal et à définir des fonctions ou des variables fréquemment utilisées. ?substitution Les substitutions sur la ligne de commande sont spécifiées par une commande système délimitée par des apostrophes inverses. Cette commande est lancée en tant que sous-processus et la sortie qu'elle génère remplace le nom de la commande (et les apostrophes inverses) sur la ligne de commande. Certaines implémentations fournissent aussi les tubes (pipes). Voir `plot fichier special`. Les `newlines` (sauts de ligne) dans la sortie produite par la commande fille sont remplacés par des blancs. Les substitutions sur la ligne de commande peuvent être utilisées n'importe où dans la ligne de commande `gnuplot`. Exemple : Ceci lance le programme `leastsq` et remplace sur la ligne de commande `leastsq` (y compris les apostrophes inverses) par sa sortie : f(x) = `leastsq` ou, sous VMS f(x) = `run leastsq` ?syntax ?syntaxe ?specify ?specifier ?punctuation ?ponctuation Les règles générales de syntaxe et de ponctuation dans `gnuplot` sont telles que les mots-clés et les options dépendent de leur ordre sur la ligne de commande. Les options et tous les paramètres d'accompagnement sont séparés par des espaces, alors que les éléments de listes et les coordonnées sont séparées par des virgules. Les bornes des intervalles sont séparées par des deux-points et mises entre crochets [a:b], les chaînes de caractère texte et les noms de fichier sont mis entre apostrophes '' ou entre guillemets anglais "", et diverses autres choses diverses sont placées entre parenthèses. Les accolades {} sont utilisées dans quelques cas spéciaux. Les virgules sont utilisées pour séparer les coordonnées dans les commandes `set arrow`, `set key`, et `set label` ; la liste des variables qui sont ajustées (la liste après le mot-clé `via` dans la commande `fit`) ; les listes de contours discrets ou les paramètres de boucle qui les spécifient dans la commande `set cntrparam` ; les arguments des commandes `set` suivantes : `dgrid3d`, `dummy`, `isosamples`, `offsets`, `origin`, `samples`, `size`, `time` et `view` ; les listes de traits de graduation ou les paramètres de boucle qui les spécifient ; les retraits pour les étiquettes de titre et d'axe; les fonctions paramétriques à utiliser pour calculer les coordonnées x, y et z dans les commandes `plot`, `replot` et `splot` ; et les ensembles complets de mots-clés spécifiant des tracés individuels (jeu de données ou fonctions) dans les commandes `plot`, `replot` and `splot`. Les parenthèses sont utilisées pour délimiter des suites de traits de graduation explicites (par opposition aux paramètres de boucles) et pour indiquer des calculs dans le filtre `using` des commandes `fit`, `plot`, `replot` et `splot`. (Les parenthèses et les virgules sont aussi utilisées comme d'habitude dans les notations de fonctions.) Les crochets sont utilisés pour délimiter les intervalles et domaines de définition, qu'ils soient donnés pour les commandes `set`, `plot` ou `splot`. Les deux-points sont utilisés pour séparer les bornes dans les définitions d'intervalle par `range` (qu'ils soient donnés sur les commandes `set`, `plot` ou `splot`) et pour séparer les entrées dans le filtre `using` des commandes `plot`, `replot`, `splot` et `fit`. Les points-virgules sont utilisés pour séparer plusieurs commandes données sur une ligne de commande unique. Les accolades sont utilisées dans le texte pour être traitées spécialement par certains terminaux, comme `postscript`. Elles sont aussi utilisées pour noter les nombres complexes : {3,2} = 3 + 2i. Du texte peut être délimité par des apostrophes simples ou des guillemets. Le traitement des séquences introduites par une contre-oblique (antislash) comme \n (newline) et \345 (code de caractère octal) est effectué pour les chaînes entre guillemets, mais pas pour les chaînes entre apostrophes. La justification est la même pour chaque ligne d'une chaîne multi-ligne. Ainsi la chaîne centrée "Ceci est la première ligne de texte.\nCeci est la seconde ligne." produira Ceci est la première ligne de texte. Ceci est la seconde ligne. mais 'Ceci est la première ligne de texte.\nCeci est la seconde ligne.' produira Ceci est la première ligne de texte.\nCeci est la seconde ligne. Les noms de fichier peuvent être entrés soit entre apostrophes soit entre guillemets. Dans ce manuel les exemples de commandes comportent généralement les fichiers entre apostrophes et les autres éléments de type chaîne entre guillemets pour plus de clarté. Actuellement il ne faut pas inclure \n entre {} lorsque vous utilisez l'option étendue du terminal postscript. Les pilotes EEPIC, Imagen, Uniplex, LaTeX et TPIC permettent de spécifier un retour à la ligne par \\ dans une chaîne entre apostrophes ou \\\\ dans une chaîne entre guillemets. Les apostrophes inverses sont utilisées pour délimiter les commandes système pour substitution (voir `help substitution`). ?time/date ?temps ?date `gnuplot` permet l'utilisation d'informations de temps et/ou date comme données d'entrée (données temporelles). Cette caractéristique est activée par les commandes `set xdata time`, `set ydata time`, etc. A l'intérieur de `gnuplot` tous les temps et dates sont convertis en nombre de secondes par rapport à l'année 2000. La commande `set timefmt` définit le format pour toutes les entrées : fichiers de données, domaines, traits de graduation, étiquettes de position - bref, tout ce qui accepte une valeur doit la recevoir dans ce format. Puisqu'un seul format de donnée peut être en vigueur à un moment donné, toutes les quantités temps/date entrées au même moment doivent être présentées dans le même format. Ainsi si les données x et y sont simultanément temps/date, elles doivent être dans le même format. Les conversions mettant en jeu des secondes sont basées sur le Temps Universel (qui est le même que le Temps Standard de Greenwich). Rien n'est prévu pour changer de fuseau horaire ou pour les changements d'horaires saisonniers. Si toutes vos données se réfèrent au même fuseau horaire (et sont toutes soit décalées soit standard) vous n'avez pas besoin de vous préoccuper de ces choses. Mais si le temps absolu est crucial pour votre application, vous devrez convertir en TU vous-même. Les commandes comme `show xrange` ré-interprètent l'entier selon `timefmt`. Si vous changez `timefmt`, et ensuite refaites `show` sur la quantité, elle sera affichée dans le nouveau `timefmt`. Si vous désactivez les données temporelles (`set xdata`), la quantité sera montrée sous sa forme numérique. La commande `set format` definit le format qui sera utilisé pour les étiquettes de traits de graduation, que l'axe spécifié soit temporel ou non. Si l'information temporelle doit être tracée à partir d'un fichier, l'option `using` _doit_ être utilisée avec les commandes `plot` ou `splot`. Ces commandes utilisent simplement des espaces blancs pour séparer les colonnes, mais un espace blanc peut être inclus dans une chaîne temps/date. Si vous utilisez des tabulations comme séparateur, des essais-erreurs peuvent être nécessaires pour découvrir comment votre système les traite. L'exemple suivant montre un tracé temporel. Supposez que le fichier "données" contienne des enregistrements comme : 03/21/95 10:00 6.02e23 Ce fichier peut être tracé par set xdata time set timefmt "%m/%d/%y" set xrange ["03/21/95":"03/22/95"] set format x "%m/%d" set timefmt "%m/%d/%y %H:%M" plot "data" using 1:3 ce qui va produire des étiquettes xtic telles que "03/21". Voir les descriptions de chaque commande pour plus de détails. ?commandes Cette section liste les commandes reconnues par `gnuplot`, dans l'ordre alphabétique. Les versions imprimées de ce document contiennent toutes les commandes ; les versions en ligne peuvent être incomplètes. En fait, sur certains systèmes, il peut n'y avoir aucune commande listée dans cette section. Veuillez noter que dans la plupart des cas, des abréviations univoques des noms de commandes et de leurs options sont acceptées, par exemple "`p f(x) w l`" au lieu de "`plot f(x) with lines`". Dans la description de la syntaxe, les accolades ({}) entourent les arguments optionnels et la barre verticale (|) séparent les options mutuellement exclusives. ?commandes cd ?cd La commande `cd` change le répertoire de travail. Syntaxe : cd '' Le nom du répertoire doit être entre guillemets. Exemples : cd 'sousrep' cd ".." Les utilisateurs de DOS _doivent_ utiliser des guillemets simples : le backslash [\] a une signification spéciale entre guillements doubles. Par exemple, cd "c:\newdata" échoue, alors que cd 'c:\newdata' marche correctement. ?commandes call ?call La commande `call` est similaire à la commande `load`, à l'exception que vous pouvez passer jusqu'à 10 paramètres supplémentaires à la commande, qui seront substitués dans les lignes provenant du fichier : chaque ligne lue est scannée à la recherche de séquences `$n` (dollar, suivi d'un chiffre 0 à 9). Une telle séquence est remplacée par le paramètre correspondant de la commande `call`. Si le paramètre était spécifié comme une chaîne dans la commande `call`, il sera substitué sans les guillemets qui le délimitent. `$` suivi de n'importe quel autre caractère qu'un chiffre sera remplacé par ce caractère. Par exemple utilisez `$$` pour obtenir un simple `$`. Fournir plus de dix paramètres sur la ligne de commande `call` cause une erreur. Un paramètre non fourni est remplacé par rien. Les fichiers de commande appelés par `call` peuvent eux-mêmes contenir des commandes `call` ou `load`. La commande `call` _doit_ être la dernière de la ligne sur une ligne contenant plusieurs commandes. Syntaxe : call "" ... Le nom du fichier d'entrée doit être entre guillemets, et il est recommandé que les paramètres le soient également ; les versions futures de gnuplot pourront traiter différemment les arguments entre et sans guillemets. Exemple : Si le fichier 'calltest.gp' contient la ligne : print "p0=$0 p1=$1 p2=$2 p3=$3 p4=$4 p5=$5 p6=$6 p7=x$7x" l'entrée de la commande : call 'calltest.gp' "abcd" 1.2 + "'quoted'" -- "$2" affichera : p0=abcd p1=1.2 p2=+ p3='quoted' p4=- p5=- p6=$2 p7=xx NOTE : il y a une incohérence de syntaxe avec l'opérateur `using` pour les fichiers de données. Utilisez `$$n` ou `column(n)` pour accéder à la n-ième colonne d'un tracé de fichier de données appelé par `call`. ?commandes clear ?clear La commande `clear` efface l'écran ou périphérique de sortie courant (spécifié par `set output`). Sur les périphériques d'impression graphique, elle génère en général un saut de page. Utilisez `set terminal` pour fixer le type de périphérique. Pour certains terminaux, `clear` efface seulement la portion de surface de tracé définie par `set size`. Dans ce cas, elle peut donc être utilisée en conjonction avec `set multiplot` pour créer un encart. Exemple: set multiplot plot sin(x) set origin 0.5,0.5 set size 0.4,0.4 clear plot cos(x) set nomultiplot Veuillez vous référer à `set multiplot`, `set size`, et `set origin` pour une description détaillée de ces commandes. ?commandes exit ?exit Les commandes `exit` et `quit` et le caractère EOF (fin de fichier) quittent le fichier de commandes `gnuplot` courant, et chargent (load) le suivant. Voir "help batch/interactive" pour plus de détails. Chacune de ces commandes efface le périphérique de sortie (comme la commande `clear`) avant de quitter. ?commandes fit ?ajustement ?fit ?moindres_carres ?Marquardt ?Levenberg La commande `fit` permet d'ajuster une fonction définie par l'utilisateur à un ensemble de points de données (x,y) ou (x,y,z), grâce à une implantation de l'algorithme des moindres carrés non linéaires de Levenberg-Marquardt. Toute variable définie par l'utilisateur apparaissant dans le corps de la fonction peut servir de paramètre d'ajustement, mais le type de retour de la fonction doit être réel. Syntaxe : fit {[interv_x] {[interv_y]}} '' {modificateurs_fichier} via '' | {,,...} Les intervalles peuvent être spécifiés pour limiter les données à ajuster ; les données hors intervalle sont ignorées. La syntaxe est [{variable_muette=}{}{:}], analogue à `plot` ; voir `plot ranges`. est une expression `gnuplot` valide, mais on utilise d'habitude une fonction préalablement définie par l'utilisateur de la forme f(x) ou f(x,y). est traité comme dans la commande `plot`. Tous les modificateurs de `plot` pour un fichier de données (`using`, `every`...) sont utilisables avec `fit`, sauf `smooth`. Voir `plot datafile`. Les formats de donnée par défaut pour ajuster une fonction d'une seule variable, y=f(x), sont {x:}y ou x:y:s. Ces formats peuvent être changés grâce au modificateur `using`. La troisième colonne (constituée de nombres ou d'expressions), si elle est présente, est interprétée comme l'écart type de la valeur y correspondante, et est utilisée pour calculer un poids pour la donnée : 1/s**2. Sinon, toutes les données sont pondérées à 1. Pour ajuster une fonction de deux variables z=f(x,y), le format obligatoire est `using`, avec 4 colonnes, x:y:z:s. Le format doit être complet ; aucune donnée par défaut n'est calculée en cas de valeur manquante. Les poids des données sont calculés selon 's' comme ci-dessus. Si les estimations d'erreurs ne sont pas disponibles, une valeur constante peut être spécifiée sous la forme d'une expression constante, par exemple `using 1:2:3:1` (voir `plot datafile using`). Plusieurs ensembles de données peuvent être ajustés simultanément pour des fonctions d'une variable, en transformant y en 'pseudo-variable' contenant, par exemple, le numéro de ligne de la donnée, et en calculant l'ajustement comme pour deux variables indépendantes. Voir `fit multibranch`. Le qualificateur `via` spécifie quels paramètres doivent être ajustés, soit directement, soit en référençant un fichier de paramètres. Exemples : f(x) = a*x**2 + b*x + c g(x,y) = a*x**2 + b*y**2 + c*x*y FIT_LIMIT = 1e-6 fit f(x) 'measured.dat' via 'start.par' fit f(x) 'measured.dat' using 3:($7-5) via 'start.par' fit f(x) './data/trash.dat' using 1:2:3 via a, b, c fit g(x,y) 'surface.dat' using 1:2:3:(1) via a, b, c A chaque étape de l'itération, des informations détaillées sur l'état courant de l'ajustement sont affichées. Les mêmes informations pour les états initial et final sont écrites dans un fichier de rapport, "fit.log". Elles sont toujours ajoutées à la fin du fichier, afin de ne pas perdre les rapports des ajustements précédents. En cas de besoin, ce fichier peut être renommé ou effacé. L'ajustement peut être interrompu par Ctrl-C. A la fin de l'itération en cours vous avez le choix de (1) arrêter l'ajustement et accepter les valeurs des paramètres obtenues, (2) continuer l'ajustement, (3) exécuter une commande `gnuplot` comme spécifié par la variable d'environnement FIT_SCRIPT. Le contenu par défaut de FIT_SCRIPT est `replot`, donc si vous avez déjà tracé à la fois les données et la fonction à ajuster sur un même graphe, vous pouvez tracer l'état courant de l'ajustement. Une fois que l'ajustement est terminé, la commande `update` peut être utilisée pour stocker les valeurs finales dans un fichier pour un usage ultérieur. Voir `update` pour plus de détails. ?commandes fit parametres ?fit parametres ?parametres Il y a deux façons de spécifier les paramètres à ajuster avec `via`, soit directement sur la ligne de commande, soit indirectement en référençant un fichier de paramètres. Les deux méthodes utilisent des moyens différents de fixer les valeurs initiales. Les paramètres ajustables peuvent être spécifiés par une liste de variables séparées par des virgules après le mot-clef `via`. Toute variable qui n'est pas encore définie est créée avec une valeur initiale de 1.0. Cependant, l'ajustement a plus de chances de converger rapidement si les variables sont initialisées avec des valeurs plus appropriées. Dans un fichier de paramètres, les paramètres à ajuster, et leurs valeurs initiales, sont spécifiés, un par ligne, sous la forme nomvar = valeur Les commentaires, marqués par un '#', et les lignes blanches sont permis. La forme spéciale nomvar = valeur # FIXED signifie que la variable est traitée comme un 'paramètre fixé', initialisé par le fichier de paramètres, mais pas ajusté par `fit`. Pour une plus grande clarté, il peut être utile de désigner des variables comme des paramètres fixes, de sorte que leurs valeurs soient inscrites dans le rapport de `fit`. Le mot-clef `# FIXED` doit apparaître exactement sous cette forme. ?commandes fit guide_debutant ?fit guide_debutant ?guide_debutant ?commandes fit guide ?fit guide ?guide `fit` est utilisé pour trouver un ensemble de paramètres qui ajustent au mieux fonction définie par l'utilisateur sur des données. L'ajustement est estimé sur la base de la somme des carrés des différences (ou résidus), SCR, entre les données et les valeurs de la fonction, évaluée aux mêmes endroits. Cette quantité est souvent appelée "khi deux" (la lettre grecque khi, à la puissance 2). L'algorithme essaie de minimiser cette somme, ou plus précisément cette somme pondérée, SCRP, puisque les résidus sont pondérés par les erreurs sur les données d'entrée (ou par 1.0) avant d'être élevés au carré. C'est pourquoi il est appelé "ajustement aux moindres carrés". Voir `fit estimation_erreur` pour plus de détails. Examinons un exemple pour comprendre ce que veut dire "non-linéaire" ici, mais d'abord il vaut mieux définir quelques termes. Ici il est commode d'utiliser z comme variable fonction d'une ou deux variables indépendantes, z=f(x) ou z=f(x,y). Un paramètre est une variable définie par l'utilisateur que `fit` va ajuster, ie une quantité inconnue dans la déclaration de la fonction. La linéarité (ou non-linéarité) se rapporte à la relation entre la variable liée, z, et les paramètres que `fit` ajuste, pas à la relation liant z à x et/ou y. Dans les moindres carrés linéaires, la fonction définie par l'utilisateur est la somme de fonctions simples, ne dépendant d'aucun paramètre, chacune multipliée par un paramètre. Les moindres carrés non linéaires résolvent des fonctions plus compliquées, dans lesquelles les paramètres peuvent intervenir de nombreuses manières. Un exemple qui illustre la différence entre moindres carrés linéaires et non-linéaires est les séries de Fourier. Un terme peut être écrit sous la forme : z=a*sin(c*x) + b*cos(c*x). Si a et b sont les paramètres et c est constante, alors estimer les valeurs des paramètres est un problème aux moindres carrés linéaire. Par contre, si c est un paramètre, le problème est non-linéaire. Dans le cas linéaire, les valeurs des paramètres peuvent être déterminées par un calcul direct d'algèbre linéaire. Cependant, c'est un cas particulier qui peut également être résolu par la méthode générale (non-linéaire) itérative utilisée par `gnuplot`. `fit` tente de trouver le minimum en faisant une recherche : à chaque itération, il calcule SCRP (somme des carrés des résidus pondérés) avec un nouvel ensemble de paramètres. L'algorithme de Levenberg-Marquardt sélectionne les valeurs des paramètres pour l'itération suivante. Le processus continue jusqu'à ce qu'un critère prédéfini soit rempli : soit (1) l'ajustement a "convergé" (le changement relatif de SCRP est inférieur à FIT_LIMIT), soit (2) on a atteint une valeur limite pour le nombre d'itérations, FIT_MAXITER (voir `variables_controle`). L'ajustement peut aussi être interrompu puis stoppé au clavier (voir `fit`). Souvent, la fonction à estimer est basée sur un modèle (ou une théorie) qui tente de décrire ou de prédire le comportement des données. `fit` peut alors être utilisé pour trouver les valeurs des paramètres libres du modèle, pour déterminer à quel point les données obéissent au modèle, et pour estimer un intervalle d'erreur pour chaque paramètre. Voir `fit estimation_erreurs` D'un autre côté, en interpolation de courbes, les fonctions sont sélectionnées indépendamment d'un modèle, sur la base de l'expérience, dans le but de décrire l'allure des données avec un nombre minimal de paramètres*fonctions, mais une résolution suffisante. La solution de `fit` fournit alors une représentation analytique de la courbe. Mais si ce qu'il vous faut vraiment, c'est une courbe lisse reliant vos données, l'option `smooth` de `plot` est peut-être plus appropriée que `fit`. ?commandes fit erreurs ?fit erreurs ?fit estimation ?fit estimation_erreurs Dans `fit`, le terme "erreur" est utilisé dans deux contextes différents : l'estimation d'erreur sur les données, et l'estimation d'erreur sur les paramètres. L'estimation d'erreurs sur les données est utilisée pour calculer le poids relatif de chaque donnée, intervenant dans le calcul de SCRP (la somme des carrés des résidus pondérés). Elle peut affecter l'estimation des paramètres, puisque elle détermine l'influence sur la valeur finale de l'écart de chaque point à la fonction ajustée. Certaines informations du rapport fourni par `fit`, dont les estimations d'erreur sur les paramètres, sont plus pertinentes si des estimations précises des erreurs sur les données sont fournies. L'"aperçu statistique" décrit quelques sorties de `fit` et donne quelques prérequis pour les "modalités pratiques". ?commandes fit erreurs apercu_statistique ?fit erreurs apercu_statistique ?apercu_statistique ?commandes fit erreurs apercu ?fit erreurs apercu ?apercu La théorie des moindres carrés non linéaires (MCNL) est en général décrite en termes de distribution normale des erreurs, c'est à dire que les données d'entrée sont supposées être un échantillon d'une population de moyenne et d'écart-type donnés, réparties selon une distribution gaussienne (normale). Pour un échantillon de taille suffisamment grande, et connaissant l'écart-type de la population, on peut utiliser les résultats sur la distribution du khi-deux pour évaluer la "pertinence de l'ajustement", en examinant la variable souvent appelée "khi-deux". Si l'on définit le nombre de degrés de liberté comme le nombre de données moins le nombre de paramètres à ajuster, et le khi-deux réduit comme khi-deux divisé par le nombre de degrés de liberté, il est ici suffisant de dire qu'un khi-deux réduit de 1.0 signifie que la somme pondérée des résidus au carré est celle attendue pour un échantillon pris au hasard parmi une population caractérisée par la fonction ajustée, avec les valeurs courantes des paramètres et des écarts-types. Si l'écart-type pour la population n'est pas constant, comme en statistiques descriptives où variance = comptages, chaque point doit être pondéré individuellement en comparant les sommes des écarts observée et attendue. En conclusion, `fit` indique "stdfit", l'écart-type de l'ajustement (en anglais, "standard deviation"), qui est la rms des résidus, et la variance des résidus, également appelée "khi-deux réduit", quand les points de données sont pondérés. Le nombre de degrés de liberté est utilisé dans ces estimations, car les paramètres utilisés dans le calcul des résidus proviennent des mêmes données. Pour estimer les niveaus de confiance pour les paramètres, on peut utiliser le khi-deux minimum obtenu par l'ajustement, et effectuer des calculs de khi-deux pour déterminer la valeur du khi-deux corresponsant au niveau de confiance souhaité, mais cela demande considérablement plus de calcul de déterminer les combinaisons de paramètres qui produisent ces valeurs. Plutôt que déterminer les intervalles de confiance, `fit` renvoie les estimations d'erreur sur les paramètres, qui sont directement obtenus à partir de la matrice de variance-covariance après la dernière itération. Par convention, ces estimations sont appelées "erreurs standard (asymptotiques)", puisqu'elles sont calculées de la même façon que les erreurs standard (écart type de chaque paramètre) d'un problème de moindres carrés linéaire (MCL), même si les conditions statistiques ne sont pas exactement remplies pour le problème MCNL. Les erreurs standard asymptotiques sont généralement trop optimistes et ne devraient pas être utilisées pour déterminer des intervalles de confiance, mais elles sont utiles pour des estimations qualitatives. La solution finale produit aussi une matrice de corrélation, qui donne une indication sur la corrélation des paramètres dans la région de la solution ; si un des paramètres change de sorte que le khi-deux augmente, est-ce qu'un autre paramètre peut compenser ? Les éléments de la diagonale principale, coefficients d'autocorrélation, sont tous à 1 ; si tous les paramètres étaient indépendants, tous les autres coefficients seraient proches de 0. Deux variables qui se compensent parfaitement auraient un coefficient hors-diagonale de valeur absolue 1, avec un signe plus si la relation est proportionnelle, moins si elle est inversement proportionnelle. Plus la valeur absolue des coefficients non-diagonaux est petite, plus les estimations de l'écart type de chaque paramètre sont proches de l'erreur standard asymptotique. ?commandes fit erreurs guide_pratique ?fit erreurs guide_pratique ?guide_pratique ?commandes fit erreurs pratique ?fit erreurs pratique ?pratique Si vous avez une référence permettant d'assigner un poids à chaque point, cela vous permet d'utiliser de l'information supplémentaire sur vos mesures, par exemple, de prendre en compte que certains points sont plus fiables que d'autres. Cela peut affecter la valeur finale des paramètres. Pondérer les données fournit une base à l'interprétation de la sortie supplémentaire fournie par `fit` après la dernière itération. Même si vous pondérez tous vos points par la même valeur, estimer un écart-type moyen plutôt qu'un poids uniforme de 1 fait de SCRP une variable sans dimension, comme l'est khi-deux par définition. Pendant le calcul, chaque itération affiche des informations permettant d'évaluer les progrés de l'ajustement. Une "*" indique que l'algorithme n'a pas trouvé de SCRP plus petite, et réessaye. La somme des carrés des résidus ("sum of squares of residuals"), également appelée "khi-deux", est la SCRP entre les données et la fonction ajustée ; c'est ce que `fit` a minimisé. A ce niveau, avec des données pondérées, khi-deux est censé s'approcher du nombre de degrés de libertés (le nombre de données moins le nombre de paramètres). La SCRP peut être utilisée pour calculer le khi-deux réduit (SCRP/ddl) ou stdfit, l'écart-type de l'ajustement =sqrt(SCRP/ddl). Les deux sont données par le rapport, à partir de la SCRP finale. Si les données ne sont pas pondérées, stdfit est la valeur rms de l'écart des données à la fonction ajustée, en unités utilisateur. Si vous avez fourni des erreurs valides sur les données, que le nombre de données et suffisant, et que le modèle est correct, le khi-deux réduit devrait avoisiner l'unité. Pour plus de détails, consultez "la distribution du khi-deux" dans votre cours de statistiques préféré. Si c'est bon, il existe des tests plus poussés, qui dépassent le cadre de cet aperçu, pour déterminer l'adéquation du modèle aux données. Un khi-deux réduit très supérieur à 1.0 peut être dû à des estimations d'erreur incorrectes, des erreurs ne suivant pas une distribution normale, des erreurs de mesure systématiques, des "points aberrants", ou un modèle de fonction incorrect. Un tracé des résidus, par exemple `plot "datafile" using 1:($2-f($1))`, peut vous aider à découvrir une tendance systématique. Un tracé superposé des points de données et de la fonction peut vous suggérer un autre modèle. Similairement, un khi-deux réduit inférieur à 1.0 indique que SCRP est inférieur à celui attendu pour un échantillon aléatoire de la fonction, avec des erreurs distribuées selon la loi normale. Les estimations d'erreurs sur les données sont peut-être trop grandes, ou la fonction modèle trop générale, s'adaptant aux fluctuations d'un modèle particulier, en plus des tendances générales sous-jacentes. Dans ce dernier cas, une fonction plus simple peut être plus appropriée. Vous devrez vous habituer à utiliser `fit` sur votre genre de problèmes avant d'être capable d'interpréter les erreurs standard, de façon plus pratique, comme des incertitudes sur les paramètres ou d'évaluer la pertinence de la matrice de corrélation. De ce fait, un "point aberrant" aura un effet exagéré sur la solution. ?commandes fit controle ?fit controle ?controle Il y a plusieurs variables `gnuplot` qui peuvent être utilisées pour contrôler `fit`. Celles qui peuvent être définies après le lancement de `gnuplot` sont listées sous "variables_controle", celles définies avant le lancement de `gnuplot` sont sous "variables_environnement". ?commandes fit controle variables ?fit controle variables ?controle variables L'epsilon limite par défaut (1e-5) peut être changé en affectant une valeur à FIT_LIMIT Quand la somme des carrés des résidus change d'une itération à l'autre d'un facteur inférieur à ce nombre, on considère que l'ajustement a "convergé". Le nombre maximum d'itérations peut être limité en affectant une valeur à FIT_MAXITER Affecter une valeur de 0 (ou ne pas déclarer la variable) signifie qu'il n'y a pas de limite. Si vous avez besoin d'un contrôle plus précis, et que vous maîtrisez l'algorithme de Levenberg-Marquardt, il y a d'autres variables que vous pouvez modifier. La valeur de départ de "lambda" est normalement calculée automatiquement à partir de la matrice de LM, mais vous pouvez indiquer la vôtre avec FIT_START_LAMBDA Une valeur de FIT_START_LAMBDA inférieure ou égale à 0 sera remplacée par la valeur calculée automatiquement. La variable FIT_LAMBDA_FACTOR contient le facteur par lequel "lambda" est augmenté ou diminué si le khi-deux de la fonction cible augmente ou diminue significativement. Une valeur de zéro est remplacée par le facteur par défaut, 10.0. D'autres variables avec le préfixe FIT_ pourront être ajoutées à `fit`, donc il est préférable d'éviter ce préfixe pour des variables utilisateur. Les variables FIT_SKIP et FIT_INDEX étaient utilisées par des versions précédentes de `gnuplot`, avec un patch pour `fit` appelé `gnufit`, et ne sont plus disponibles. Le modificateur `every` pour les fichiers fournit les fonctionnalités de FIT_SKIP. FIT_INDEX était utilisé pour l'ajustement multi-branche, mais l'ajustement multi-branche d'une variable indépendante est maintenant traité comme un ajustement pseudo-3D pour lequel la seconde variable indépendante et `using` sont utilisés pour spécifier la branche. Voir "ajustement multi-branche". ?commandes fit controle environnement ?fit controle environnement ?controle environnement Les variables d'environnement doivent être définies avant le démarrage de `gnuplot`. La manière de le faire dépend de votre système. FIT_LOG change le nom (et/ou le chemin) du fichier de rapport d'ajustement. La valeur par défaut est "fit.log", dans le répertoire courant. FIT_SCRIPT spécifie une commande à exécuter après une interruption utilisateur. La commande par défaut est `replot`, mais un `plot` ou un `load` peuvent être utiles pour afficher un tracé personnalisé permettant de visualiser l'avancement de l'ajustement. ?commandes fit multi-branche ?fit multi-branche ?multi-branche ?branche Dans un ajustement multi-branche, plusieurs ensembles de points peuvent ajuster simultanément des fonctions d'une variable avec des paramètres communs, en minimisant la SCRP totale. La fonction et les paramètres (branche) de chaque ensemble de points sont sélectionnés en utilisant une "pseudo-variable", par exemple, soit le numéro de ligne de donnée (un index de colonne de -1), soit l'index de donnée, comme seconde variable indépendante. Exemple : étant données 2 fonctions à décroissance exponentielles de la forme z=f(x), chacune décrivant un ensemble de données, mais de période de décroissance commune, estimer les valeurs des paramètres. Si le fichier de données est de format x:z:s, alors on effectuera : f(x,y) = (y==0) ? a*exp(-x/tau) : b*exp(-x/tau) fit f(x,y) 'datafile' using 1:-1:2:3 via a, b, tau Pour un exemple plus compliqué, voir le fichier "hexa.fnc" utilisé par le tracé de démonstration "fit.dem". Une pondération appropriée peut être nécessaire, car les poids peuvent entraîner la prédominance d'une branche s'il y a une différence d'intervalle pour la variable liée (y) entre les 2 branches. Eventuellement, ajuster chaque branche indépendamment, en utilisant la solution multi-branche comme valeurs initiales, peut vous donner une idée de l'influence relative de chaque branche sur la solution commune. ?commandes fit valeurs_initiales ?fit valeurs_initiales ?valeurs_initiales ?commandes fit initial ?fit initial ?initial L'ajustement non-linéaire n'est pas assuré de converger vers l'optimum global (la solution de plus petite SCRP), et peut rester bloquer dans un minimum local. La routine n'a aucun moyen de le déterminer ; c'est à vous de juger si c'est le cas. `fit` peut se retrouver perdu s'il démarre d'une région loin d'une solution, où SCRP est grande et varie lentement en fonction des paramètres, ou peut atteindre une région numériquement instable (par exemple, un flottant trop grand causant un débordement -floating point overflow-) qui résulte en un message "undefined value" ou un arrêt de `gnuplot`. Pour augmenter les chances de trouver l'optimum global, vous avez intérêt à positionner les valeurs initiales au voisinage (approximatif) de la solution, par exemple, à moins d'un ordre de grandeur, si possible. Plus vos valeurs initiales sont proches de la solution, plus les risques de s'arrêter sur un autre optimum (local) sont faibles. Une manière de trouver des valeurs initiales est de tracer les données et la fonction à ajuster sur le même graphe, et de changer les valeurs des paramètres, et de faire `replot` jusqu'à trouver une ressemblance raisonnable. Le même tracé est également utile pour vérifier si l'ajustement n'a pas stoppé dans un minimum local qui n'"ajuste" pas bien. Bien sûr, un ajustement raisonnablement bon n'est pas une preuve qu'il n'en existe pas de "meilleur" (soit dans le sens statistique, caractérisé par un critère d'adéquation plus élevé, soit dans le sens physique, ie une solution plus cohérente avec le modèle). Selon le problème, il peut être utile de tenter différents ajustements, avec des ensembles variés de valeurs initiales couvrant un intervalle raisonnablement large pour chaque paramètre. ?commandes fit trucs ?fit trucs ?trucs Voici quelques trucs à garder à l'esprit pour utiliser efficacement `fit`. Ils ne sont pas très organisés, donc il vous faudra les lire plusieurs fois afin de vous en pénétrer pleinement. Les deux formes de l'argument `via` de `fit` ont deux utilisations largement distinctes. La forme `via "fichier"` est plus adaptée au traitement en lot, où vous fournissez juste les valeurs initiales dans un fichier et pouvez ultérieurement utiliser `update` pour copier les résultats dans un autre (ou le même) fichier de paramètres. La forme `via var1, var2, ...` est utilisée interactivement, avec l'aide de l'historique des commandes, pour éditer la liste des paramètres ou fournir de nouvelles valeurs initiales pour un nouvel essai d'ajustement. C'est particulièrement utile pour des problèmes difficiles, où un ajustement direct de tous les paramètres à la fois ne marche qu'avec de bonnes valeurs initiales. Pour les trouver, vous pouvez itérez plusieurs fois un ajustement partiel (certains paramètres), jusqu'à ce que les valeurs soient suffisamment proches de la solution. Assurez vous qu'il n'y a pas de dépendance mutuelle entre les paramètres de la fonction que vous ajustez. Par exemple, n'essayez pas d'ajuster a*exp(x+b), puisque a*exp(x+b) = a*exp(b)*exp(x). Ajustez plutôt a*exp(x) OU exp(x+b) [plutôt la première forme, voir ci-après]. Un problème technique : les paramètres ne doivent pas être trop différents en ordre de grandeur. Plus le rapport entre le plus petit et le plus grand paramètre (en valeur absolue) est grand, plus l'ajustement va mettre du temps à converger. Si le rapport est proche ou plus grand que l'inverse de l'epsilon machine, ça peut prendre un temps infini pour converger, ou même ne pas converger du tout. Vous devez alors adapter votre fonction pour éviter ceci, par exemple; remplacer le paramètre "p" par "1e9*p" dans la définition de la fonction, et diviser la valeur initiale par 1e9. Si vous pouvez écrire votre fonction comme combinaison linéaire de fonctions simples, chacune multipliée par un paramètre à ajuster, faites le. Cela aide grandement, en rendant le problème linéaire. La convergence s'effectue en un petit nombre d'opérations, éventuellement une seule. Certaines recettes pour l'analyse de données, données dans des cours de pratique expérimentale, ont pu vous dire de procéder pas à pas, en ajustant tout d'abord certaines fonctions, pour en déduire certaines informations, souvent dans le but de souligner la théorie expliquant ces données, puis d'extraire l'information que vous voulez des paramètres de ces fonctions. Avec `fit`, tout peut souvent être fait en un seul pas, en écrivant directement la fonction modèle en terme de paramètres à ajuster. La transformation des données peut souvent être évitée, parfois au prix d'une plus grande complexité du problème à résoudre. Si vous pensez que cela contredit le paragraphe précédent sur la simplification de la fonction à ajuster, vous avez raison. Un message "singular matrix" (matrice singulière) indique que l'implémentation de l'algorithme de Levenberg-Marquardt ne peut pas calculer les valeurs des paramètres pour l'itération suivante. Essayez des valeurs initiales différentes, une fonction plus simple, ou écrite sous une autre forme. En conclusion, une jolie citation d'un autre logiciel d'ajustement (fudgit), qui résume un peu tous ces problèmes : "L'ajustement non-linéaire est un art." ?commandes help ?help ?aide La commande `help` affiche l'aide en ligne. Pour obtenir de l'information sur un sujet particulier, utilisez la syntaxe : help {} Si n'existe pas, un message court sur `gnuplot` s'affiche. Une fois que l'aide requise sur le sujet a été fournie, un menu avec des sous-sujets apparaît. On peut étendre l'aide requise en demandant de l'aide sur l'un des sous-sujets : pour obtenir cette aide, tapez le nom du sous-sujet. Quand le sous-sujet a été affiché, l'aide peut être étendue une fois de plus, mais vous pouvez aussi remonter d'un niveau au sujet précédent. Finalement, la ligne de commande `gnuplot` réapparaîtra. Si un point d'interrogation (?) est entré comme sujet de l'aide, la liste de tous les sujets disponibles est affichée à l'écran. NOTES POUR LA VERSION FRANCAISE : Vous pourrez trouver après les intitulés de certains sujets d'aide, soit la version originale du sujet, entre parenthèses (), soit l'indication des mots-clés correspondant au sujet, entre crochets [] ?commandes if ?if La commande `if` permet l'exécution conditionnelle de commandes. Syntaxe: if () va être évaluée. Si elle est réalisée (non-nulle), alors les commandes de la seront exécutées. Si elle n'est pas réalisée (nulle), alors la totalité de est ignorée. Notez que l'utilisation de `;` pour permettre plusieurs commandes sur la même ligne ne termine pas les commandes conditionnées. Exemples : pi=3 if (pi!=acos(-1)) print "?Ajustement de pi!"; pi=acos(-1); print pi affichera: ?Ajustement de pi! 3.14159265358979 mais if (1==2) print "Jamais vu ça"; print "Ni ça non plus" n'affichera rien du tout. Voir `reread` pour avoir un exemple de comment `if` et `reread` peuvent être utilisés ensemble pour réaliser une boucle. ?commandes load ?load La commande `load` exécute chaque ligne du fichier d'entrée spécifié comme si elle avait été tapée de façon interactive. Les fichiers créés par la commande `save` peuvent ultérieurement être chargés par `load`. N'importe quel fichier texte contenant des commandes valides peut être exécuté par `load`. Les fichiers chargés par `load` peuvent eux-mêmes contenir les commandes `load` et `call`. Voir "commentaires" pour avoir des informations sur les commentaires dans les commandes. Pour charger un fichier avec des arguments, voir `call`. La commande `load` doit être la dernière sur une ligne de plusieurs commandes. Syntaxe : load "" Le nom du fichier d'entrée doit être entre guillemets. Le fichier spécial "-" peut être utilisé pour charger des commandes depuis l'entrée standard. Ceci permet à un fichier de commandes `gnuplot` d'accepter quelques commandes depuis l'entrée standard. Veuillez vous référer à "help batch/interactive" pour plus de détails. Exemples : load 'work.gnu' load "func.dat" La commande `load` est exécutée implicitement sur tous les fichiers passés en argument à `gnuplot`. Ceux-ci sont chargés dans l'ordre spécifié, puis `gnuplot` s'arrête. ?commandes pause ?pause La commande `pause` affiche un texte associé à la commande puis attend pendant un laps de temps spécifié ou jusqu'à ce que le retour chariot soit pressé. `pause` est spécialement utile en conjonction avec des fichiers chargés par `load`. Syntaxe : pause {""} peut être un entier constant ou une expression. Choisir -1 permet d'attendre jusqu'à ce que le retour chariot soit pressé ; choisir 0 ne donnera pas de pause ; choisir un entier positif permet d'attendre le nombre de secondes spécifiées. `pause 0` est synonyme de `print`. Note : du fait que `pause` communique avec le système d'exploitation et non avec les graphiques, elle peut se comporter différemment selon les différents terminaux (suivant comment le texte et le graphisme sont liés). Exemples : pause -1 # Attend jusqu'à ce que le retour chariot soit pressé pause 3 # Attend trois secondes pause -1 "Presser Entrée pour continuer" pause 10 "N'est ce pas mignon ? C'est une spline cubique" ?commandes plot ?plot `plot` est la principale commande pour effectuer des tracés avec `gnuplot`. Elle crée des tracés de fonctions et de données, de nombreuses manières différentes. `plot` est utilisée pour les tracés 2d ; `splot` dessine des projections 2d de tracés 3d (surfaces et données). `plot` et `splot`ont de nombreuses caractéristiques communes ; voir `splot`pour leurs différences. Notez en particulier que les options `binary` (binaire) et `matrix` (matrice) de `splot` n'existent pas pour `plot`. Syntaxe : plot {} { | {"" {modif_fichier_donnees}}} {axes } {} {with