Feat(2nd): DM2
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Bertrand Benjamin 2023-03-16 09:57:38 +01:00
parent d315b2142a
commit b003547168
4 changed files with 250 additions and 0 deletions

View File

@ -0,0 +1,22 @@
# bopytex_config.py
from math import ceil
from mapytex.calculus.random import expression as random_expression
from mapytex.calculus.random import list as random_list
from mapytex import stat
from mapytex import render
import random
random.seed(0) # Controlling the seed allows to make subject reproductible
render.set_render("tex")
direct_access = {
"random_expression": random_expression,
"random_list": random_list,
"stat": stat,
"random": random,
"min": min,
"max": max,
"int": int,
"ceil": ceil,
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,228 @@
\documentclass[a4paper,12pt]{article}
\usepackage{myXsim}
\usepackage{pgfplots}
\usetikzlibrary{decorations.markings}
\pgfplotsset{compat=1.18}
\title{ DM1 \hfill \Var{ subject.Nom }}
\tribe{2nd}
\date{A rendre pour le 2 décembre 2022}
\duree{}
\xsimsetup{
solution/print = false
}
\pagestyle{empty}
\begin{document}
\maketitle
Le barème est donné à titre indicatif, il pourra être modifié.
\begin{exercise}[subtitle={Calculs avec des fractions}, points=5]
Détailler les calculs suivants et donner le résultat sous la forme d'une fraction irréductible.
\Block{
set fractions = {
"A": random_expression("{a} / {b} + {c} / {d}", ["a!=b", "c!=d", "b > 1", "d > 1"], global_config={"min_max": (0, 10)}),
"B": random_expression("{a} / {b} + {c}", ["a!=b", "b > 1"], global_config={"min_max": (1, 10)}),
"C": random_expression("{a} / {b} * {c}", ["a!=b", "b > 1"], global_config={"min_max": (1, 10)}),
"D": random_expression("{a} / {b} * {c} / {b}", ["a!=b", "c!=b", "b > 1"], global_config={"min_max": (1, 10)}),
"E": random_expression("{a} / {b} / ({c} / {b})", ["a!=b", "c!=b", "b > 1"], global_config={"min_max": (1, 10)}),
}
}
\begin{multicols}{3}
\begin{enumerate}
%- for (l, e) in fractions.items()
\item $\Var{l} = \Var{e}$
%- endfor
\end{enumerate}
\end{multicols}
\end{exercise}
\begin{solution}
\begin{multicols}{3}
\begin{enumerate}
%- for (l, e) in fractions.items()
\item
\begin{align*}
\Var{l} & = \Var{e.simplify().explain() | join(' \\\\ & = ')} \\
& = \Var{e.simplify().simplified}
\end{align*}
%- endfor
\end{enumerate}
\end{multicols}
\end{solution}
\begin{exercise}[subtitle={Inéquation et tableaux}, points=3]
Tracer le tableau de signe de la fonction suivante en le démontrant à l'aide de la résolution d'une inéquation.
%- set f = random_expression("{a}x + {b}", global_config={"min_max":(-20, 20), "rejected":[0, 1]})
$$f(x) = \Var{f}$$
\end{exercise}
\begin{solution}
Pour déterminer les valeurs de $x$ pour lesquelles $f(x)$ est positive, il faut résoudre l'inéquation
%- set cst = -f[0]
%- set coef = f[1]
%- set racine = cst / coef
\begin{align*}
f(x) & \geq 0 \\
\Var{f} & \geq 0 \\
\Var{f + cst} &\geq \Var{0 + cst} \\
%- if coef > 0
\frac{\Var{f + cst}}{\Var{coef}} &\geq \frac{\Var{cst}}{\Var{coef}} \\
x &\geq \Var{racine.simplify()} \\
\end{align*}
Donc $f(x)$ est positif quand $x$ est supérieur à $\Var{racine}$. On en déduit le tableau de signe
%- else
\frac{\Var{f + cst}}{\Var{coef}} &\leq \frac{\Var{cst}}{\Var{coef}} \\
x &\leq \Var{racine.simplify()} \\
\end{align*}
Donc $f(x)$ est positif quand $x$ est inférieur à $\Var{racine}$. On en déduit le tableau de signe
%- endif
\begin{center}
\begin{tikzpicture}
\tkzTabInit[lgt=2,espcl=1]{$ t $/1,$ f(t) $/1}{, $\Var{racine}$ ,}
%- if coef > 0
\tkzTabLine{, -, z, +, }
%- else
\tkzTabLine{, +, z, -, }
%- endif
\end{tikzpicture}
\end{center}
\end{solution}
\begin{exercise}[subtitle={Vecteurs}, points=3]
\begin{multicols}{2}
\begin{enumerate}
\item Tracer les vecteurs $\vect{z} = \vect{u} + \vect{v}$ et $\vect{y} = 2\vect{u} - \vect{v}$ (le vecteur peut sortir du cadre)
%- set xa1, ya1 = random_list(["x", "y"], global_config={"min_max": (-5, 5), "rejected":[-2, -1, 0, 1, 2]})
%- set xa2, ya2 = -xa1, ya1
%- set aminx = min(0, xa1, xa2, xa1+xa2, 2*xa1-xa2)
%- set amaxx = max(0, xa1, xa2, xa1+xa2, 2*xa1-xa2)
%- set aminy = min(0, ya1, ya2, ya1+ya2, 2*ya1-ya2)
%- set amaxy = max(0, ya1, ya2, ya1+ya2, 2*ya1-ya2)
\begin{center}
\begin{tikzpicture}[scale=0.4]
\draw (\Var{aminx-1}, \Var{aminy-1}) rectangle (\Var{amaxx+1}, \Var{amaxy+1});
\draw[very thick, ->] (0, 0) -- node [midway, sloped, above] {$\vect{u}$} (\Var{xa1}, \Var{ya1});
\draw[very thick, -> ] (0, 0) -- node [midway, sloped, above] {$\vect{v}$} (\Var{xa2}, \Var{ya2});
\end{tikzpicture}
\end{center}
\item Tracer la force résultat de la somme des 3 forces exercées sur le point $0$ représenté ci-dessous.
%- set x1, y1 = random_list(["x", "y"], global_config={"min_max": (-5, 5), "rejected":[-2, -1, 0, 1, 2]})
%- set x2, y2 = -x1, y1
%- set x3, y3 = x2, 0
%- set minx = min(0, x1, x2, x3, x1+x2, x2+x3, x1+x3, x1+x2+x3 )
%- set maxx = max(0, x1, x2, x3, x1+x2, x2+x3, x1+x3, x1+x2+x3 )
%- set miny = min(0, y1, y2, y3, y1+y2, y2+y3, y1+y3, y1+y2+y3 )
%- set maxy = max(0, y1, y2, y3, y1+y2, y2+y3, y1+y3, y1+y2+y3 )
\begin{center}
\begin{tikzpicture}[scale=0.4]
\draw (\Var{minx-1}, \Var{miny-1}) rectangle (\Var{maxx+1}, \Var{maxy+1});
\draw[very thick, ->] (0, 0) -- node [midway, sloped, above] {$\vect{F_1}$} (\Var{x1}, \Var{y1});
\draw[very thick, -> ] (0, 0) -- node [midway, sloped, above] {$\vect{F_2}$} (\Var{x2}, \Var{y2});
\draw[very thick, -> ] (0, 0) -- node [midway, sloped, above] {$\vect{F_3}$} (\Var{x3}, \Var{y3});
\end{tikzpicture}
\end{center}
\end{enumerate}
\end{multicols}
\end{exercise}
\begin{solution}
\begin{multicols}{2}
\begin{enumerate}
\item
\begin{center}
\begin{tikzpicture}[scale=0.4]
\draw (\Var{aminx-1}, \Var{aminy-1}) rectangle (\Var{amaxx+1}, \Var{amaxy+1});
\draw[very thick, ->] (0, 0) -- node [midway, sloped, above] {$\vect{u}$} (\Var{xa1}, \Var{ya1});
\draw[very thick, -> ] (0, 0) -- node [midway, sloped, above] {$\vect{v}$} (\Var{xa2}, \Var{ya2});
\draw[very thick, ->, color=blue] (0, 0)
-- ++ (\Var{xa1}, \Var{ya1}) node [midway, sloped, above] {$\vect{u}$}
-- ++ (\Var{xa2}, \Var{ya2}) node [midway, sloped, above] {$\vect{v}$} ;
\draw[very thick, ->, color=blue] (0, 0) -- node [midway, sloped, left] {$\vect{z}$} (\Var{xa2+xa1}, \Var{ya2+ya1});
\draw[very thick, ->, color=green] (0, 0)
-- ++ (\Var{xa1}, \Var{ya1}) node [midway, sloped, above] {$\vect{u}$}
-- ++ (\Var{xa1}, \Var{ya1}) node [midway, sloped, above] {$\vect{u}$}
-- ++ (-\Var{xa2}, -\Var{ya2}) node [midway, sloped, above] {$-\vect{v}$} ;
\draw[very thick, ->, color=green] (0, 0) -- node [midway, sloped, above] {$\vect{y}$} (\Var{2*xa1 - xa2}, \Var{2*ya1 - ya2});
\end{tikzpicture}
\end{center}
\item
\begin{center}
\begin{tikzpicture}[scale=0.4]
\draw (\Var{minx-1}, \Var{miny-1}) rectangle (\Var{maxx+1}, \Var{maxy+1});
\draw[very thick, ->] (0, 0) -- node [midway, sloped, above] {$\vect{F_1}$} (\Var{x1}, \Var{y1});
\draw[very thick, -> ] (0, 0) -- node [midway, sloped, above] {$\vect{F_2}$} (\Var{x2}, \Var{y2});
\draw[very thick, -> ] (0, 0) -- node [midway, sloped, above] {$\vect{F_3}$} (\Var{x3}, \Var{y3});
\draw[very thick, ->, color=blue] (0, 0)
--++ (\Var{x1}, \Var{y1}) node [midway, sloped, above] {$\vect{F_1}$}
--++ (\Var{x2}, \Var{y2}) node [midway, sloped, above] {$\vect{F_2}$}
--++ (\Var{x3}, \Var{y3}) node [midway, sloped, above] {$\vect{F_3}$}
;
\draw[very thick, ->, color=blue] (0, 0) -- (\Var{x1+x2+x3}, \Var{y1+y2+y3}) node [midway, sloped, above] {$\vect{F_1}+\vect{F_2}+\vect{F_3}$};
\end{tikzpicture}
\end{center}
\end{enumerate}
\end{multicols}
\end{solution}
\begin{exercise}[subtitle={Statistiques}, points=5]
%- set center = random.randint(30, 50)
%- set qty = random.randint(20, 40)
%- set dataset = stat.Dataset.random(qty, rd_args=(center, 1.5), nbr_format=int)
Ci-dessous la taille des poissons péchés lors du dernier challenge PêcheParty.
\begin{center}
\Var{dataset.tabular_latex(ceil(qty/15))}
\end{center}
\begin{enumerate}
\item Décrire la série statistique et donner l'effectif total.
\item Calculer la moyenne, les quartiles, l'écart interquartile et la médiane de cette série statistique.
\item Quelle est la valeur de l'écart-type de cette série statistique?
\end{enumerate}
\end{exercise}
\begin{solution}
Dans cette correction les étapes de construction des indicateurs ne sont pas détaillés.
Tableau des effectifs
%- set wdataset = stat.WeightedDataset(dataset)
\begin{center}
\Var{wdataset.tabular_latex()}
\end{center}
La population sont les poissons péchés lors du dernier challenge PêcheParty. Les individus sont les poissons. Le caractère est la taille des poissons.
\begin{multicols}{2}
\begin{itemize}
\item Effectif total : $\Var{dataset.effectif_total()}$
\item Premier quartile $ Q_1 = \Var{dataset.quartile(1)}$ (position $\Var{dataset.posi_quartile(1)}$)
\item Médiane $ Me = \Var{dataset.quartile(2)}$ (position $\Var{dataset.posi_quartile(2)}$)
\item Troisième quartile $ Q_3 = \Var{dataset.quartile(3)}$ (position $\Var{dataset.posi_quartile(3)}$)
\item interquartile: $Q_3 - Q_1 = \Var{dataset.quartile(3)} - \Var{dataset.quartile(1)} = \Var{dataset.quartile(3) - dataset.quartile(1) }$
\item Moyenne: $\overline{x} = \Var{dataset.mean()}$
\item Écart-type: $\sigma = \Var{dataset.sd()}$
\end{itemize}
\end{multicols}
\end{solution}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "master"
%%% End: