\documentclass[12pt]{article}
\usepackage[height=250mm,width=183mm]{geometry}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[upright]{fourier}
\usepackage[xcas]{tablor}
\usepackage{listings,keystroke}
\usepackage{graphicx,bclogo,amssymb,amsbsy,amsfonts,amstext,amscd,amsopn,amsxtra}

% bclogo est téléchargeable ici : http://melusine.eu.org/syracuse/wiki/doku.php/mc/bclogo


\usepackage{tocloft}
%ajoute de l'espace entre le
%numero de chapitre (chap) et le titre
%dans la table des matieres

\addtolength{\cftsecnumwidth}{2em}
\addtolength{\cftsubsecnumwidth}{1em}

% pour une TdM hyperactive...
\usepackage[dvips,colorlinks=true,linkcolor=0.2white]{hyperref}

% quelques gris

\usepackage{color}
\definecolor{0.9white}{rgb}{.9,.9,.9}
\definecolor{0.8white}{rgb}{.8,.8,.8}
\definecolor{0.2white}{rgb}{.2,.2,.2}
\definecolor{0.4white}{rgb}{.4,.4,.4}
\definecolor{0.6white}{rgb}{.6,.6,.6}

% style des listings

\newcommand{\lat}{
\lstset{numbers=none,language=[LaTeX]{TeX},xleftmargin=10pt,%
keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,commentstyle=\normalfont\scriptsize\slshape,
    backgroundcolor=\color{0.8white},breaklines=true,morecomment=[l]\%}
}

\newcommand{\xcas}{\lstset{numbers=none,language=mupad,xleftmargin=10pt,%
keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,commentstyle=\normalfont\scriptsize\slshape,
    backgroundcolor=\color{0.8white},breaklines=true}
}


% petits environnements bclogo

\newenvironment{DANGER}[1]{%
\begin{bclogo}{\attention}{#1}{0.9white}{0.1}}
{\end{bclogo}}

\newenvironment{Idee}[1]{%
\begin{bclogo}{\coeur}{#1}{0.9white}{0.1}}
{\end{bclogo}}



% style des sections
\usepackage{sectsty}


\sectionfont{\LARGE \sffamily\color{0.2white}}
\subsectionfont{\sffamily\color{0.4white}}
\renewcommand\thesection{\Roman{section} -}
\renewcommand\thesubsection{\alph{subsection}. }
\subsubsectionfont{\sffamily\color{0.6white}}
\renewcommand\thesubsubsection{\roman{subsection}. }





%%%% Macros pour un Vrai-Faux

\usepackage{pifont}

\newcommand{\Q}{\mbox{\ding{114}\hspace{-.7em}\raisebox{.2ex}[1ex]{\ding{51}}}}

\newcommand{\VF}{%
	\hfill\makebox[1cm][s]{\bf V\hfill F}
	}
	
\newcommand{\Rep}[1][]{%
	\ifthenelse{\equal{#1}{v}}{%
		\hfill\makebox[1cm][s]{\Q\hfill \ding{114}}}{%
		\ifthenelse{\equal{#1}{f}}{%
			\hfill\makebox[1cm][s]{\ding{114} \hfill\Q}}{%
			\hfill\makebox[1cm][s]{\ding{114} \hfill\ding{114}}}}}


% titre

\title{\texttt{tablor.sty} \\La machine à créer des tableaux de signes et de variations }

\author{Guillaume \textsc{Connan} \\ \href{http://gconnan.free.fr}{http://gconnan.free.fr}\\
avec l'efficace participation de Jean-Michel \textsc{Boucart}\\
Forum d'aide ~:~\href{http://gconnan.free.fr/punbb/upload/index.php}{http://gconnan.free.fr/punbb/upload/index.php}}

\date{14 juin 2008 - Version 3.00}








%%
%
%  Début du document
%
%%




\begin{document}

\setlength{\parindent}{0mm}

\maketitle

\initablor

\section{Ça sert à quoi~?}

Il  s'agit d'obtenir rapidement  un tableau  de signe  ou un  tableau de  variation en  entrant un
minimum de commandes.

\section{Comment ça marche~?}

\subsection{Principe général}

On entre une instruction qu'on envoie via  \LaTeX{} à \texttt{XCAS} qui effectue un certain nombre de
calculs (résolution d'équations,  calcul de limites). \texttt{XCAS} renvoie un  résultat sous la forme
d'un script \texttt{MetaPOST} qui est compilé. Un  tableau est créé et ensuite inséré dans le document
\texttt{tex}.


\subsection{Rentrons dans les détails}

En utilisant  un environnement \texttt{tablor}, de  nombreux fichiers sont créés  dans le répertoire
courant puis effacés par la commande \texttt{nettoyer} si vous le souhaitez~:

\begin{itemize}
\item des  fichiers d'extension  \texttt{.cxx}~:~il s'agit  du fichier le  plus important.  C'est le
  programme  \texttt{XCAS} qui  «~fabrique~» le  tableau.  Vous pouvez  l'utilisez tel  quel dans  une
  session \texttt{XCAS} ou \texttt{giac}.
\item des fichiers d'extension \texttt{.giac} qui  regroupent des instructions lues et exécutées par
  \texttt{giac}.
Il est très court~:


\xcas

\begin{lstlisting}
maple_mode(0); // au cas où certains travailleraient en mode maple, mupad ou ti
read("config.cxx"); // pour configurer la 1ère colonne (signe de ou sign of etc.)
read("XcasTV.cxx"); // giac charge le programme 
read("XCasTV.user"); // giac lit les paramètres rentrés dans le source
tex et fabrique à la volée le source MetaPOST.
\end{lstlisting}

\item des  fichiers d'extension \texttt{.user} qui  sont créés par \LaTeX{}  grâce à l'environnement
  \texttt{VerbatimOut} de  l'extension \texttt{fancyvrb} : il s'agit  en fait de la  commande qui se
  trouve par exemple entre \verb+\begin{TV}+ et \verb+\end{TV}+.
 


\end{itemize}

\subsection{Code XCAS}

Toutes les procédures suivent le même principe~:

\begin{itemize}
\item la plus grande partie s'occupe de créer les lignes du tableaux à
      l'aide de nombreux tests et boucles;
\item   ensuite,   on   regroupe   ces  lignes   dans   une   variable
      \texttt{MetaLfc};

\item on exporte le tableau à l'aide des trois dernières lignes~:

\xcas

\begin{lstlisting}
sortie:=fopen("XCasmpfc.mp"); // on crée un fichier XCasmpfc.mp
fprint(sortie,Unquoted,MetaLfc); // on y met MetaLfc
fclose(sortie); // on ferme XCasmpfc.mp
\end{lstlisting}




\lat
\end{itemize}




\begin{figure}
              \begin{Idee}{Autres collaborations XCAS/\LaTeX{}}
On peut  suivre ce même  principe pour créer d'autres  associations de
vos outils préférés. Voir par exemple~:

\href{http://gconnan.free.fr/?page=53}{http://gconnan.free.fr/?page=53}

et 

\href{http://melusine.eu.org/syracuse/giac/}{http://melusine.eu.org/syracuse/giac/}
               \end{Idee}
               \end{figure}





\section{De quoi a-t-on besoin~?}

\begin{itemize}

\item Il faut avoir installé \texttt{XCAS}, logiciel multi-plateforme de calcul et de programmation~:

\href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html};

\item il faut avoir le fichier de macros \texttt{MetaPOST} 
\texttt{tableauVariation.mp} de Frédéric Mazoit~:

\href{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/}{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/};

Pour  ceux  qui  sont guère  habitués  à  \texttt{MetaPOST},  cela  ne  pose aucun  problème  car  les
scripts  et compilations  \texttt{MetaPOST}  se font  automatiquement.  Il suffit  de  créer dans  son
\texttt{texmf} personnel  une arborescence du style~:  \texttt{./texmfperso/metapost/tablor/} et d'y
placer \texttt{tableauVariation.mp} puis  un \texttt{rehash}. C'est exactement la  même démarche que
pour installer une nouvelle extension \LaTeX{}.


\item  il faut être en mode \texttt{shell-escape} pour autoriser
 les sorties de la compilation \texttt{tex}. Pour \texttt{emacs}, on rajoute en 
 fin de fichier \verb+%%% LaTeX-command: "latex --shell-escape" ***+; pour les autres éditeurs, il faut modifier
 la commande de compilation. Sinon, on peut modifier le fichier \texttt{texmf.cnf}
 pour que le mode soit automatisé en modifiant la ligne suivante~:~\texttt{shell-escape t};

\item il  faut avoir  à disposition les  extensions \texttt{fancyvrb},
      \texttt{filecontents}, \texttt{ifthen} et \texttt{ifpdf};

\item pour ceux qui compilent avec \texttt{pdf\LaTeX{}}, il n'y a aucun problème et rien à faire car \texttt{tablor}
  contient déjà ce qu'il faut pour s'adapter~:
    \verb+\ifpdf \DeclareGraphicsRule{*}{mps}{*}{} \fi+

\item il faut installer le fichier  \texttt{tablor.sty} dans son \texttt{texmf} personnel. Pour ceux
  qui ont \texttt{MiKTeX} sous \texttt{windows}, il suffit d'aller le chercher dans les dépôts. Pour les
  utilisateurs de  \texttt{Unix}, vous  devez savoir  comment faire... Par  commodité, vous  pouvez en
  profiter pour  installer la  version \texttt{Unix}  de \emph{MiKTeX package  manager}. J'ai  fait un
  petit script pour vous y aider ici :

 \href{http://gconnan.free.fr/?page=52}{http://gconnan.free.fr/?page=52}

\item    il   faut   installer    les   fichiers    de   configuration
      \texttt{tablor.cfg}   et  \texttt{entateMP.cfg}  dans   le  même
      répertoire de \texttt{tablor.sty}



\end{itemize}

\begin{figure}

              \begin{Idee}{shell-escape}
       Pour         les         utilisateurs         de        TeXnicCenter,         observez         cette
\href{http://img221.imageshack.us/img221/27/capture20080114215233hu7.png}{explication}             du
paramétrage du \texttt{shell-escape}. On peut par exemple mettre~:

\texttt{-enable-write18 --shell-escape --src -interaction=nonstopmode "\%Wm"}.

Sur TeXmaker, c'est \texttt{latex -enable-write18 --shell-escape -interaction=nonstopmode \%.tex}.

Pour faire comprendre à \texttt{Microsoft Windows XP} où trouver \texttt{giac}, vous pouvez modifier le \texttt{path} en suivant
ces instructions~: 

Demarrer->Panneau de configuration->Système onglet Avancé->Variable d'environnement. Il faut cliquer sur la ligne PATH puis sur le bouton modifier
et là il faut ajouter 

\begin{center}
  \verb+;C:\repertoire_d'installation_de_xcas+
\end{center}



(Merci à Gaëtan et à Daniel).
\end{Idee}
               
      \end{figure}         

\begin{figure}
              \begin{DANGER}{Conflit d'extensions}
              L'extension  \verb+fancybox+   rentre  en  conflit   avec  \verb+fancyvrb+  qu'utilise
              \verb+tablor+ car elles définissent toutes deux différemment l'environnement \verb+VerbatimOut+.
               \end{DANGER}
               \end{figure}



              \begin{DANGER}{Commandes créées}
 Huit nouvelles commandes sont crées~:~\verb+\tv, \tvbis, \nettoyer, \initablor, \Tableaux,+
  \verb+ \dresse, \dressetoile, \executGiacmp+.
 Attention aux conflits si de  tels noms existent quelque part dans vos
              fichiers personnels.
               \end{DANGER}
               




% \begin{figure}
%               %\begin{DANGER}
% Le fichier \texttt{tablor.sty} est codé en \texttt{latin-1}. Les utilisateurs de
% \texttt{utf-8} devront donc utiliser \texttt{tablorutf8.sty} à la place. 
%                %\end{DANGER}
%                \end{figure}

\pagebreak

\section{Comment l'utiliser~?}

\subsection{Préambule}

Les ECM donnés  en exemple ne dépendent pas du  moteur de compilation~:~\texttt{\LaTeX{}+dvi+dvips} ou
\texttt{pdf\LaTeX{}} conviennent.

Le préambule sera toujours~:

\lat

\begin{lstlisting}
\documentclass{article}
\usepackage{graphicx}
\usepackage[french]{babel} % or eunozer langouage
\usepackage[xcas]{tablor} % xcas en option : cf plus loin
\end{lstlisting}



% \begin{figure}
%               \begin{Idee}
%               Les fontes utilisées  dans les tableaux sont \verb+[upright]{fourier}+.  Il est tout à
%               fait  possible  d'utiliser   d'autres  fontes.  Il  suffit  de   modifier  le  fichier
%               \texttt{tablor.sty} en remplaçant partout où il apparaît \verb+[upright]{fourier}+ par \verb+lmodern+ ou ce
%               que vous voulez. Ce n'est pas très pratique,  mais cela évite de le mettre en option à
%               chaque utilisation et on utilise souvent la même fonte dans ses documents.
%                \end{Idee}
%                \end{figure}



\subsection{L'option xcas}\label{option}


On  met \texttt{xcas} si  l'on a installé \texttt{giac/XCAS}  sur son
    ordinateur  et on  ne  met rien  si  \texttt{giac/XCAS} n'est  pas
    installé ou (et) que l'on a récupéré un
    fichier \texttt{tex} avec  les fichiers sources \texttt{MetaPOST}; Ainsi,  \texttt{tablor} ne fera
    pas appel à \texttt{giac/XCAS} et se contentera de compiler les fichiers \texttt{MetaPOST}.


\subsection{Fichier de configuration \texttt{tablor.cfg}}

\subsubsection*{Contenu}

{\small


\begin{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Fichier de configuration de tablor.sty  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% La mise à jour de ce fichier permet d'adapter certains paramètres du package tablor.sty 
% au poste de travail et aux habitudes des utilisateurs. 


%========================================
%  I - Configuration du préambule MetaPOST
%========================================

\begin{filecontents*}{enteteMP.cfg}
input tableauVariation;
verbatimtex
%&latex
\documentclass{article}
\usepackage[upright]{fourier} % ou mathpazo, lmodern, etc. ou rien !
\usepackage{amsmath}
\renewcommand\mbox[1]{ #1 } % pour les mbox intempestifs de xcas
\renewcommand\cdot{ } % idem pour les cdot
\begin{document}
etex 
\end{filecontents*}



% =====================================
% II - Déclaration du système d'exploitation :
% =====================================

% Si vous utilisez windows, dé-commentez la ligne suivante :

% \setboolean{windows}{true}


%=================================
% III - Déclaration de l'éditeur utilisé
% ================================
% 
% Remplacez "kile" par la commande qui lance votre éditeur favori. 
% Laissez une espace avant de fermer l'accolade.

\newcommand{\editeur}{kile }




%=================================
%IV - 1ère colonne
%=================================
%
%permet de configurer les termes dans la première colonne des
%tableaux : "signe de" ou "sign of" ou "" etc.
%



\begin{VerbatimOut}{config.cxx}

// POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
// pour la ligne signe 
lsic:="
newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle ";

// POUR LES TV, TVI,TVZ,TVapp
// pour la ligne variation 
lvic:="
newLigneVariations(btex $\\hbox{  Variations de }\\atop{\\displaystyle ";

\end{VerbatimOut}



%% you may prefer

% \begin{VerbatimOut}{config.cxx}

% // FOR TV, TVI,TVZ,TVapp,TSq,TSa
% // for the signs 
% lsic:="
% newLigneSignes(btex $\\hbox{ Sign of }\\atop{\\displaystyle ";

% // POUR LES TV, TVI,TVZ,TVapp
% // for the variations 
% lvic:="
% newLigneVariations(btex $\\hbox{  Variations of }\\atop{\\displaystyle ";

%\end{VerbatimOut}



%% ou si vous préférez que ni signe ni variation n'apparaissent



% \begin{VerbatimOut}{config.cxx}

% // POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
% // pour la ligne signe 
% lsic:="
% newLigneSignes(btex ${\\displaystyle ";

% // POUR LES TV, TVI,TVZ,TVapp
% // pour la ligne variation 
% lvic:="
% newLigneVariations(btex ${\\displaystyle ";

% \end{VerbatimOut}



\end{lstlisting}
}



Vous le placerez dans la même arborescence que \texttt{tablor.sty} et le modifierez si besoin est.

\subsubsection*{Rôle}

\begin{enumerate}
\item[I] La première partie permet de configurer le préambule \texttt{tex} qui sera utilisé par
\texttt{MetaPOST}  pour   créer  les  tableaux.   La  ligne  contenant
l'extension des fontes est en particulier optionnelle~:~vous pouvez la
modifier, voire la supprimer selon vos choix de fontes;


\item[II] si vous utilisez \texttt{ Microsoft-Windows}, il faudra décommenter la
ligne spécifiée afin que les commandes \texttt{unix} soient remplacées
automatiquement par des commandes \texttt{dos};


\item[III] l'éditeur sera appelé dans certains cas pour modifier
    l'aspect des  tableaux dans les fichiers  sources \texttt{MetaPOST}. Il faudra  choisir un éditeur
  comme par exemple \texttt{emacs, xemacs, texmaker, vi, winshell, notepad, vim, kate, gedit,
      textmate,texshop}, \texttt{kile}, etc. Voir aussi le paragraphe~\ref{modif};

\item[IV] par  défaut, on voit  apparaître dans la  première colonne des  tableaux «~signe de  ~» ou
  «~variations  de ~».  Vous pouvez  modifier ces  réglages ici  comme indiqué;  deux  exemples sont
  donnés~:~en anglais ou en n'écrivant que les expressions.


\end{enumerate}


\subsection{Initialisation de \texttt{tablor} et préfixe des tableaux}\label{prefix}


Les   fichiers  \texttt{MetaPOST}   des  tableaux   sont  regroupés   dans  un   fichier   de  suffixe
\texttt{.Tab.mp}.   Le   préfixe  est   par   défaut   celui   du  fichier   \texttt{tex}   appelant
\texttt{tablor}. Il est possible, pour des raisons de classement personnel, de modifier ce préfixe à
la suite du \verb+\begin{document}+ en entrant~:

  \begin{lstlisting}
\initablor
  \end{lstlisting}

si l'on veut avoir comme préfixe le préfixe courant (obtenu par \verb+\jobname+) ou bien~:

 \begin{lstlisting}
\initablor[Waouh]
  \end{lstlisting}

si l'on veut que le fichier \texttt{MetaPOST} des tableaux s'appelle \verb+Waouh.Tab.mp+

\medskip

Si tout s'est bien passé, on doit supprimer les fichiers \texttt{log} de \texttt{MetaPOST} et clore le
fichier \texttt{.Tab.mp} en entrant juste avant \verb+\end{document}+ la commande~:

\begin{lstlisting}
  \nettoyer
\end{lstlisting}


ou bien, selon les cas~:

\begin{lstlisting}
\nettoyer[Waouh]
  \end{lstlisting}
 


\medskip

\textbf{En résumé}, notre fichier \texttt{tex} aura cette ossature~:


\begin{lstlisting}
\documentclass{article}
\usepackage{graphicx}
\usepackage[french]{babel} % or eunozer langouage
\usepackage[xcas]{tablor} % options modifiables

\begin{document}

\initablor

...

\nettoyer

\end{document}
\end{lstlisting}





\section{Tableaux des variations}

\subsection{Tableau standard}

L'environnement s'appelle \texttt{TV}. On utilise une commande au format \texttt{XCAS}~:


\xcas

\begin{lstlisting}
TV([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,\tv)
\end{lstlisting}

\begin{itemize}

\item  \texttt{[borne inf,borne  sup]}  désigne les  bornes  de l'ensemble  de  définition. On  note
  $+\infty$~:~\texttt{+infinity} et $-\infty$~:~\texttt{-infinity}. N'oubliez pas
  les crochets~!
\item \texttt{[valeurs interdites]} désigne la liste des valeurs interdites;
\item  \texttt{"nom fonction"}  désigne la  lettre représentant  la fonction  telle que  vous voulez
  qu'elle apparaisse : $f$, $g$, $\varphi$, etc.
\item \texttt{"nom variable"}~:~même  chose pour la variable, selon que vous  voulez la désigner par
  $x$, $t$, etc. N'oubliez pas les guillemets~!
\item \texttt{expression en fonction de x} désigne l'expression de la fonction. Attention~! Utilisez
  ici toujours $x$ pour désigner la variable;
\item le  paramètre \texttt{t} est à remplacer par 1 si vous voulez voir apparaître une ligne
  avec le signe de la dérivée, par 0 si vous ne voulez pas de cette ligne et par 2 si vous ne voulez
  que le signe de la dérivée.
\item on termine par \verb+\tv+, une commande permettant de numéroter les tableaux en interne.

\end{itemize}

\lat

Voyons à présent quelques exemples.

\begin{enumerate}
\item Le tableau de variation sans signe de la dérivée de la fonction $f~:~x\mapsto x^2$ sur $[-5;7]$.


On obtient~:

\begin{TV}
TV([-5,7],[],"f","x",x^2,0,\tv);
\end{TV}


après avoir entré~:

\begin{lstlisting}
\begin{TV}
TV([-5,7],[],"f","x",x^2,0,\tv)
\end{TV}
\end{lstlisting}



\item Si on veut la même fonction sur \textbf{R} avec le signe de la dérivée~:

  \begin{lstlisting}
\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,1,\tv)
\end{TV}
  \end{lstlisting}

\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,1,\tv)
\end{TV}

\item Avec la même fonction sur \textbf{R} avec uniquement le signe de la dérivée~:



  \begin{lstlisting}
\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,2,\tv)
\end{TV}
  \end{lstlisting}

\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,2,\tv)
\end{TV}




\item Voici ce que cela donne pour $g~:~t\mapsto \frac{t^2}{t^2-1}$ sur $[-10; +\infty[$~:

  \begin{lstlisting}
\begin{TV}
TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,\tv)
\end{TV}
  \end{lstlisting}

  \begin{center}
    
  
\begin{TV}
TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,\tv)
\end{TV}

\end{center}


\item Il y aura  des problèmes pour des équations $f'(x)=0$ que  \texttt{XCAS} ne saurait pas résoudre
  de  manière  formelle.   Il  faudrait  alors  utiliser  une   résolution  numérique  et  remplacer
  \texttt{resoudre} par \texttt{fsolve}.  Mais dans les études demandées au  Bac, l'étude des signes
  de la dérivée est  possible formellement. Dans les cas plus exotiques, on  peut faire le tableau «~à
  la main~».
\end{enumerate}



\subsection{Tableau de variation avec «~zone(s) interdite(s)~»}


Pour certaines fonctions, tout un (ou plusieurs) intervalle(s) est(sont) exclu(s) de l'ensemble de définition.

Par  exemple,  la  fonction  $x\mapsto  \sqrt{x^2-1}$  est  définie  sur  $]-\infty;  -1]\cup[1;
+\infty[$.

On utilise alors l'environnement \texttt{TVZ} (Z comme zone...).


\begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,\tv)
\end{TVZ}
\end{lstlisting}


\begin{center}
  \begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,\tv)
\end{TVZ}
\end{center}


\begin{figure}
              \begin{DANGER}{Listes des intervalles interdits}
              Le troisième argument est une liste  d'intervalles : la liste des «~zones interdites~»
              qui peut éventuellemnt se réduire à un seul intervalle comme dans l'exemple précédent.
               \end{DANGER}
               \end{figure}

Voici       un      exemple       comportant       plusieurs      zones       interdites~:~$x\mapsto
\ln\big((x-5)^2-1\big)+\ln\big(x^2-1\big)$


\begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,\tv)
\end{TVZ}
\end{lstlisting}



\begin{center}
  \begin{TVZ}
 TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,\tv)
\end{TVZ}
\end{center}


\subsection{Tableau des variations avec théorème des valeurs intermédiaires}

Si l'on  veut mettre en  évidence les solutions  de l'équation $f(x)=a$, on  utilise l'environnement
\texttt{TVI}.

La syntaxe est~:

\begin{lstlisting}
TVI([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,a,\tv)
\end{lstlisting}

Les paramètres sont les mêmes que pour \texttt{TV} mais on ajoute la valeur \texttt{a} bien sûr.


Par exemple, pour $f~:~x\mapsto \frac{x^2}{x^2-1}$ et l'équation $f(x)=10$ on entre~:

\begin{lstlisting}
\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,\tv)
\end{TVI}
\end{lstlisting}


et on obtient~:

\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,\tv)
\end{TVI}

Les solutions sont notées $\alpha_1$, $\alpha_2$, etc.

Si l'équation est plutôt $f(x)=-1$~:


\begin{lstlisting}
\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,\tv)
\end{TVI}
\end{lstlisting}


et on obtient~:

\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,\tv)
\end{TVI}





\subsection{Tableaux de variations avec approximation des zéros de la dérivée}

Il n'est  parfois pas possible d'obtenir  une valeur formelle des  zéros de la dérivée.  On est donc
amené à rechercher une  approximation numérique de ces zéros. Cela est  possible grâce à la commande
\texttt{fsolve} de \texttt{XCAS} utilisée à bon  escient. On appelera les environnements \texttt{TVapp} et
\texttt{TVIapp} ainsi que leurs associés étoilés.

Voyons sur un exemple.

\paragraph*{Exemple}


Soit $g$ la fonction $x\mapsto \ln(x)-x e^{2-x} $.

On étudie d'abord la fonction $x\mapsto g'(x)$~:

\begin{lstlisting}
\begin{TVIapp}
 TVIapp([0,+infinity],[0],"g'","x",diff(ln(x)-x*exp(2-x),x),1,0,\tv)
\end{TVIapp}
\end{lstlisting}


% \begin{TVIapp}
%  TVIapp([0,+infinity],[0],"g'","x",diff(ln(x)-x*exp(2-x),x),1,0,\tv)
%  \end{TVIapp}

\stepcounter{TVn}

On en déduit le tableau suivant~:


\begin{lstlisting}
\begin{TVapp*}{201}
  TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
\end{TVapp*}
\end{lstlisting}



\begin{TVapp}
TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
\end{TVapp}





\subsection{Tableaux de variations et courbes paramétrées}

On peut  obtenir le tableau de  variations correspondant à  des courbes paramétrées définies  par un
système du type~:

\[\begin{cases} x=f(t) \\ 
      y=g(t)
\end{cases}\]

La syntaxe est la suivante~:

\begin{lstlisting}
 \begin{TVP}
TVP(IE,VI,["x","y"],"t",[x(t),y(t)],a,trigo,\tv)
 \end{TVP}
\end{lstlisting}


avec  \texttt{IE}  l'intervalle d'étude,  \texttt{VI}  la liste  des  listes  de valeurs  interdites
respectives pour les deux fonctions, \texttt{a} pour  avoir un tableau complet ou partiel comme dans
les autres "TV", enfin \texttt{trigo} qui  vaut 1 si interviennent des fonctions trigonométrqiues, 0
sinon.


\begin{figure}[h]
              \begin{DANGER}{Version de XCAS}
              L'utilisation de TVP implique l'utilisation d'une version de XCAS d'une date postérieure au 14 juin
              2008 !
               \end{DANGER}
               \end{figure}


\subsubsection{Cas des fonctions trigonométriques}

Étudions par exemple sur $\left[0\ ;\ \frac{\pi}{2}\right]$


\[
\begin{cases} x(t)=\cos(3t) \\
 y(t)=\sin(4t)
\end{cases}\]

\begin{lstlisting}
  
 \begin{TVP}
 TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,1,\tv)
 \end{TVP}

\end{lstlisting}
 
 \begin{TVP}
 TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,1,\tv)
 \end{TVP}



\subsubsection{Les autres cas}



Étudions par exemple sur $]-\infty\ ;\ +\infty[$


\[
\begin{cases} 
x(t)=\frac{t^2}{(t+1)(t-2)} \\ 
y(t)=\frac{t^2(t+2)}{t+1}
\end{cases}
\]

\begin{lstlisting}
\begin{TVP}
TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,0,\tv)
\end{TVP}
\end{lstlisting}



\begin{TVP}
TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,0,\tv)
\end{TVP}



\subsection{Tableaux de signes}


\subsubsection*{Cas du produit de deux facteurs affines}

Pour étudier le signe de $(-2x+3)(-x+5)$ sur \textbf{R}, on entre~:

\begin{lstlisting}
\begin{TSa}
 TSa(-2,3,-1,5,\tv);
\end{TSa}
\end{lstlisting}


On obtient~:

\begin{TSa}
TSa(-2,3,-1,5,\tv);
\end{TSa}


\subsubsection*{Cas du produit d'un nombre quelconque de facteurs quelconques sur un intervalle quelconque}




\begin{figure}[h]
              \begin{DANGER}{Nouveauté à partir de la version 2.08}
Par souci de cohérence  avec l'environnement TSq, on doit rajouter maintenant  en premier argument le
nom de la fonction produit dans l'environnement TS.
               \end{DANGER}
               \end{figure}








Certains  cas  pathologiques  ne  vont  pas  fonctionner,  mais sinon,  pour  étudier  le  signe  de
\[(-2x+3)(x^2-1)(x^2+1)(x-1)(x^2-2)\]  on entre  cette  fois  les expressions  sous  cette forme  en
précisant l'intervalle d'étude~:

\begin{lstlisting}
\begin{TS}
 TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],\tv);
\end{TS}
\end{lstlisting}

On obtient~:


\begin{TS}
 TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],\tv);
\end{TS}



Ou bien, sur un intervalle borné~:

\begin{lstlisting}
\begin{TS}
TS("f",[x-10,x+10],[-15,10],\tv)
\end{TS}
\end{lstlisting}


\begin{TS}
TS("f",[x-10,x+10],[-15,10],\tv)
\end{TS}



\subsubsection*{Signe d'un quotient}

On entre dans deux listes différentes les facteurs du numérateur et du dénominateur~:


\begin{lstlisting}
\begin{TSq}
TSq("nom du quotient",[liste des facteurs du numérateur],[liste des facteurs du dénominateur],[inf,sup])
\end{TSq}
\end{lstlisting}

Par exemple, pour étudier le signe de $\frac{(-2x+3)(-4x+5)}{(x^2-16)(x-2)}$ sur \textbf{R}~:

\begin{lstlisting}
\begin{TSq}
TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],\tv)
\end{TSq}
\end{lstlisting}




\begin{TSq}
TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],\tv)
\end{TSq}

Sur un intervalle borné~:

\begin{lstlisting}
\begin{TSq}
TSq("Q",[x-10],[x+10],[-infinity,10],\tv)
\end{TSq}
\end{lstlisting}


\begin{TSq}
TSq("Q",[x-10],[x+10],[-infinity,10],\tv)
\end{TSq}




\subsubsection*{Signe d'une seule expression}


On  utilise  l'environnement   \texttt{TSc}  comme  \emph{Tableau  de  Signe   court}  en  précisant
l'expression étudiée et l'intervalle considéré~:

\begin{lstlisting}
\begin{TSc}
TSc((x-10)*(x+5),[-10,10],\tv)
\end{TSc}
\end{lstlisting}



\begin{TSc}
TSc((x-10)*(x+5),[-10,10],\tv)
\end{TSc}








\section{Comment modifier les tableaux à partir des fichiers MetaPOST~?}\label{modif}


\subsection{Tableau par tableau}

Il est impossible  de prévoir toutes les  requêtes des différents utilisateurs. Le  style du tableau
produit peut  néanmoins vous  déplaire. Vous pouvez  le modifier  en intervenant directement  sur le
fichier \texttt{MetaPOST}  créé pour  chaque tableau. Pour  cela, il  suffit d'ajouter une  étoile au  nom de
l'environnement utilisé  et de donner  un numéro à  votre nouvelle figure  pour qu'elle ne  soit pas
écrasée par les compilations suivantes. Numérotez à partir de 100 par exemple.

Si vous tapez~:

\begin{lstlisting}
\begin{TV*}{100}
    TV([-1,+infinity],[],"f","x",x-ln(x+1),1,\tv)
\end{TV*}
\end{lstlisting}

l'éditeur que vous avez mis en option (voir le paragraphe~\ref{option}) est directement lancé et le fichier
\texttt{MetaPOST} correspondant à votre tableau qui portera le numéro 100
est affiché. Vous  pouvez alors le modifier,  taper sur \Ctrl + \keystroke{S}  pour l'enregistrer et
\Ctrl +  \keystroke{Q} pour fermer l'éditeur\footnote{Ces  combinaisons de touches  correspondent à la
  plupart des éditeurs mais ne sont pas universelles : vérifiez pour celui que vous avez choisi.}. La compilation s'achève alors automatiquement comme
pour un environnement non étoilé.





Par exemple, je tape~:

\begin{lstlisting}
\begin{TS*}{100}
    TS("F",[3*x+2,5*x^2-1],[-50,50],\tv)
\end{TS*}
\end{lstlisting}


et apparaît une fenêtre de l'éditeur (ici \TeX maker) avec le fichier correspondant au tableau. Je le modifie à
volonté~:

\begin{center}
  \includegraphics[height=9cm]{capture.eps}
\end{center}


Je  tape  sur  \Ctrl  +  \keystroke{S}   puis  \Ctrl  +  \keystroke{Q}  et  la  compilation  reprend
automatiquement pour m'afficher le tableau voulu~:


\begin{center}
  \begin{TS*}{105}
    TS("F",[3*x+2,5*x^2-1],[-50,50],\tv)
  \end{TS*}
\end{center}



Une fois  la modification faite, on  ne vous redemandera  pas d'effectuer de modifications,  sauf si
vous changez le numéro de la figure.

\subsection{Traitement global dans un unique fichier MetaPOST}\label{global}

Un fichier \texttt{préfixe.Tab.mp} est  créé où sont copiés les sources de  chaque tableau. Vous pouvez
ainsi retravailler globalement sur les tableaux si  besoin ou les transmettre à une personne n'ayant
pas installé \texttt{XCAS}. Voir le paragraphe~\ref{prefix} pour plus de détails.


\section{Merci...}

\begin{itemize}

\item à \href{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/}{Frédéric \textsc{Mazoit}} pour son fichier \texttt{tableauVariation.mp};

\item à \href{http://www.yvesdelhaye.be/?Generateur-d-interrogations-le}{Yves \textsc{Delhaye}} pour ses idées sur le \texttt{shell-escape}

\item          à         \href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{Bernard
    \textsc{Parisse}} pour \texttt{XCAS};

\item à Jean-Michel \textsc{Boucart}  pour ses précieuses et efficaces
      améliorations de la partie \LaTeX{} du code.


\end{itemize}


\section{Erreurs habituelles}


Avez-vous rendu possible le \texttt{shell-escape}~? Avez-vous installé
toutes les extensions listées en début de ce document~? Est-ce que \texttt{XCAS}
 est dans votre \texttt{PATH}~?

La première chose est d'analyser le fichier \texttt{log}.

En cas de problème, n'hésitez  pas à me contacter à l'adresse indiquée
sur mon site en joignant  le fichier \texttt{log}.



\section{\texttt{Tablor} et Emacs}

Pour les heureux  utilisateurs de tempo, voici  quelques lignes pour faciliter votre  vie à rajouter
dans un fichier \texttt{latex-tempo}: 

\begin{lstlisting}
;;
;;            TABLOR
;;;
;cas tableau de variation
      ("TV" (& > "\\begin{center}"n>
                 "\\begin{TV}" n>
"TV(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                 "["(p "liste de valeurs interdites (,) :")"],"
                 "\""(p "nom de la fonction :")"\","
                 "\""(p "nom de la variable :")"\","
                 ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                 "\\tv)" n>
               "\\end{TV}" n>
               "\\end{center}" > % ))
      ;cas TVI
      ("TVI" (& > "\\begin{center}"n>
                  "\\begin{TVI}" n>
"TVI(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                  "["(p "liste de valeurs interdites (,) :")"],"
                  "\""(p "nom de la fonction :")"\","
                  "\""(p "nom de la variable :")"\","
                  ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                  ""(p "f(x)=l pour la valeur l :")","
                  "\\tv)" n>
                  "\\end{TVI}" n>
                  "\\end{center}" > % ))
      ;cas signe produit
      ("TS" (& > "\\begin{center}"n>
                  "\\begin{TS}" n>
                  "TS(\""(p "nom du produit :")"\","
                 "["(p "liste des facteurs (,) :")"],"
        "["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"        
                  "\\tv)" n>
                  "\\end{TS}" n>
                  "\\end{center}" > % ))
      ;cas signe quotient
      ("TSq" (& > "\\begin{center}"n>
                  "\\begin{TSq}" n>
                  "TSq(\""(p "nom du quotient :")"\","
                  "["(p "liste des facteurs du numerateur (,) :")"],"
                  "["(p "liste des facteurs du denominateur (,) :")"],"
        "["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                  "\\tv)" n>    
                  "\\end{TSq}" n>
                  "\\end{center}" > % ))
;cas TVP
      ("TVP" (& > "\\begin{center}"n>
                  "\\begin{TVI}" n>
"TVP(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                  "[["(p "liste de valeurs interdites de x(t)(,) :")"],"
                   "["(p "liste de valeurs interdites de y(t)(,) :")"]],"
                  "[\""(p "nom de la fonction x :")"\","
                   "\""(p "nom de la fonction y :")"\"],"
                  "\""(p "nom de la variable :")"\","
                  "["(p "expression de la fonction x (utiliser t) :")","
                  ""(p "expression de la fonction y (utiliser t) :")"],"
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                  ""(p "1 si fonctions trigo, 0 sinon :")","
                  "\\tv)" n>
                  "\\end{TVP}" n>
                  "\\end{center}" > % ))

       ;cas tableau de variation avec zone interdite
      ("TVZ" (& > "\\begin{center}"n>
                 "\\begin{TV}" n>
"TVZ(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                 "["(p "liste de valeurs interdites (,) :")"],"
                  "["(p "liste des zones interdites ([,],[,]) :")"],"
                 "\""(p "nom de la fonction :")"\","
                 "\""(p "nom de la variable :")"\","
                 ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                 "\\tv)" n>
               "\\end{TV}" n>
               "\\end{center}" > % ))
\end{lstlisting}

Merci à \href{http://phil.pham.free.fr/}{Phil Pham}.


\section{Galerie}

Voici quelques exemples de tableaux~:

\begin{lstlisting}
\begin{TVI}
TVI([-1,+infinity],[-1],"f","x",x^2/sqrt(x+1)-1,1,2,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-1,+infinity],[-1],"f","x",x^2/sqrt(x+1)-1,1,2,\tv)
\end{TVI}


\begin{lstlisting}
\begin{TVI}
TVI([-1/2,+infinity],[],"f","x",x^2,1,2,\tv)
\end{TVI}
\end{lstlisting}


\begin{TVI}
TVI([-1/2,+infinity],[],"f","x",x^2,1,2,\tv)
\end{TVI}


\begin{lstlisting}
\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x),1,2,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x),1,2,\tv)
\end{TVI}

\stepcounter{TVn}

\begin{lstlisting}
\begin{TV}
TV([1,+infinity],[],"f","x",-ln(x),1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([1,+infinity],[],"f","x",-ln(x),1,\tv)
\end{TV}



\begin{lstlisting}
\begin{TVI}
TVI([-pi,pi],[],"f","x",cos(x),1,1/2,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-pi,pi],[],"f","x",cos(x),1,1/2,\tv)
\end{TVI}

\begin{lstlisting}
\begin{TV}
TV([0,2*pi],[],"f","x",cos(x),1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([0,2*Pi],[],"f","x",cos(x),1,\tv)
\end{TV}


\begin{figure}
              \begin{DANGER}{Fonctions périodiques}
              Il y  aura des  problèmes si vous  demandez un  tableau des variations  d'une fonction
              périodique sur un intervalle
              d'amplitude supérieure à la période, mais est-ce vraiment utile ?...
               \end{DANGER}
               \end{figure}



\begin{lstlisting}
\begin{TVI}
TVI([0,pi],[pi/2],"h","t",tan(x),1,7,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([0,pi],[pi/2],"h","t",tan(x),1,7,\tv)
\end{TVI}



\begin{lstlisting}
\begin{TVI}
TVI([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,\tv)
\end{TVI}

\begin{lstlisting}
\begin{TV}
TV([-1,+infinity],[-1],"f","x",ln(1+x)-(x-x^2/2+x^3/3),1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([-1,+infinity],[-1],"f","x",ln(1+x)-(x-x^2/2+x^3/3),1,\tv)
\end{TV}


\begin{lstlisting}
\begin{TS}
TS("G",[-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],\tv);
\end{TS}
\end{lstlisting}

\begin{TS}
TS("G",[-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],\tv);
\end{TS}

\begin{lstlisting}
\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",(x+2)*exp(x-1)-1,1,0,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",(x+2)*exp(x-1)-1,1,0,\tv)
\end{TVI}




\begin{lstlisting}
\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,\tv)
\end{TVI}

\stepcounter{TVn}


\begin{lstlisting}
\begin{TV}
TV([0,+infinity],[],"f","x",ln(exp(x)+x)-x,1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([0,+infinity],[],"f","x",ln(exp(x)+x)-x,1,\tv)
\end{TV}





\begin{lstlisting}
\begin{TVI}
TVI([0,pi],[],"f","x",cos(x)-x,1,0,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([0,pi],[],"f","x",cos(x)-x,1,0,\tv)
\end{TVI}

\begin{lstlisting}
\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,\tv)
\end{TVI}
\end{lstlisting}



\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,\tv)
\end{TVI}



\begin{lstlisting}
\begin{TSc}
TSc((x-10)*(x+10),[-10,10],\tv)
\end{TSc}
\end{lstlisting}



\begin{TSc}
TSc((x-10)*(x+10),[-10,10],\tv)
\end{TSc}


\begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,\tv)
\end{TVZ}
\end{lstlisting}

 \begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,\tv)
  \end{TVZ}
   
  \begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",ln(x^2-1),1,\tv)
\end{TVZ}
  \end{lstlisting}

 \begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",ln(x^2-1),1,\tv)
  \end{TVZ}



  \begin{lstlisting}
\begin{TVP}
TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,1,\tv)
\end{TVP}
  \end{lstlisting}



\begin{TVP}
TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,1,\tv)
\end{TVP}


\begin{lstlisting}
\begin{TVP}
TVP([0,2*pi],[[],[]],["x","y"],"t",[t-2*sin(t),-1+2*cos(t)],1,1,\tv)
\end{TVP}
\end{lstlisting}


\begin{TVP}
TVP([0,2*pi],[[],[]],["x","y"],"t",[t-2*sin(t),-1+2*cos(t)],1,1,\tv)
\end{TVP}


\begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,\tv)
\end{TVZ}
\end{lstlisting}



\begin{center}
  \begin{TVZ}
 TVZ([-infinity,+infinity],[],[[-1,1],[4,6]],"f","x",sqrt((x-5)^2-1)+sqrt(x^2-1),1,\tv)
\end{TVZ}
\end{center}

\lat

\begin{lstlisting}
\begin{enumerate}
\item 

 Selon le tableau de variation de la fonction $f$
    ci-dessous, on peut affirmer que \ldots
     
\begin{TV}
        TV([-5,10],[],"f","x",(5/2)*x^2-2*x+12,0,\tv)
\end{TV}

\VF
\begin{itemize}

    \item[\ldots] 5 n'a pas d'antécédent \Rep
    \item[\ldots] 5 n'a pas d'image \Rep
    \item[\ldots] 5 a deux antécédents \Rep
    \item[\ldots] 5 a une image supérieure à celle de $\sqrt{2}$\Rep
  
\end{itemize}



\item Soit $f$ la fonction définie par $f~:~x\mapsto 3x^3-5x^2+2x-7$.  Les tableaux suivants peuvent
  correspondre à $f$~:

\VF

  \begin{enumerate}


 \item Tableau 1 \Rep

\begin{TV}
        TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,\tv)
\end{TV}

\item Tableau 2 \Rep

\begin{TV}
        TV([-20,20],[],"f","x",-3*x^3+5*x^2-2*x+7,0,\tv)
\end{TV}

\item Tableau 3 \Rep

\begin{TSc}
        TSc(-3*x^3+5*x^2-2*x+7,[-20,20],\tv)
\end{TSc}


\item Tableau 4 \Rep

\begin{TSc}
        TSc(3*x^3-5*x^2+2*x-7,[-20,20],\tv)
\end{TSc}


\end{enumerate}

\end{enumerate}

\end{lstlisting}





\begin{enumerate}
\item 

 Selon le tableau de variation de la fonction $f$
    ci-dessous, on peut affirmer que \ldots
     
\begin{TV}
        TV([-5,10],[],"f","x",(5/2)*x^2-2*x+12,0,\tv)
\end{TV}

\VF
\begin{itemize}

    \item[\ldots] 5 n'a pas d'antécédent \Rep
    \item[\ldots] 5 n'a pas d'image \Rep
    \item[\ldots] 5 a deux antécédents \Rep
    \item[\ldots] 5 a une image supérieure à celle de $\sqrt{2}$\Rep
  
\end{itemize}



\item Soit $f$ la fonction définie par $f~:~x\mapsto 3x^3-5x^2+2x-7$.  Les tableaux suivants peuvent-ils
  correspondre à la fonction $f$~:

\VF

  \begin{enumerate}


 \item Tableau 1 \Rep


\begin{TV}
        TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,\tv)
\end{TV}

\item Tableau 2 \Rep

\begin{TV}
        TV([-20,20],[],"f","x",-3*x^3+5*x^2-2*x+7,0,\tv)
\end{TV}

\item Tableau 3 \Rep

\begin{TSc}
        TSc(-3*x^3+5*x^2-2*x+7,[-20,20],\tv)
\end{TSc}


\item Tableau 4 \Rep

\begin{TSc}
        TSc(3*x^3-5*x^2+2*x-7,[-20,20],\tv)
\end{TSc}


\end{enumerate}

\end{enumerate}



\begin{lstlisting}
On considère la fonction $f$ définie sur \textbf{R} par $f(x)=\frac{1}{2}\bigl(x+(1-x){\rm e}^{2x}\bigr)$

Étudions sa dérivée~:


\begin{TVIapp}
 TVIapp([-infinity,+infinity],[],"f'","x",diff(1/2*(x+(1-x)*exp(2*x)),x),1,0,\tv)
 \end{TVIapp}

On en déduit le tableau de variation de $f$


\begin{TVapp}
 TVapp([-infinity,+infinity],[],"f","x",1/2*(x+(1-x)*exp(2*x)),1,\tv)
 \end{TVapp}
\end{lstlisting}

On considère la fonction $f$ définie sur \textbf{R} par $f(x)=\frac{1}{2}\bigl(x+(1-x){\rm e}^{2x}\bigr)$

Étudions sa dérivée~:


\begin{TVIapp}
 TVIapp([-infinity,+infinity],[],"f'","x",diff(1/2*(x+(1-x)*exp(2*x)),x),1,0,\tv)
 \end{TVIapp}

On en déduit le tableau de variation de $f$


\begin{TVapp}
 TVapp([-infinity,+infinity],[],"f","x",1/2*(x+(1-x)*exp(2*x)),1,\tv)
 \end{TVapp}




\pagebreak

\tableofcontents

\nettoyer



%\bouger{/home/moi/Desktop/}

\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
