Table des matières (masquer)
- 1. Tableaux de signes et de variations
- 2. Principes de base
- 3. Des exmples de tracés de courbes
- 4. Intersections de courbes et calcul d’image
- 5. Tangentes en un point et fonctions dérivées
- 6. Surfaces délimitées par des courbes et sommes de Riemann
- 7. Courbes paramétrées
- 8. Repères trigonométriques, papiers milimétré, semi-logarithmique et logarithmique
1. Tableaux de signes et de variations
On peut créer des tableaux de variations avec l’environnement array :

\[\begin{array}{|c|ccccc|}
\hline
x & -10 & & 0 & & +10 \\ \hline
f'(x) & & + & 0 & - & \\ \hline
& & & 3 & & \\
f(x) & &\nearrow & &\searrow & \\
& -1 & & & & -2 \\ \hline
\end{array}\] Pour des tableaux plus complexes, on pourra charger le module tabvar disponible sur
http://www.tug.org/tex-archive/macros/latex/contrib/tabvar/doc/
Attention : remarquez bien que les définitions des colonnes utilisent la lettre C majuscule.

\usepackage{tabvar}
\[\begin{tabvar}{|C|CCCCC|} \hline
x & -\infty & & 0 & & +\infty \\ \hline
f'(x)& &+& &-& \\ \hline
\niveau{1}{2}f(x) %
&-1 &\croit& 0&\decroit&-1\\ \hline
\end{tabvar}\] 
\usepackage{tabvar}
\[\begin{tabvar}{|C|CCCCCCC|} \hline
x &-\infty & &-1& & 0 & &+\infty\\ \hline
f'(x)& &-& &-&\dbarre&-&0 \\ \hline
\niveau{3}{3}f(x) &+\infty &\decroit
&0 &\decroit
&\discont{-\infty}{<}{1} &\croit &+\infty
\\ \hline
\end{tabvar}\] Remarques :
- Pour que l’élément
soit positionné sur la deuxième ligne (centré verticalement), on va remplacer
\niveau{3}{3}f(x) &+\infty &\decroit
par
\niveau{2}{3}f(x) &\niveau{3}{3}+\infty &\decroit
- Comme vous l’avez constaté, il y a une erreur dans ce tableau : pour que la courbe devienne par décroissante de
à 1 sur l’intervalle
, on va remplacer
&\discont{-\infty}{<}{1} &\croit &+\infty
par
&\discont[1]{-\infty}{<}{+\infty} &\decroit &1
2. Principes de base
Ajoutons \usepackage{pstricks-add} au préambule afin de charger le module PSTricks
(cf http://cgm.cs.mcgill.ca/~msuder/latex/pstricks.pdf ) pour (entre autres!) tracer des courbes avec la commande
\psplot. La syntaxe en est la suivante : \psplot[par]{xmin}\{xmax}{fonction}
où par sont les paramètres, xmin et xmax sont les bornes du domaine de définition et fonction est la fonction de la variable x
- Par défaut l’expression de la fonction est donnée en RPN (la Reverse Polish Notation chère à nos calculatrices HP…).
- En activant l’option
algebraic=true, l’expression pourra être donné de façon plus usuelle.
Dans l’exemple suivant1, on va tracer la fonction sur l’intervalle [−1;1]

\usepackage{pstricks-add}
\psset{algebraic=true}
\pspicture(-2,-0.5)(2,2)
\psline{<->}(-2,0)(2,0)
\psline{->}(0,-0.5)(0,2)
\psplot{-1.5}{1}{x*x+x}
\endpspicture 1 sans l’option algebraic=true, on aurait saisi psplot{−1}{1}{x x mul x add} (↑)
3. Des exmples de tracés de courbes
Maintenant que nous avons compris le principe, essayons nous à des choses plus recherchées.
Voici une liste d’opérateurs disponibles pour l’option algebraic :
| Nom | Syntaxe | Signification |
| ^ | x^y | xy |
| sin, cos, tan, acos, asin | sin(x) | sin(x) |
| sh, ch, th, Argsh, Argch, Argth | sh(x) | sh(x) |
| log, ln | ln(x) | ln(x) |
| sqrt | sqrt(x) | |
| abs | abs(x) | |x| |
| fact | fact(n) | n! |
la commande psaxes[par]{flèches}(x0,y0)(xmin,ymin)(xmax,ymax) place un repère dans un rectangle délimité par (xmin,ymin) et (xmax,ymax) et dont les axes se coupent en (x0,y0).
La fonction sur l’intervalle [−3;1.2]

\usepackage{pstricks-add}
\pspicture(-3.5,-1)(2.5,4.5)
\psset{algebraic=true}
\psaxes{->}(0,0)(-3.5,-1)(2.5,4.5)
\psplot{-3}{1.2}{ (1-x)*(x+3) }
\psdots(-2,3) \uput[135](-2,3){$A$}
\psline[linestyle=dashed](-2,0)(-2,3)(0,3)
\endpspicture La commande \psgrid[par](xmin,ymin)(xmax,ymax) crée un quadrillage dans un rectangle délimité par (xmin,ymin) et (xmax,ymax).
La fonction sur l’intervalle [−1.6;1.6]

\usepackage{pstricks-add}
\pspicture(-2.5,-1.5)(2.5,5.5)
\psset{algebraic=true}
\psgrid(-2,-1)(2,5)
% Tracer la courbe
\psplot{-1.65}{1.65}{ x*x*x-x+2 }
% Placer les 17 points de [-1.6,1.6]
\psplot[plotpoints=17,plotstyle=dots,dotstyle=+]
{-1.6}{1.6}{ x*x*x-x+2 }
4. Intersections de courbes et calcul d’image
La commande \pstInterFF[par]{f}{g}{x0}{M} du module pst-eucl permet de positionner une intersection entre les fonctions f et g en un point M dont l’abscisse est proche1 de x0. Pour que cette commande fonctionne, il est cependant nécessaire d’exprimer les fonctions en RPN, en voici une liste des opérateurs mathématiques disponibles :
| Nom | Syntaxe | Signification | Nom | Syntaxe | Signification | |
| add | x y add | sub | x y sub | |||
| mul | x y mul | div | x y div | |||
| exp | x y exp | sqrt | x sqrt | |||
| neg | x neg | abs | x abs | |||
| mod | x y mod | reste (div. eucl.) | ceiling | x ceiling | plus petit entier sup. ou égal | |
| floor | x floor | plus grand entier inf. ou égal | round | x round | entier le plus proche | |
| sin | x sin | cos | x cos | |||
| atan | x atan | |||||
| log | x Log | ln | x ln |
1 La recherche de l’intersection se fait en utilisant l’algorithme de Newton, elle pourra donc ne pas aboutir dans certains cas particuliers. (↑)

\usepackage{pstricks-add}
\usepackage{pst-eucl}
\pspicture*(-2.5,-0.5)(3,4)
\psaxes[labels=none]{->}(0,0)(-3,-1)(3,4)
% f(x)=(x^3)/3+x+2/3
\def\f{x 3 exp 3 div x sub 2 3 div add}
\psplot{-2.5}{2.5}{\f}
% g(x)=x^2
\def\g{x 2 exp}
\psplot{-2.5}{2.5}{\g}
\pstInterFF[PosAngle=90]{\f}{\g}{1}{P}
\pstInterFF[PosAngle=45]{\f}{\g}{-1}{M_0}
\endpspicture L’extension pst-func propose la commande \psPrintValue{x}{fonction} permet d’afficher la valeur prise par la fonction (exprimée en RPN) en x :
voir http://www.ctan.org/get/graphics/pstricks/contrib/pst-func/pst-func-doc.pdf

\usepackage{pstricks-add}
\usepackage{pst-func}
\psset{yunit=0.66}
\begin{pspicture}(-4,-2)(4,7)
\psaxes{->}(0,0)(-3,-1)(3,7)[$x$,-90][$g(x)$,180]
\psplot{-2.5}{2.5}{x 2 exp}
\psline[linestyle=dashed](-1.5,0)(-1.5,7)
\end{pspicture}
Graphiquement, on constate que
$g(-\frac{3}{2})\simeq$ \psPrintValue{-1.5 2 exp}
Plus complexe mais avec pas mal de choses intéressantes :-) :

\usepackage{pstricks-add}
\usepackage{pst-func}
%Définition de f:x->x²/6
\newcommand{\f}[1]{#1 2 exp 6 div}
\begin{pspicture}(-5,-1)(8,7)
\psaxes{->}(0,0)(-5,-1)(8,7)[$x$,-90][$y$,180]
% On trace la courbe sur [-5,7]
\psplot[linecolor=red]{-5}{7}{\f{x}}
% Une boucle pour afficher les 6 valeurs
\multido{\i=-4+2}{6}{
\psdots(!\i \space \f{\i})
\uput[90](!\i \space \f{\i})%
{\psPrintValue{\f{\i} 100 mul round 100 div}}
}
\end{pspicture} Une explication sur la ligne :
\uput[90](!\i \space \f{\i}){\psPrintValue{\f{\i} 100 mul round 100 div}}
Elle permet de placer au dessus du point de coordonnées (\i, f(\i)), l’expression calculée par \psPrintValue : à chaque itération de multido, elle calcule f(\i) puis on prend l’arrondi de ce nombre multiplié par 100 qu’on divise ensuite par 100 afin d’obtenir une appriximation à deux chiffres après la virgule : .
5. Tangentes en un point et fonctions dérivées
Pstricks-add apporte des fonctionnalités pour l’étude des courbes. Par exemple \psplotTangent{x}{long}{fonc} qui permet par défaut de tracer une tangente de longueur long à la courbe représentative de la fonction fonc au point d’abscisse x et ce, en calculant le taux d’accroissement sur un intervalle de rayon 0.00005 autour du point spécifié. En cas de problème, en spécifiant l’option Derive , on peut donner explicitement l’expression de la fonction dérivée qui sera alors utilisée pour calculer exactement la valeur de la dérivée :

\usepackage{pstricks-add}
\pspicture(-3,-2)(3,2)
\psset{algebraic=true,yunit=0.5cm}
\psaxes{->}(0,0)(-3,-3)(3,3)
\def\f{2-x^2}
\psplot[linecolor=blue]{-2}{2}{\f}
\psplotTangent[arrows=<->]{1}{1}{\f}
\psplotTangent[linecolor=red,arrows=<->,%
Derive={-2*x}]{-1.5}{1}{\f}
\endpspicture
La fonction Derive (toujours incluse dans PSTricks-add) permet de tracer les courbes représentatives des dérivées successives d’une fonction. Attention elle doit être utilisée avec l’option
algebraic :

\usepackage{pstricks-add}
\pspicture(-3,-3.5)(3,3.5)
\psset{algebraic=true,yunit=0.5cm}
\psaxes{->}(0,0)(-3,-7)(3,7)
% définition de la fonction
\def\f{2-x^2}
% Tracer la courbe d'équation y=f(x)
\psplot[linecolor=blue]{-3}{3}{\f}
% Tracer la courbe d'équation y=f'(x)
\psplot[linecolor=red]{-3}{3}{Derive(1,\f)}
% Tracer la courbe d'équation y=f''(x)
\psplot[linecolor=pink]{-3}{3}{Derive(2,\f)}
\endpspicture
6. Surfaces délimitées par des courbes et sommes de Riemann
Dans le cadre d’un travail sur les intégrales, il peut être intéressant de faire apparaître une surface délimitée par des courbes et/ou des droites. Avec \pscustom l’idée consiste à “faire le tour” de la zone à mettre en valeur.

\usepackage{pstricks-add}
\psset{algebraic=true,yunit=2.5cm}
\pspicture(-2.5,-0.3)(4.5,1.3)
\def\f{1/(e^((x-1)^2))}
\psplot{-2.5}{4.5}{\f}
\pscustom{
\psplot{1}{2}{\f} \gsave
\psline(2,0)(1,0)
\fill[fillstyle=vlines] \grestore }
\psaxes[labelsep=-17pt,yAxis=false]%
{->}(0,0)(-2.5,0)(4.5,0)
\endpspicture Dans ce second exemple, observez l’utilisation de \psPi utile ici car l’option algebraic=true fait travailler PSTricks en radians :

\usepackage{pstricks-add}
\pspicture*(-1,-1.7)(6,2.5)
\psset{yunit=2cm,algebraic=true}
\def\f{1/(x^2+1)}
\def\g{cos(2*\psPi*x)/(x^2+1)}
\pscustom{
\psplot{0}{5.5}{\f} \gsave
\psplot{5.5}{0}{\g}
\fill[fillstyle=solid, fillcolor=lightgray]
\grestore }
\psplot{0}{5.5}{\g}
\psaxes[Dy=0.2,labels=y,%
ticks=y,tickstyle=bottom](0,0)(-1,-0.9)(6,1.5)
\endpspicture Remarque :
- la ligne
\psplot{0}{5.5}{\g}
serait avantageusement remplacée par la suivante afin de lisser la courbe de la sinusoide :
\psplot[plotpoints=200]{0}{5.5}{\g}
La documentation de pstricks-add (pages 107–109) est riche en exemples concernant les représentations des sommes de Riemann. En voici un exemple, la fonction \psStep[options](xmin,xmax){nbRect}{fonc} trace nbRect rectangles entre xmin et xmax pour la fonction fonc :

\usepackage{pstricks-add}
\psset{xunit=4cm, yunit=3cm,plotpoints=100}
\begin{pspicture}(-0.5,-1.5)(5.5,1.5)
\psset{algebraic=true}
\def\f{cos(2*\psPi*x)/(x^2+1)}
\psaxes{->}(0,0)(0,-1.1)(4,1.1)
\psStep[StepType=infimum,fillstyle=solid,
fillcolor=lightgray](0,2){40}{\f}
\psStep[StepType=supremum,linecolor=red,
linewidth=0.5pt](0,2){40}{\f}
\psplot{0}{2.5}{\f}
\end{pspicture}
7. Courbes paramétrées
Pour les courbes paramétrées, on utilise la commande
\parametricplot[par]{tmin}{tmax}{fonction} où par sont les paramètres, tmin et tmax sont bornes du domaine de définition et fonction est la fonction paramétrée de la variable t exprimée soit en RPN grâce à une expression laissant deux éléments dans la pile, soit avec l’option algebraic en spécifiant le séparateur |.
pour afficher la fonction sur l’intervalle [0;2
], on tapera donc :

\usepackage{pstricks-add}
\pspicture(-1.5,-1.5)(1.5,1.5)
\psset{algebraic=true}
\psaxes[labels=none,ticksize=0pt]
{->}(0,0)(-1.2,-1.2)(1.4,1.4)
\parametricplot[linewidth=1.5pt]
{0}{6.28}{sin(t)|cos(3*t)}
\endpspicture Remarque :
- En RPN on aurait plutôt saisi la ligne suiavnte (remarquez que en RPN, l’unité d’angle est le degré alors qu’avec algebraic, on travaille en radians) :
\parametricplot[linewidth=1.5pt]{0}{360}{t sin t 3 mul cos}
8. Repères trigonométriques, papiers milimétré, semi-logarithmique et logarithmique
Pour bien comprendre le fonctionnement de ce qui suit, voir page 81 dans :
http://www.ctan.org/get/graphics/pstricks/contrib/pstricks-add/pstricks-add-doc.pdf

\usepackage{pstricks-add}
\pspicture(-4,-1.5)(4,1.5)
\psaxes[trigLabels=true,trigLabelBase=3,%
xunit=\pstRadUnit]%
{->}(0,0)(-3.5,-1.5)(3.5,1.5)
\psplot{-3.5}{3.5}{x RadtoDeg sin}
\endpspicture La commande \dataplot permet de tracer des courbes à partir de listes de points (générées par exemple par Mathematica) sur un papier milimétré :

\usepackage{pstricks-add}
\savedata{\mydata}[{{0,0},{1,2},{2,2.82842},
{3,3.4641},{4,4},{5,4.47214}} ]
\pspicture(-1,-0.5)(5,5.5)
\psaxes [xticksize=0 5, yticksize=0 5,
subticksize=1, tickwidth=1pt,
subtickwidth=0.5pt,subticks=10](5,5)
\dataplot[showpoints=true]{\mydata}
\endpspicture Sur un papier semi-logarithmique et logarithmique :

\usepackage{pstricks-add}
\savedata{\mydata}[{{137,0.067},{507,0.129},
{1004,0.148},{4998,0.263},{15055,0.409},
{34644,0.594},{50455,1.589},{55355,10.03},
{59777,21.55}} ]
\psset{xunit=1cm, yunit=.2cm}
\begin{pspicture}(-1,0)(5,25)
\psaxes [xlogBase=10, logLines=x,
xticksize=0 25, yticksize=0 5,
Dy=5, subticksize=1, tickwidth=1pt,
subtickwidth=0.5pt,subticks=10](0,0)(5,25)
\pstScalePoints(1,1){log}{}
\dataplot[showpoints=true]{\mydata}
\end{pspicture}
\psset{xunit=1cm, yunit=1.2cm}
\begin{pspicture}(-1,-2.5)(5,3)
\psaxes [xylogBase=10, logLines=all,
xticksize=0 4, yticksize=0 5,
tickwidth=1pt, subtickwidth=0.5pt,
subticks=10](0,-2)(5,2)
\pstScalePoints(1,1){log}{log}
\dataplot[showpoints=true]{\mydata}
\end{pspicture} 