Des courbes en LaTeX: Extension pstricks-add. publié le 22/04/2008  - mis à jour le 14/12/2013

Introduction

$LaTeX$ offre une multitude de possibilités pour concevoir des documents.

Dans cet article, je vais montrer qu’il est rapidement possible d’effectuer le tracé d’une courbe (et même plus) sans avoir recours à un logiciel externe tel que TeXGraph, ou PstPlus et ceci simplement en ajoutant quelques lignes de code.

Utilisation

Dans le préambule de votre document $LaTeX$, il faudra appeler les extensions suivantes :

  • pstricks-add, pour le tracé des courbes :
    \usepackage{pstricks-add} ;
  • pst-eucl, pour la gestion des intersections des courbes :
    \usepackage{pst-eucl}.

Gestion du repère

Tout d’abord, il faudra gérer l’affichage du repère :

  • le tracé du repère se fera à l’aide de la commande suivante :
    \psaxes[par]{arrows}(x0,y0)(x1,y1)(x2,y2) ;
    un_repere
  • il est conseillé de mettre les mêmes dimensions pour les axes que les dimensions de l’image.

Gestion des labels sur les axes

Il est possible de modifier les unités sur les axes de façon à avoir sur l’axe des abscisses des unités trigonométriques :

  • pour cela, Il faudra ajouter le code suivant : trigLabels=true ;
    Un repère trigo
  • ainsi, avec un repère de ce type, on pourra tracer des fonctions trigonométriques ;
  • il faudra cependant modifier la gestion des unités sur l’axe des abscisses en consultant la documentation de pstricks-add ;
    fonctions trigo

Représentation de fonctions

Courbes classiques

Pour tracer une courbe, la commande de base sera la suivante :
\psplot[par]{xmin}{xmax}{fonction}.

  • Définir une fonction
    • L’instruction algebraic=true, permettra de donner la fonction sous sa forme classique, sinon il faudra donner l’expression de la fonction en utilisant la notation polonaise inverse RPN (Reverse Polish Notation), notation souvent utilisée avant les années 90 notamment par les calculatrices HP.
    • Par exemple, la fonction $f:x\mapsto x^2+3x-5$ s’écrit en notation RPN :
      x 2 exp 3 x mul add 5 sub.
      L’explication vient du fait qu’un opérateur a besoin de deux opérandes.
      Ainsi le code, x 2 exp se traduit par $x^2$, le code 3 x mul par $3x$ et le code add qui suit signifie qu'il faut additionner ces deux termes. On obtient ainsi $x^2+3x$. Enfin le code qui suit, 5 sub, signifie qu'il faut enlever 5 à ce que l'on vient d'obtenir. On obtient finalement: $x^2+3x-5$.
  • Tracer une courbe
    • On pourra d’une part donner directement l’expression de la fonction dans la commande \psplot.
      fonction1
    • On pourra aussi définir la fonction par la commande \def\nom_de_la_fonction{expression}, puis dans la commande \psplot, on appellera la fonction.
      L’avantage de cette méthode est que l’on peut définir une fonction $g$ à partir d’une fonction $f$.
    • L’exemple suivant montre la courbe d’une fonction et l’image de cette courbe par une translation.
      fonctions translation
    • Cet autre exemple montre la représentation graphique d’une fonction $f$ et la représentation graphique de l’inverse de la fonction, $\frac{1}{f}$.
      une_fct_et_inverse

Courbes paramétriques

Pour tracer une courbe, la commande de base sera \parametricplot[par]{tmin}{tmax}{
x(t)
y(t)} qui utilise la notation RPN (le retour à la ligne permet de séparer les expressions $x(t)$ et $y(t)$).

  • On peut voir ci-dessous un premier exemple.
    cardoide
  • Si on utilise l’instruction algebraic=true et la commande \parametricplot[par]{tmin}{tmax}{x(t)|y(t)}, la variable t sera alors exprimée en radians.
    L’exemple ci-dessous en est une illustration.
    astroide

Aires

Il est possible de représenter l’aire comprise entre la courbe d’une fonction, l’axe des abscisses et les deux droites d’équations $x=a$ et $x=b$.
Pour cela, il s’agit d’utiliser la commande
\pscustom[par]{segment(a,0)(a,f(a)) courbe segment(b,f(b))(b,0)}
On fera attention au dernier segment tracé puisque la première extrémité du segment part de la courbe.

  • L’exemple ci-dessous montre l’utilisation de ce code.
    aire entre deux droites
  • On pourra aussi représenter l’aire comprise entre deux courbes.
    Pour cela, il faudra utiliser la commande\pscustom[par]{courbe du bas courbe du haut}
    aire entre deux courbes

Intersection de deux fonctions

Pour obtenir les points d’intersections de deux courbes, il est nécessaire de déclarer dans le préambule du document, le package pst-eucl par le code
\usepackage{pst-eucl}.
C’est la seule partie où la notation RPN est nécessaire.
De plus, il est possible que la recherche de l’intersection ne puisse aboutir puisque celle-ci utilise l’algorithme de NEWTON.

  • Pour obtenir l’intersection entre une courbe et une droite (AB), on utilisera le code \pstInterFL[par]{fonction}{A}{B}{abscisse}{nom_du_point}.
    L’abscisse donnée n’est pas forcément l’abscisse précise du point d’intersection mais juste un "positionnement".
    intersection_courbes_droites
  • Pour obtenir l’intersection entre deux courbes, on utilisera le code \pstInterFF[par]{fonction_1}{fonction_2}{abscisse}{nom_du_point}.
    L’abscisse donnée n’est pas forcément l’abscisse précise du point d’intersection mais juste un "positionnement".
    intersection_deux_courbes

Tableau de relation entre la notation RPN et la notation classique.

Nom Syntaxe notation classique
add x y add
$x+y$
sub x y sub
$x-y$
mul x y mul
$x \times y$
exp x y exp
$x^y$
div x y div
$\frac{x}{y}$
neg x neg
$-x$
sqrt x sqrt
$\sqrt{x}$
abs x abs
$\abs(x)$
cos x cos
$\cos(x)$
sin x sin
$\sin(x)$
atan x atan
$\atan(x)$
ln x ln
$\ln(x)$