Vous êtes ici : Accueil > Informatique > LaTeX > Générateur d’interrogations > le retour de la vengeance du générateur d’interrogation
Publié : 14 mai 2010

le retour de la vengeance du générateur d’interrogation

Ça va devenir dur pour les titres suivants !

Voici deux exemples de réalisations de documents "pédagogiques" réalisés avec Sagetex :

Une interrogation sur la gravitation universelle et une étude de fonction.

L’étude de fonction n’est pas complètement terminée. Je la publie pour satisfaire la curiosité d’un ami.

L’installation de sagetex est brièvement décrite ici.


L’ interrogation sur la gravitation universelle

Je n’emploie pas sage dans toute l’interrogation (la masse de la Terre [1] ne change pas énormément d’une interro à une autre !), mais uniquement là où les calculs peuvent changer d’une interro à une autre. L’emploi conjoint du "package" answer permet d’inclure un correctif ! ATTENTION : J’utilise un package LaTeX personnel à télécharger ici et qui contient un petit bug [2] !

  • Le code source :
    LaTeX - 4.8 ko
  • le pdf produit :
    PDF - 134.1 ko
%%
%% Interro Grav Univ
%%

\documentclass[a4paper,12pt]{article}
\usepackage[francais]{babel}

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
% OR
% \usepackage[latin1]{inputenc}
\usepackage{sagetex}

\usepackage{YvCtrl}
% \usepackage{graphicx}

\begin{document}
% \thispagestyle{empty}
\OuvSol{}
\CtrlTitre%
{M Delhaye}        %nom prof : defaut 'M Delhaye' supprimez le premier signe ''%'' et remplacez par votre nom OU modifiez le fichier .YvCtrl.sty
{Physique}                %branche
{2-01-2010}                %date
{Ch.4: Gravitation Universelle}        %Chap
{5%
GT %
% TT %
ABC %
% E %
% F %
}                %classe
{C.S.}                %ss titre
{50}                        %total pts
%%

\CtrlWarning

% Gravitation Universelle
%
% interrogation  (.../50)

\section{Théorie (.../20) :}
 \begin{enumerate}
   \item (.../5) Énoncez (mathématiquement) la loi de la gravitation universelle.
   \begin{sol}\alaligne{}
    \(F = G . \frac{m_1 . m_2}{R^2}\) (.../4)
     \begin{itemize}
      \item F = (.../1)
      \item  \( G = 6,67 . 10 ^{11}\) (.../3)
      \item \(m_1\) = (.../1)
      \item R = (.../1)
     \end{itemize}
   \end{sol}

   \item (.../10) Nous avons vu que Newton avait d'abord formulé 2 lois sur la gravitation.
            \begin{enumerate}
            \item (.../2) Énoncez ces lois (mathématiquement).
              \begin{sol}\alaligne{}
               
              \end{sol}
            \item (.../8) Comment ``K'' est il lié à une autre loi vue précèdement? (Démontrez)
              \begin{sol}\alaligne{}
               
              \end{sol}
            \end{enumerate}
   \item (.../5) Expliquez pourquoi la lune ne tombe pas sur la Terre.
   \begin{sol}\alaligne{}
   
   \end{sol}
 \end{enumerate}


\section{(.../30) Exercices:}
 \begin{enumerate}
 \item (.../5)
\begin{sagesilent}
mS = 70
mA = 60
dAS = 2
G = 6.67*10^(-11)
\end{sagesilent}
  Calculez la force d'attraction entre 2 élèves de la classe: Serge a une masse de \sage{mS} Kg et Alice une masse de \sage{mA} Kg. la distance séparant leur places est de \sage{dAS} m.
 \begin{sol}\alaligne{}
  $F_{grav} = G \frac{m_1 . m_2}{R^2}$\\
  $F_{grav} = \sage{RDF(G)}(N.m^2/kg^2) \frac{\sage{mS} Kg \cdot \sage{mA} Kg }{(\sage{dAS} m)^2}$\\
  $F_{grav} =  \frac{6,67 \cdot 7 \cdot 6 }{4} . 10^{-9} N$\\
  $F_{grav} =  \sage{RDF(G*(mS*mA)/dAS^2)} N$\\
  $F_{grav} =  7,0035 . 10^{-8} N$
 \end{sol}

 \item (.../10)
\begin{sagesilent}
coeff12= 4
d12 = 200
F12 = 6.67 * 10^(-5)
\end{sagesilent}
% G = 6.67*10^(-11)
  Quelles sont les masses respectives de 2 masses, sachant que la première masse vaut \sage{coeff12} fois la deuxième, que la force les attirant est de $\sage{RDF(F12)}$ N et que la distance les séparant est de $\sage{RDF(d12/1000.0)}$ km.
 \begin{sol}\alaligne{}
  $F_{grav} = G \frac{m_1 . m_2}{R^2}$\\
  $F_{grav} = G \frac{4.  m_2^2}{R^2}$\\
  $ m_2^2 = \frac{F_{grav} . R^2}{4 . G}$\\
  $ m_2 = \sqrt{\frac{F_{grav} . R^2}{4 . G}}$\\
%    $ m_2 = \sqrt{\frac{F_{grav} . R^2}{\sage{4*G}}}$\\
  $ m_2 = \sqrt{\frac{6,67 . 10^{-5}(N) . (200(m))^2}{4 . 6,67 . 10^{-11}(N.m^2/kg^2}}$\\
  $ m_2 = \sqrt{\frac{6,67 . 10^{-5} . 4.10^4 (N.m^2)}{4 . 6,67 . 10^{-11}(N.m^2/kg^2}}$\\
  $ m_2 = \sage{RDF(sqrt(F12*d12^2/(4*G)))}\ Kg$\\
  $ m_2 = 10^{5} (kg)$\\
  $ m_1 = 4.10^{5} (kg)$
 \end{sol}
 \item \sstot{15} Calculez la masse de la Terre à partir de la loi de la gravitation universelle et du mouvement orbital de la lune. (càd. selon la même méthode avec laquelle nous avons ``pesé'' le soleil.)
 \begin{sol}\alaligne{}
   \underline{\textbf{Lune}}
     \begin{itemize}
          \item \underline{Données}:
          \begin{itemize}
              \item $R \simeq 300\ 000 \ (km) = 9\,.\,10^{8} (m)$
              \item $T = 29 j = 29 \,.\, 24 \,.\, 3600 (s) =2,5056.10^{6} (s)$
          \end{itemize}
          \item \underline{Inconnues}:
          $ \omega,\ v,\ a$
          \item \underline{Formules}:
          \begin{itemize}
              \item $ \omega = \frac{2\pi}{T} $ (rad/s)
              \item $ v = \omega . R $ (m/s)
              \item $ a = \omega^2 . R $ (m/s)
          \end{itemize}
          \item \underline{Solution}:
              \begin{enumerate}
                \item $ \omega = \frac{2\pi}{T} = \frac{2\pi}{2,5056.10^{6}\ (s)} \simeq 2,5.10^{-6} (rad/s)$
                \item $ v = \omega . R  = 2,5.10^{-6}(rad/s)\ .\ 9.10^{8}  (m) \simeq 2,25.10^{3} (m/s) $
                \item $ a = \omega^2 . R = 6,25.10^{-12} (rad^2/s^2) .\ 3.10^{8} (m) \simeq 1,875.10^{-3} (m/s^2)$
                \item .        $F_{centripete} = F_{grav} $\\
                    $m_{Lune} . a_{centripete} = G \frac{m_{Lune} . m_{Terre}}{R^2}$\\
                    $a_{centripete} = G \frac{m_{Terre}}{R^2}$\\
                    $m_{Terre}  = a_{centr.} \frac{R^2}{G}$\\
                    $m_{Terre}  = \omega^2 . R . \frac{R^2}{G}$\\
                    $m_{Terre}  = \omega^2 . R^3 . \frac{1}{G}$\\
                    $m_{Terre}  = (\frac{2\pi}{T})^2 . R^3 . \frac{1}{G}$\\
                    $m_{Terre}  = (\frac{2\pi}{2,5056.10^{6} (s)})^2 . (3.10^{8} (m))^3 . \frac{1}{G}$\\
                    $m_{Terre}  = \frac{4.\pi^2.(9,5.10^{6} (m))^3}{G.{(2,5056.10^{6} (s))^2}}$\\
                    $m_{Terre}  \simeq 2,5\ .\ 10^{24} kg$ \\
%La masse calculée ici n'est pas exacte mais j'en discute en classe!
              \end{enumerate}
     \end{itemize}
 \end{sol}
 \end{enumerate}

\IciSol{}

\end{document}

L’étude de fonction

est un vieux travail qui m’avait déjà servi de brouillon. L’usage de sagetex est beaucoup plus intense ! La génération de graphiques tikz se fait via une fonction python !

  • le code source :
    LaTeX - 23.6 ko
  • le pdf :
    PDF - 226.6 ko
\documentclass[a4paper,12pt]{article}
% Ce travail est couvert par la licence ``Creative common''
% voir http://creativecommons.org/licenses/by-nc-sa/2.0/fr/deed.fr
% pour plus de précisions.
%
% En gros, celà  signifie que l'utiliation commerciale e ce travail n'est pas autorisée sans mon autorisation explicite.
% Néanmoins, vous etes libre d'utiliser ce travail, de le modifier.
% Je vous demande d'etre assez aimable pour citer mon nom comme initiateur.
% (Ce que la licence vous contraint de faire d'ailleurs!)
%
%YvD 3/7/2007 needs ``shell_escape = t`` in texmf.cnf or to be run with the option '' --shell-escape`` to enable tikz to call gnuplot.
% Otherwise, run latex (or pdflatex) once, run gnuplot on the *.gnuplot files and run latex (or pdflatex) one more time.
% Ver 2 sagetex pour symboles et formules diverses
% ver 2b plus graphiques tikx via fct python
\usepackage[francais]{babel}
%
\usepackage[babel=true,kerning=true]{microtype}%pour eviter le clash entre babel et tikz
%
%\usepackage[latin1]{inputenc}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
%
\usepackage{ifthen}
%\usepackage{html}
\usepackage{geometry}% redefinir la geometrie de la page: bords etc
% Format A4
\geometry{a4paper,twoside,left=1.8cm,right=1.8cm,marginparwidth=1.2cm,%
 marginparsep=3mm,top=2cm,bottom=2cm}
\setlength{\parindent}{8mm}
\setlength{\parskip}{4pt plus2pt minus1pt}
%
\usepackage{amsmath}
\usepackage{tikz}

% \usepackage{fourier}
% \usepackage{cmbright}
% \usepackage[math]{kurier}
\usepackage[math]{anttor}%TRES BEAU
% \usepackage{kerkis}
% \usepackage{fouriernc}%PAS MAL! Tres lisible
% \usepackage{mathpazo}
% \usepackage{mathpple}

\usepackage[T1]{fontenc}
%
% \usepackage{antpolt}
% \usepackage[QX]{fontenc}

\usepackage{hyperref}
\hypersetup{colorlinks,
          citecolor=black,
          filecolor=black,
          linkcolor=blue,
          urlcolor=black
%            ,
%            pdftex
          }

%??  \usepackage{tkz-plot2d}
\usepackage{sagetex}
%
%
\usepackage{amsmath}        % Amercan Math Society pour des Maths TRES Jolies
\usepackage{amsfonts}        % police de caractere associee a amsmath
\usepackage{amssymb}        % police de caractere associee a amsmath : \nexists etc
% \usepackage{amsmath, amsthm, amssymb}
% \usepackage{thmbox}
\usepackage{shadethm}
\usepackage{amsthm}        %
% \usepackage{framed}
% \usepackage{ntheorem}
% [options]
%
\newcommand\R{{\mathbb R}} % les reels
\newcommand\Q{{\mathbb Q}} % les rationnels
\newcommand\Z{{\mathbb Z}} % les entiers relatifs
\newcommand\D{{\mathbb D}} % les decimaux
\newcommand\N{{\mathbb N}} % les entiers naturels
\newcommand\C{{\mathbb C}} % les complexes
\newcommand\cc{{\mathcal C}} % pour les courbes

%opening
\title{Etudes de fonctions: procédures et exemple}
\author{Yves Delhaye}

\begin{document}

\maketitle

\begin{abstract}
\setlength{\parindent}{0mm}
\noindent{Dans ce court travail, nous présentons les différentes étapes d'une étude de fonction à  travers un exemple.%\\

Nous nous limitons à  des fonctions réelles d'une variable réelle.

Et même strictement à  un quotient de polynômes.%\\

Nous essayons de présenter chacune des étapes non seulement du point de vue mathématique strict (cà d. ``faire les opérations rigoureusement'') mais aussi du point de vue du ``sens mathématique'' (``pourquoi faire ceci à  ce moment précis'').%\\

Le texte est encore un mélange de notes de cours destinées aux élèves et de notes plus personnelle du type ``notes dans les marges à  destination des enseignants''.%\\

Ceci sert aussi de préparation pour un ``générateur d'interrogation'' destiné aux études de fonctions.

Nous utilisons deux ``packages'' (ou librairies) spécialisés l'un pour les sorties graphiques (\verb+pgf/tikz+), l'autre (\verb+sagetex+) qui fait appel à un ``méta-programme'' de calcul formel (\verb+sage+) pour le maximum de calcul (racines, ordonnées, limites, asymptotes, derivées, tangentes, ...). Nous faisons aussi appel à  \verb+sage+ pour générer le graphique et les différents tableaux en utilisant le fait que  \verb+sage+.est écrit en \verb+python+ et que nous pouvons programmer en \verb+python+ dans les blocs de calcul formel de  \verb+sage+.%\\


Il s'agit d'un ``bac à  sable'' pour de futurs projets donc!%\\

La table des matières est ``cliquable``.
}
\end{abstract}
\setlength{\parindent}{8mm}

\tableofcontents
\newpage
\section{Introduction}
        Les fonctions sont présentes partout:
        \begin{list}{}{}
        \item En sciences, si nous étudions l'évolution d'une réaction chimique, les forces électriques entre des corps chargés, les liaisons chimiques, la croissance de plantes ou de population de bactéries.
        \item En économie, lorsque nous devons nous pencher sur l'évolution d'un marché ou la rentabilité d'une société.
        \item En mathématique, leur étude nous prépare à  d'autres surprises.
        \end{list}
       
        Réaliser une étude de fonction rigoureusement est la clé de la compréhension de phénomènes qui sont, autrement, incompréhensibles.
       
        Nous allons, à  titre d'exemple prendre une fonction et l'étudier complètement.
 
        \subsection{Plan}
                Il faut tout d'abord avoir un plan des différentes étapes à  réaliser.
                Ces étapes ne sont pas indépendantes et s'enchaînent logiquement.
                Dans l'introduction de chaque étape, nous discuterons d'ailleurs du pourquoi de ``cette étape maintenant''.
                Nous repasserons sur chacune de ces étapes en fin de travail pour nous rappeler la raison de leur enchaînement.
               
                \begin{list}{}{}
                 \item Périodicité
                 \item Zéros
                 \item Domaine
                 \item Limites
                 \item Etude du signe
                 \item Asymptotes
                 \item Dérivées
                 \item Tableau de variation
                 \item Valeurs pour quelques points
                 \item Tangentes
                 \item Graphique
                \end{list}

       
\section{La fonction}
Il y a différents types de fonctions:
                \begin{list}{}{}
                 \item les puissances,
                 \item les polynômes,
                 \item les fonctions trigonométriques,
                 \item les fonctions exponentielles,
                 \item et toutes les combinaisons possibles des précédentes...
%                                  \begin{list}{}{}
%                                   \item sommes,
%                                   \item produits,
%                                   \item puissances,
%                                   \item compositions...
%                                  \end{list}
                \end{list}
        \subsection{Choix de fonction}
\begin{sagesilent}
g0 = x^4 + 5*x^3 + 2*x^2 -20*x -24
h0 = x^3 + 8*x^2 + 21*x +18
f0 = g0/h0
\end{sagesilent}
                Choisissons une première fonction\footnote{Nous nous limiterons dans les faits à une version légement simplifiée ($ f(x) $) de cette fonction.}:
                        \[
                        l: \R \rightarrow \R: x \rightarrow \sage{f0}
                        \]
                        Ce qui signifie que
                        \[
                        l(x) = \sage{f0}
                        \]
                       
                Il s'agit donc d'un rapport de 2 polynômes.
               
       
        \subsection{Numérateur et dénominateur}
                La fonction $l(x)$ peut donc s'écrire comme le rapport de deux fonctions $i(x)$ et $j(x)$:
                        \[
                        l(x) = \frac{i(x)}{j(x)}
                        \]
                        o\`u
                        \[
                        g: R \rightarrow R: x \rightarrow  \sage{g0}
                        \]
                        et o\`u
                        \[
                        h: R \rightarrow R, x \rightarrow  \sage{h0}
                        \]

        \subsection{Factorisations}

                Commençons par factoriser numérateur et dénominateur.
                Ceci afin, éventuellement, de simplifier l'écriture.
               
                Nous préparons, ce faisant, deux points suivants: la recherche des zéros et l'étude du domaine de la fonction.

                Cherchons des valeurs de x pour lequelles $i(x)$ et $j(x)$ s'annulent.
               
                 Nous avons choisi des fonctions ``gentilles''. Essayons donc quelques valeurs entières (-3, -2, ..., 3) pour les x de $i(x)$ et $j(x)$.
                 
\begin{sagesilent}
g0roots=solve(g0 == 0,x)
h0roots=solve(h0 == 0,x)
\end{sagesilent}

                $i(x)$ s'annule pour les valeurs suivantes de x: $\sage{g0roots} $
                $i(x)$ est un polynôme de puissance quatre et peut donc s'écrire comme le produit des quatre monômes suivants:
                \[
                 i(x) = (x+3)\* (x+2)\* (x-2)\* (x-a)
                \]
                Il nous manque encore $a$.
               
                Développons donc $i(x)$ en polynômes.
                \[
                \begin{array}{ll}
                  i(x) &= x^{4}+5\* x^{3}+2\* x^{2}-20\* x -24\\
                   &= x^{4}+3\* x^{3} -a\* x^{3}-3\* a\* x^{2}-4\* x^{2}+4\* a\* x-12\* x +12\* a\\
                   &= x^{4}+(3-a)\* x^{3}-(3\* a +4)\* x^{2}+(4\* a-12)\* x +12\* a
                \end{array}
                \]
               
                Nous voyons immédiatement que $a = -2$.
%                 Remarquons ici que $a$ n'existe pas toujours dans les réels.



                $i(x)$ peut donc s'écrire:
%                 \[
%                  i(x) = (x-2)\* (x+2)^{2}\* (x+3)
%                 \]
                \[
                 i(x) = \sage{g0.factor()}
                \]
               
                $j(x)$ s'annule pour les valeurs suivantes de x: $\sage{h0roots} $.
                et, si nous faisons le même type de raisonnement que pour $i(x)$, $j(x)$ s'écrira
%                 \[
%                  j(x) = (x+2)\* (x+3)^{2}
%                 \]
                \[
                 j(x) = \sage{h0.factor()}
                \]

                $l(x)$ est alors équivalente à:% la fonction $f(x) $
                \[
%                  l(x) = \sage{g0.factor()/h0.factor()}
                 f(x) = \frac{\sage{g0.factor()}}{\sage{h0.factor()}}
                \]
\begin{sagesilent}
f1 = simplify(g0.factor()/h0.factor())
g1 = f1.numerator()
h1 = f1.denominator()
\end{sagesilent}
                Si nous simplifions  alors $l(x)$ est alors presque\footnote{sauf pour le domaine} équivalente à la fonction $f(x) $:
%                 \[
%                  f(x) = \sage{simplify(g0.factor()/h0.factor())}
%                 \]
                \[
                 f(x) = \frac{\sage{g1}}{\sage{h1}}
                \]
                ou encore

                \[
                 f(x) = \frac{\sage{g1.expand()}}{\sage{h1}}
                \]
                Nous écrirons donc $f(x)$ comme un rapport de deux fonctions plus simples: $g(x)$ et $h(x)$.
                \[
                 f(x) = \frac{g(x)}{h(x)}
                \]
                o\`u
                \[
                 g(x) = \sage{g1.expand()} = \sage{g1}
                \]
                et o\`u
                \[
                 h(x) = \sage{h1}
                \]




               
\section{Périodicité}
        Cette fonction n'est pas périodique. Nous discuterons cette question dans un autre exemple.
\section{Zéros, intersections avec les axes}
\begin{sagesilent}
g1roots=solve(g1 == 0,x)
g1rts=solve(g1 == 0,x,solution_dict=True)
g1rts00 = g1rts[0][x]
g1rts01 = g1rts[1][x]
h1roots=solve(h1 == 0,x)
h1rts=solve(h1 == 0,x,solution_dict=True)
h1rts00 = h1rts[0][x]
\end{sagesilent}
%2DO check for multiple roots with loop
%h1rts0 est inutile ? check it! OK
%  old version was:
% h1rts0 = h1rts[0]
% h1rts00 = h1rts0[x]
        \subsection{Intersections avec l'axe horizontal}
                Savoir o\`u une fonction s'annule prépare l'étude des signes.
                $f(x)$ s'annule là  o\`u $g(x)$ s'annule.
                Dans notre cas pour
                $x=\{\sage{g1rts00}\ ; \sage{g1rts01}\}$
%                  $+2$ et $-2$
                .
        \subsection{Intersections avec l'axe vertical}
                Si $x=0$ alors $f(x) = f(0)$ et
                \[
%                  f(0) =\frac{-4}{3}
                 f(0) =\sage{f0(0)}
                \]

\section{Domaine}
        Savoir o\`u une fonction n'existe pas prépare aussi l'étude des signes mais également l'étude des limites.
        $f(x)$ n'existe pas là  o\`u $h(x)$ s'annule.
        Dans notre cas pour $x=\sage{h1rts00}$. %$\sage{h1roots}$.

        Le domaine de $f(x)$ est donc:
        \[
         dom\ l\ =\R \backslash \{\sage{h1rts00}\}
        \]

\section{Limites}
        Pas de grosse surprise ici.
        Il faut chercher la limite à  gauche et la limite à  droite de $f(x)$ autour de $x=\sage{h1rts00}$.

        La limite à  gauche est
        \[
         \lim_{x \to \sage{h1rts00},\ x<\sage{h1rts00}} f(x) = \sage{f1.limit(x = h1rts00, dir='below')}         
        \]
       
       
        La limite à  droite est
        \[
         \lim_{x \to \sage{h1rts00},\ x>\sage{h1rts00}}f(x) = \sage{f1.limit(x = h1rts00, dir='above')}
        \]

\section{Étude du signe}
        Pour étudier le signe de f(x), nous devons considérer les signes de $g(x)$ et de $h(x)$.
        \begin{center}
        % use packages: array
        \begin{tabular}{|c||c|c|c|c|c|c|c|}
        \hline
        x &  & $\sage{h1rts00}$ &  & $\sage{g1rts00}$ &  & $\sage{g1rts01}$ &  \\
        \hline \hline
        $g(x)$ & + & + & + & $\sage{g1(g1rts00)}$ & - & $\sage{g1(g1rts01)}$ & + \\
        \hline
        $h(x)$ & - & $\sage{h1(h1rts00)}$ & + & + & + & + & + \\
        \hline \hline
        f(x) & - & $\pm \infty$ & + & $\sage{f1(g1rts00)}$ & - & $\sage{f1(g1rts00)}$ & + \\
        \hline
        \end{tabular}
        \end{center}
%2DO fix $\pm \infty$
\section{Asymptotes}
        \subsection{Asymptotes verticales}
                \subsubsection{Définition} La droite d'équation $x=a$ est une asymptote verticale de la fonction $y=f(x)$ si
                \[
                \lim_{x \to a} f(x) = \pm \infty
                \]
                \subsubsection{Technique de recherche}
                L'étude du domaine de la fonction permet, sauf surprise, de trouver la (ou les) asymptote(s) verticale(s).
                \subsubsection{Détermination}
                L'asymptote verticale de f(x) est donc la droite d'équation $x =  \sage{h1rts00}$.
               

        \subsection{Asymptotes horizontales}
                \subsubsection{Définition} La droite d'équation $y=b$ est une asymptote horizontale de la fonction $y=f(x)$ si
                \[
                \lim_{x \to \pm \infty} f(x) = b
                \]
                \subsubsection{Technique de recherche}
                Il suffit de chercher les limites. Ce qui sera déterminant ici sera la comparaison des degrés de $g(x)$ et de $h(x)$
                \[
                \lim_{x \to + \infty} f(x) = \sage{f1.limit(x = +oo)}
                \]
               
                \[
                \lim_{x \to - \infty} f(x) = \sage{f1.limit(x = -oo)}
                \]
                \subsubsection{Détermination}
                Il n'y a pas d'asymptote horizontale dans ce cas.
               
        \subsection{Asymptotes obliques}
                \subsubsection{Définition} La droite d'équation $y = ax + b$ est une asymptote oblique de la fonction $y=f(x)$ si
                \[
                \lim_{x \to \pm \infty} (f(x) - (ax + b)) = 0
                \]
                \subsubsection{Technique de recherche}
                En conséquence de la définition, nous pouvons écrire:
                \[
                 a = \lim_{x \to \pm \infty} \frac{f(x)}{x}
                \]
                et
                \[
                 b = \lim_{x \to \pm \infty} (f(x) - ax)
                \]
                \subsubsection{Détermination}
\begin{sagesilent}
f1OVERx = f1/x
aPlusAsObl = f1OVERx.limit(x = +oo)
aMinusAsObl = f1OVERx.limit(x = -oo)
f1MINUSaPx = f1 - (aPlusAsObl*x)
f1MINUSaMx = f1 - (aMinusAsObl*x)
bPlusAsObl = f1MINUSaPx.limit(x = +oo)
bMinusAsObl = f1MINUSaMx.limit(x = -oo)
\end{sagesilent}
                \[
                 a_+ = \lim_{x \to + \infty} \frac{f(x)}{x} = \sage{aPlusAsObl}
                \]
               
                \[
                 b_+ = \lim_{x \to + \infty} (f(x) - ax) = \sage{bPlusAsObl}
                \]
               
                \[
                 a_- = \lim_{x \to - \infty} \frac{f(x)}{x} = \sage{aMinusAsObl}
                \]
               
                \[
                 b_- = \lim_{x \to - \infty} (f(x) - ax) = \sage{bMinusAsObl}
                \]
                Nous obtenons donc, en $+ \infty$ comme en $- \infty$,  $a=\sage{aPlusAsObl}$ et $b=\sage{bPlusAsObl}$.
               
                La droite $y=\sage{simplify(aPlusAsObl*x + bPlusAsObl)}$ est donc l'asymptote oblique de de $f(x)$.
       
\section{Dérivées}
        \subsection{Dérivée première}
        \subsubsection{Détermination}
\begin{sagesilent}
f1DerPR = f1.derivative(x)
f1DerPRrts=solve(f1DerPR == 0,x,solution_dict=True)
f1DerPRrts00 = f1DerPRrts[0][x]
f1DerPRrts01 = f1DerPRrts[1][x]
\end{sagesilent}
                Comme $f(x)=\frac{g(x)}{h(x)}$, la dérivée première de $f(x)$ est du type:
                \[
                f'(x)=\frac{g'(x)\* h(x) - g(x)\* h'(x)}{(h(x))^2} \]
       
                La dérivée première de f(x) est
%                 \[
%                 f'(x) = \frac{x^{2}+6\* x+4}{x^{2}+6\* x+9}
%                 \]
                \[
                f'(x)= \sage{expand(f1DerPR)}
                \]
                ou
                \[
                f'(x)= \sage{expand(g1.diff(x)*h1 - g1*h1.diff(x)) /expand(h1^2)}
                \]
        \subsubsection{Extrema}
                La derivée première s'annule lorsque
                $x = \sage{f1DerPRrts00}$ et $x = \sage{f1DerPRrts01}$.
%                 $x = \sqrt{5}-3$ et $x = -\sqrt{5}-3$.
                %cà d approximativement en -5,236067977 et en -0,763932023
               
                Son domaine est également
                \[
                dom\ f'\ =\ R \backslash \{\sage{h1rts00}\}
                \]
               
%2DO check for multiple roots with loop
        \subsection{Tableau de signe de la dérivée première}
                \begin{center}
                % use packages: array
                \begin{tabular}{|c||c|c|c|c|c|c|c|}
                \hline
                $x$ &  & $-\sqrt{5}-3$ &  & $\sage{h1rts00}$ &  & $\sqrt{5}-3$ &  \\
                \hline \hline
                $(x^{2}+6\* x+4)$ & + & 0 & - & - & - & 0 & + \\
                \hline
                $(x^{2}+6\* x+9)$ & + & + & + & 0 & + & + & + \\
                \hline \hline
                $f'(x)$ & + & 0 & - & $\pm \infty$ & - & 0 & + \\
                \hline
                \end{tabular}
                \end{center}


        \subsection{Dérivée seconde}
\begin{sagesilent}
f1DerSd = f1DerPR.derivative(x)
f1DerPrNum = f1DerPR.numerator()
f1DerPrDenom = f1DerPR.denominator()
f1DerSdNum = expand(f1DerPrNum.diff(x)*f1DerPrDenom - f1DerPrNum*f1DerPrDenom.diff(x))
f1DerSdDenom = expand(f1DerPrDenom^2)
\end{sagesilent}
        \subsubsection{Détermination}
        La dérivée seconde de f(x) en x est
%                 \[
%                 f''(x) = \frac{10}{x^{3}+9\* x^{2}+27\* x+27}
%                 \]
%                 \[
%                 f''(x) = \frac{\sage{ (f1DerSdNum)}}{ \sage{(f1DerSdDenom)}}
%                 \]
                \[
                f''(x) = \sage{ f1DerSd}
                \]
        \subsubsection{Zéros de la dérivée seconde}
        Il n'y pas de zéros dans notre cas mais son domaine est aussi
        \[
         dom\ f''\ =\ R \backslash \{\sage{h1rts00}\}
        \]
        Son signe est donné par le signe de
        \[
         m(x) = x^{3}+9\* x^{2}+27\* x+27
        \]
        C'est à  dire que $f''(x)$ est $<0$ si $x<-3$ et $>0$ si $x>-3$.





\section{Tableau de variation}
        Le tableau de variation permet de synthétiser toutes les informations obtenues jusqu'à  présent.


                \begin{center}
                % use packages: array
                \begin{tabular}{|c||c|c|c|c|c|c|c|c|c|c|c|}
                \hline
                $x$ &  & $\sage{f1DerPRrts00}$ &  & $\sage{h1rts00}$ & & $\sage{g1rts00}$ & & $\sage{f1DerPRrts00}$ & & $\sage{g1rts01}$ &  \\
                \hline \hline
                $f'(x)$ & - & - & - & $\pm \infty$ & + & + & + & + & + & + & + \\
                \hline
                $f'(x)$ & + & 0 & - & $\pm \infty$ & - & - & - & 0 & + & + & + \\
                \hline \hline
                $f(x)$ & - & - & - & $\pm \infty$ & + & 0 & - & - & - & 0 & + \\
                \hline
                $f(x)$ & $\nearrow$ & Max. & $\searrow $& $\pm \infty$ & $\searrow$ & 0 & $\searrow$ & Min. & $\nearrow$  & 0 & $\nearrow$ \\
                \hline               
                \end{tabular}
                \end{center}


\section{Valeurs pour quelques points}
        Pour réaliser le graphique, il faut chercher quelques valeurs de $f(x)$ pour quelques $x$ entiers.
        Nous connaissons déjà  les zéros de la fonction et les points o\`u la dérivée première s'annulait.
       
       
        Tant qu'à  faire, déterminons la valeur de la dérivée première en ces mêmes points.
       
       
                \begin{center}
                % use packages: array
                \begin{tabular}{|c||c|c|c|c|c|c|c|c|c|c|c|}
                \hline
                $x$ & -6 & $\sage{f1DerPRrts00}$ & -4 & -3 & -2 & -1 & $\sage{f1DerPRrts01}$ & 0 & +1 & +2 & +3 \\
                \hline \hline
                $f'(x)$ & $\frac{4}{9}$ & 0 & -12 & $\pm \infty$ & -4 & $\frac{-1}{4}$  & 0 & $\frac{4}{9}$ & $\frac{11}{16}$ & $\frac{4}{5}$ & $\frac{5}{6}$ \\
                \hline
                $f(x)$ & $\frac{-32}{3}$ & $\frac{(\sqrt{5}+3)^{2}-4}{ -\sqrt{5}} $ & -4 & $\pm \infty$ & 0  & $\frac{-3}{2}$ & $\frac{(\sqrt{5}-3)^{2}-4}{\sqrt{5}} $ & $\frac{-4}{3}$ & $\frac{-3}{4}$ & 0 & $\frac{31}{36}$ \\
                \hline               
                \end{tabular}
                \end{center}

\section{Tangentes}
        Rappelons que la valeur de la dérivée première pour un $x$ donné est la pente de la tangente au point de coordonnées $(x; f(x))$.
       
        C'est à  dire que pour un $x = X$, le point o\`u passe la tangente est le point de coordonnées $(X; f(X))$. La tangente a pour équation:
        \[
        y = f'(X) . x + b
        \]
        Pour obtenir la valeur de $b$ (l'ordonnée à  l'origine), il faut remarquer que la tangente à  la courbe et la courbe ont un point en commun: le point de contact de coordonnées $(X; f(X))$. Pour déterminer $b$ il faut donc résoudre l'équation:
        \[
        f(X) = f'(X) . X + b
        \]
        $b$ est donc égal à :
        \[
        b = f(X) - f'(X) . X
        \]
        L'équation générale devient donc:
       
        \[
        y = f'(X) . x + (f(X) - f'(X) . X)
        \]
       

        \subsection{Tangentes aux extrema}
                Limitons nous, dans un premier temps, à  la détermination des tangentes lorsque la dérivée première s'annule. C'est à  dire lorsque $x = \sqrt{5}-3$ et $x = -(\sqrt{5})-3$.
               
                Comme, aux extrema, la dérivée s'annule, la tangente a pour équation:
                \[
                y = 0 . x + (f(X) - 0 . X)
                \]
                cà d.
                \[
                y = f(X)
                \]
               
                Il s'agira de droites horizontales d'équation $y=cste.$.
               
                Les constantes étant la valeur de $f(x)$ en $x = \sage{f1DerPRrts00}$ et $x = \sage{f1DerPRrts01}$.
                Les 2 tangentes ont donc pour équations:
                \[
                y = \sage{expand(f1(f1DerPRrts00))}
                \]
                et
                \[
                y = \sage{expand(f1(f1DerPRrts01))}
                \]
%                 \[
%                 y = \frac{(\sqrt{5}-3)^{2}-4}{\sqrt{5}}
%                 \]
%                 et
%                 \[
%                 y = \frac{(\sqrt{5}+3)^{2}-4}{ -\sqrt{5}}
%                 \]
        \subsection{Tangente en x = 0}
        En $x = 0$,
        \[
        y = f'(X) . x + (f(X) - f'(X) . X)
        \]
        devient
        \[
        y = f'(0) . x + f(0)
        \]
        cà d.
        \[
        y = \sage{f1DerPR(0)*x + f1(0)}
        \]
%         \[
%         y = \frac{4}{9} . x - \frac{4}{3}
%         \]
        \subsection{Tangente en y = 0}
        Continuons notre recherche de tangentes en des points particuliers.
       
        En $y = 0$, cà d. aux zéros de la fonction,
        \[
        y = f'(X) . x + (f(X) - f'(X) . X)
        \]
        devient
        \[
        y = f'(X) . x - f'(X) . X
        \]
       
        En $x = \sage{g1rts00}$, la tangente aura pour équation:
        \[
        y = \sage{f1DerPR(g1rts00) * x - f1DerPR(g1rts00) * g1rts00}
        \]
%         \[
%         y = -4x -8
%         \]
       
        En $x = \sage{g1rts01}$ nous aurons alors:
        \[
        y = \sage{f1DerPR(g1rts01) * x - f1DerPR(g1rts01) * g1rts01}
        \]
%         \[
%         y = \frac{4}{5} x -\frac{8}{5}
%         \]


        \subsection{Tangentes en quelques points quelconques}
        En $x = -6$,
        \[
        y = f'(X) . x + (f(X) - f'(X) . X)
        \]
        devient
        \[
        y = f'(-6) . x + (f(-6) - (f'(-6). (-6)))
        \]
        cà d.
        \[
        y = \sage{f1DerPR(-6) * x + (f1(-6) -(f1DerPR(-6)* (-6)))}
        \]
%         \[
%         y = \frac{4}{9} . x + (\frac{-32}{3} -(\frac{4}{9}. (-6))
%         \]
%         ou encore
%         \[
%         y = \frac{4}{9} . x + \frac{-32}{3} + \frac{8}{3}
%         \]
%         et donc finalement
%         \[
%         y = \frac{4}{9} . x -8
%         \]
               
               
        En $x = -4$,
        \[
        y = f'(-4) . x + (f(-4) - (f'(-4). (-4)))
        \]

        \[
        y = \sage{f1DerPR(-4) * x + (f1(-4) -(f1DerPR(-4)* (-4)))}
        \]
        etc
       
\newpage
\section{Le graphique}
%?
% % \begin{sagesilent}
% % \sage{g1rts00}
% %
% % \end{sagesilent}
%
% Bof
% \newcommand{\XAsV}{\sage{h1rts00}}%
\begin{sagesilent}
XAsVrt = h1rts00
\end{sagesilent}


\begin{sagesilent}
def tikz_graph(XAs):
   # start of the graph
   s  = r"\begin{tikzpicture}"
   # grid
   s += r"\draw[very thin,color=gray] (-8.1,-14.1) grid (5.1,5.1);"
   # axes
   #s += r"% bgn axes"
   s += r"\draw[->] (-8.2,0) -- (5.2,0) node[right] {$x$};"
   s += r"\draw[->] (0,-14.2) -- (0,5.2) node[above] {$f(x)$};"
   # graduations
   s += r"\foreach \x in {0,1}"
   s += r"    \draw (\x cm,1pt) -- (\x cm,-1pt) node[anchor=north] {$\x$};"
   s += r"\foreach \y in {0,1}"
   s += r"    \draw (1pt,\y cm) -- (-1pt,\y cm) node[anchor=east] {$\y$};"
   #
   # fct branch one
   s += r"\draw[color=blue] plot [id=fx1,domain=-8.2:-3.7] function{(((x-2)*(x+2))/(x+3))} node {};"
   # fct branch 2
   s += r"\draw[color=blue] plot[id=fx2,domain=-2.5:5.2] function{(((x-2)*(x+2))/(x+3))} node[right] {$f(x) = \displaystyle{\frac{x^{2}-4}{x+3}} $};"
   #
   # Asymptotes
   # Asymptote Verticale
   s += r"\draw[-,color=red]  (%f,-13.5)" % XAs  + r"-- (%f,4.5)" % XAs + r" node[left] {$x= %s $};" % round(XAs, 3)
   # Asymptote Oblique
   s += r"\draw[color=orange] plot[id=AsVert1,domain=-8.2:5.2] function{x-3} node[right] {$y = x-3 $};"
   #
   # tgtes
   # tgtes min max
   s += r"\draw[color=green] plot[id=tgMax,domain=-1.5:3.5] function{-1.527864045} node[anchor=north] {$y = \frac{(\sqrt{5}-3)^{2}-4}{\sqrt{5}} $};"
   #
   s += r"\draw[color=green] plot[id=tgMin,domain=-6.5:-3.5] function{-10.472135955} node[anchor=north] {$y = \frac{(\sqrt{5}+3)^{2}-4}{ -\sqrt{5}} $};"
   # tgte x=0
   s += r"\draw[color=green] plot[id=tg0,domain=-0.5:1.5] function{0.44444*x - 1.33333} node[anchor=west] {$y = \frac{4}{9} . x - \frac{4}{3} $};"
   # tgte y=0
   s += r"\draw[color=green] plot[id=tg01,domain=-2.6:-1.4] function{-4*x - 8} node[anchor=west] {$y = -4x -8$};"
   #
   s += r"\draw[color=green] plot[id=tg02,domain=1.5:3.7] function{0.8*x - 1.6} node[anchor=west] {$y = \frac{4}{5} x - \frac{8}{5} $};"
   # tgte qcqe
   s += r"\draw[color=green] plot[id=tgM6,domain=-7.5:-2.5] function{0.44444*x - 8} node[anchor=west] {$y = \frac{4}{9} . x -8 $};"
   # add the last line and return
   s += r"\end{tikzpicture}"
   return s

# Value of X for vertical Asymptote?
XAs = XAsVrt
\end{sagesilent}

\begin{center}
 \sage{tikz_graph(XAs)}
\end{center}

\section{Résumé}
 Le présent travail est une chimère. Notre but est en effet multiple. Nous avons voulu à la fois faire, à travers une étude de cas, une révision didactique de ce qu'est une étude de fonction mais aussi faire un ``proof of concept'' de l'utilisation de différents ``packages'' sous \LaTeX{}. Nous faisons ici la démonstration de l'utilisation de ``pgf/tikz'' pour les sorties graphiques mais aussi de l'utilisation de ``sage'' à travers l'utilisation de ``sagetex'' pour le calcul formel\footnote{ou algèbre sur ordinateur}.
\end{document}

Documents joints

Notes

[1] La masse calculée ici n’est pas exacte mais j’en discute en classe !

[2] à ignorer mais j’annonce un comportement par défaut qui n’est pas implémenté. Ce package me seret pour la mise en page.