\begin{exercise}[subtitle={Calculs de dérivée}, step={1}, origin={Ma tête}, topics={ Fonction dérivée }, tags={ Dérivation }, mode={\trainMode}]
    Calculer les fonctions dérivées des fonctions suivantes
    \Block{
        set fonctions = {
            "f": random_expression("{a}x + {b}", [],),
            "g": random_expression("{a}x + {b}", [],),

            "h": random_expression("{a}x + {b}", [],),
            "i": random_expression("{a}x + {b}", [],),

            "j": random_expression("{a}x + {b}", [],),
            "k": random_expression("{a}x^2 + {b}x + {c}", [],),

            "l": random_expression("{a}x + {b}", [],),
            "m": random_expression("{a}x^2 + {b}x + {c}", [],),

            "n": random_expression("{a}x^2 + {b}x + {c}", [],),
            "o": random_expression("{a}x^2", [],),

            "p": random_expression("{a}x^2 + {b}x", [],),
            "q": random_expression("{a}x^2 + {c}", [],),
        }
    }
    \begin{multicols}{3}
        \begin{enumerate}
            %- for name, f in fonctions.items()
            \item $\Var{name}(x) = \Var{f}$
            %- endfor
        \end{enumerate}
    \end{multicols}
\end{exercise}

\begin{solution}
    \begin{multicols}{2}
        \begin{enumerate}
            %- for name, f in fonctions.items()
            \item $\Var{name}(x) = \Var{f}$

                \[
                    \Var{name}'(x) = \Var{f.differentiate()}
                \]
            %- endfor
        \end{enumerate}
    \end{multicols}
\end{solution}

\begin{exercise}[subtitle={Fonction affines - technique}, step={2}, origin={Ma tête}, topics={ Fonction dérivée }, tags={ Dérivation }, mode={\trainMode}]
    Reprendre l'exercice précédent pour les fonctions suivantes:
    \Block{
        set functions = {
            "f": random_expression("{a}x + {b}", [],),
            "g": random_expression("{a}x + {b}", [],),

            "h": random_expression("{a}x + {b}", [],),
            "i": random_expression("{a}x + {b}", [],),
        }
    }
    \begin{multicols}{2}
        \begin{enumerate}
            %- for name, f in functions.items()
            \item $\Var{name}(x) = \Var{f}$
            %- endfor
        \end{enumerate}
    \end{multicols}
\end{exercise}

\begin{solution}
    \begin{enumerate}
        %- for name, f in functions.items()
        \item Étude de la fonction $\Var{name}(x) = \Var{f}$
            %- set f1 = f.differentiate()
            \begin{itemize}
                \item Fonction dérivée : $\Var{name}'(x) = \Var{f1}$
            %- if f1 > 0
                \item Comme $\Var{f1} > 0$ la fonction est croissante
                \item
                    \begin{center}
                        \begin{tikzpicture}
                            \tkzTabInit[lgt=3,espcl=10]{$x$/1,Signe de $f'(x)$/2, Variations de $f(x)$/2}{\hspace{2cm}, \hspace{2cm}}%
                            \tkzTabLine{,+,}%
                            \tkzTabVar{-/ ,+/ }%
                        \end{tikzpicture}
                    \end{center}
            %- elif f1 < 0
                \item Comme $\Var{f1} < 0$ la fonction est décroissante
                \item
                    \begin{center}
                        \begin{tikzpicture}
                            \tkzTabInit[lgt=3,espcl=10]{$x$/1,Signe de $f'(x)$/2, Variations de $f(x)$/2}{\hspace{2cm}, \hspace{2cm}}%
                            \tkzTabLine{,-,}%
                            \tkzTabVar{+/ ,-/ }%
                        \end{tikzpicture}
                    \end{center}
            %- endif
            \end{itemize}
        %- endfor
    \end{enumerate}
\end{solution}

\begin{exercise}[subtitle={Fonction affines - technique}, step={2}, origin={Ma tête}, topics={ Fonction dérivée }, tags={ Dérivation }, mode={\trainMode}]
    Reprendre l'exercice précédent pour les fonctions suivantes :
    \Block{
        set functions = {
            "f": random_expression("{a}x^2 + {b}x + {c}", ["a>0"],),
            "g": random_expression("{a}x^2 + {b}x + {c}", ["a>0"],),

            "h": random_expression("{a}x^2 + {b}x + {c}", [],),
            "i": random_expression("{a}x^2 + {b}x + {c}", [],),

            "j": random_expression("{a}x^2 + {b}x + {c}", [],),
            "k": random_expression("{a}x^2 + {b}x + {c}", [],),
        }
    }
    \begin{multicols}{2}
        \begin{enumerate}
            %- for name, f in functions.items()
            \item $\Var{name}(x) = \Var{f}$
            %- endfor
        \end{enumerate}
    \end{multicols}
\end{exercise}

\begin{solution}
    \begin{enumerate}
        %- for name, f in functions.items()
        \item Étude de la fonction $\Var{name}(x) = \Var{f}$
            %- set f1 = f.differentiate()
            \begin{itemize}
                \item Fonction dérivée : $\Var{name}'(x) = \Var{f1}$
            %- if f1[1] > 0
                \item On résout l'inéquation $\Var{name}'(x) \geq 0$ pour déterminer quand la fonction $\Var{name}'$ est positive.
                    %- set cst = -f1[0]
                    %- set coef = f1[1]
                    %- set racine = cst / coef
                    \begin{align*}
                        \Var{name}(x) & \geq 0 \\
                        \Var{f1} & \geq 0 \\
                        \Var{f1} + \Var{cst} &\geq 0 + \Var{cst} \\
                        \Var{f1 + cst} &\geq \Var{0 + cst} \\
                        \frac{\Var{f1 + cst}}{\Var{coef}} &\geq \frac{\Var{cst}}{\Var{coef}} \\
                        x &\geq \Var{racine.simplify()} \\
                    \end{align*}
                    Donc $\Var{name}(x)$ est positif quand $x$ est plus \textbf{grand} que $\Var{racine.simplify()}$
                %- set racine = racine.simplify()
                %- set img_racine = f(racine)
                \item
                    \begin{center}
                        \begin{tikzpicture}
                            \tkzTabInit[lgt=3,espcl=4]{$x$/1,Signe de $f'(x)$/2, Variations de $f(x)$/2}{, $\Var{racine}$ ,}%
                            \tkzTabLine{, -, z, +,  }
                            \tkzTabVar{+/ ,-/$f(\Var{racine}) = \Var{img_racine}$ , +/}%
                        \end{tikzpicture}
                    \end{center}
            %- elif f1[1] < 0
                \item On résout l'inéquation $\Var{name}'(x) \geq 0$ pour déterminer quand la fonction $\Var{name}'$ est positive.
                    %- set cst = -f1[0]
                    %- set coef = f1[1]
                    %- set racine = cst / coef
                    \begin{align*}
                        \Var{name}(x) & \geq 0 \\
                        \Var{f1} & \geq 0 \\
                        \Var{f1} + \Var{cst} &\geq 0 + \Var{cst} \\
                        \Var{f1 + cst} &\geq \Var{0 + cst} \\
                        \frac{\Var{f1 + cst}}{\Var{coef}} &\leq \frac{\Var{cst}}{\Var{coef}} \\
                        x &\leq \Var{racine.simplify()} \\
                    \end{align*}
                    Donc $\Var{name}(x)$ est positif quand $x$ est plus \textbf{petit} que $\Var{racine.simplify()}$
                %- set racine = racine.simplify()
                %- set img_racine = f(racine)
                \item
                    \begin{center}
                        \begin{tikzpicture}
                            \tkzTabInit[lgt=3,espcl=4]{$x$/1,Signe de $f'(x)$/2, Variations de $f(x)$/2}{, $\Var{racine}$ ,}%
                            \tkzTabLine{, +, z, -,  }
                            \tkzTabVar{-/ ,+/$f(\Var{racine}) = \Var{img_racine}$ , -/}%
                        \end{tikzpicture}
                    \end{center}
            %- endif
            \end{itemize}
        %- endfor
    \end{enumerate}
\end{solution}
