summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-11-21 20:50:48 +0000
committerKarl Berry <karl@freefriends.org>2022-11-21 20:50:48 +0000
commit50fb90792b5ec87def8bcb5506575df7ed1b1c0d (patch)
treeff280bb0658132304f23431176cff2fc867b94f4 /Master
parentd0db1dd18e13db50d0ececacde9ec66069b149cf (diff)
proflycee (21nov22)
git-svn-id: svn://tug.org/texlive/trunk@65070 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdfbin717177 -> 738301 bytes
-rw-r--r--Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex217
-rw-r--r--Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty166
3 files changed, 359 insertions, 24 deletions
diff --git a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf
index f59266ae1d5..d3d0cb3baaa 100644
--- a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf
+++ b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex
index d4070a4559b..c4bc9a40169 100644
--- a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex
+++ b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex
@@ -6,11 +6,11 @@
\documentclass{article}
\usepackage[french]{babel}
+\usepackage{ProfLycee}
\usepackage{mathtools}
\usepackage{lualatex-math}
\usepackage{luatexbase}
\usepackage[math-style=french,bold-style=ISO]{fourier-otf}
-\usepackage{ProfLycee}
\usepackage{tkz-euclide}
\usetikzlibrary{hobby}
\usepackage[group-minimum-digits=4]{siunitx}
@@ -62,8 +62,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\PLversion{2.0.1}
-\def\PLdate{6 Novembre 2022}
+\def\PLversion{2.0.5}
+\def\PLdate{20 Novembre 2022}
\tcbset{vignettes/.style={%
nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -241,6 +241,8 @@ Une commande pour simplifier des calculs sous forme fractionnaire.
Une commande pour simplifier l'écriture d'un ensemble, avec espaces \og automatiques \fg.
+Des commandes pour effectuer des calculs avec des suites récurrentes.
+
Une commande pour créer, en \TikZ, la \textit{toile} pour une suite récurrente.
Une commande pour créer, en \TikZ, un cercle trigo avec options.
@@ -328,7 +330,7 @@ Le {package} \ctex{ProfLycee} charge les {packages} :
\item \ctex{xparse}, \ctex{xkeyval}, \ctex{xstring}, \ctex{simplekv} ;
\item \ctex{listofitems}, \ctex{xintexpr} , \ctex{xintbinhex} et \ctex{xintgcd};
\item \ctex{tabularray}, \ctex{fontawesome5}, \ctex{tcolorbox} ;
- \item \ctex{piton} (uniquement si compilation en \LuaLaTeX{} !) et \ctex{pythontex}
+ \item \ctex{piton} (uniquement si compilation en \LuaLaTeX{} !) et \ctex{pythontex}.
\end{itemize}
\end{codeinfo}
@@ -342,9 +344,9 @@ J'ai utilisé les {packages} de C. Tellechea, je vous conseille d'aller jeter un
%exemple de chargement pour une compilation en (pdf)latex
\documentclass{article}
\usepackage[french]{babel}
+\usepackage{ProfLycee}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
-\usepackage{ProfLycee}
...
\end{codetex}
@@ -352,9 +354,9 @@ J'ai utilisé les {packages} de C. Tellechea, je vous conseille d'aller jeter un
%exemple de chargement pour une compilation en (xe/lua)latex
\documentclass{article}
\usepackage[french]{babel}
+\usepackage{ProfLycee}
\usepackage{mathtools}
\usepackage{fontspec}
-\usepackage{ProfLycee}
...
\end{codetex}
@@ -418,7 +420,7 @@ Je préfère faire ces ajustements tant que le package est assez \textit{jeune}
\begin{codetex}[listing only]
...
-\usepackage[<options>]{ProfLycee-old}
+\usepackage[<options>]{ProfLycee-old} %nouveautés non disponibles par contre...
...
\end{codetex}
@@ -533,18 +535,24 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
\SplineTikz[<options>]{<liste>}
\TangenteTikz[<options>]{<liste>}
-%toile pour une suite récurrente, dans un environnement tikz
+%Présentation d'une solution par balayage (TVI)
+\SolutionTVI[<options>]{<fonction>}{<valeur>}
+
+%Calculer le terme d'une suite récurrente simple, toile pour une suite récurrente simple
+\CalculTermeRecurrence[<options>]{<fonction associée>}
\ToileRecurrence[<clés>][<options du tracé>][<option supplémentaire des termes>]
+%Mise en forme de la conclusion d'un seuil
+\SolutionSeuil[<options>]{<fonction associée>}{<seuil>}
+\end{codetex}
+
+\begin{codetex}[listing only]
%présentation type calcul formel, dans un environnement tikz
\CalculFormelParametres[<options>]
\CalculFormelLigne[<options>]{<commande>}{<résultat>}
-\end{codetex}
-\begin{codetex}[listing only]
%présentation de code Python
\begin{CodePythonLst}(*)[<largeur>]{<commandes tcbox>}...\end{CodePythonLst}
-\CodePythonLstFichier(*)[<largeur>]{<commandes tcbox<}{<script>}
\begin{CodePiton}[<options>]...\end{CodePiton}
\begin{CodePythontex}[<options>]...\end{CodePythontex}
\begin{CodePythonMinted}(*)[<largeur>][<options>]...\end{CodePythonMinted}
@@ -985,6 +993,173 @@ On obtient le résultat suivant (avec les éléments rajoutés utiles à la comp
\newpage
+\section{Présentation d'une solution d'équation par balayage}\label{solutiontvi}
+
+\subsection{Idée}
+
+\begin{codeidee}
+\cmaj{2.0.4} L'idée est de présenter l'obtention d'une solution approchée d'équation par balayage, dans le cadre du TVI par exemple. Les calculs et tests sont effectués grâce au package \ctex{xinttools}, et le formatage par \ctex{tabularray} et \ctex{sinuitx}.
+\end{codeidee}
+
+\begin{codeattention}
+Le code ne trouve pas la solution, il met \textit{juste} en forme mais effectue quand même les calculs d'images et les tests.
+\end{codeattention}
+
+\begin{codetex}[listing only]
+\SolutionTVI[<options>]{<fonction>}{<valeur>}
+\end{codetex}
+
+\subsection{Clés et arguments}
+
+\begin{codecles}
+Plusieurs \Cle{Clés} sont disponibles pour cette commande, relative donc à une équation du type $f(x)=k$ :
+
+\begin{itemize}
+ \item la clé \Cle{NomFct} qui permet de spécifier le nom de la fonction ;\hfill{}défaut \Cle{f}
+ \item la clé \Cle{NomSol} qui permet de spécifier le nom de la fonction ;\hfill{}défaut \Cle{\textbackslash{}alpha}
+ \item les clés \Cle{va} et \Cle{vb} qui sont les bornes inférieure et supérieure de l'encadrement ;
+ \item la clé \Cle{Precision} qui est la précision des calculs pour les images ;\hfill{}défaut \Cle{2}
+ \item la clé \Cle{Stretch} qui permet d'espacer les lignes ;\hfill{}défaut \Cle{1.15}
+ \item les booléens \Cle{Balayage} ou \Cle{Calculatrice} pour afficher un texte en amont ;\hfill{}défaut \Cle{false}
+ \item le booléen qui affiche un texte avant, en spécifiant la calculatrice ;\hfill{}défaut \Cle{false}
+ \item le booléen \Cle{Majuscule} qui affiche le texte avant, avec une majuscule au début ;\hfill{}défaut \Cle{true}
+\end{itemize}
+
+\smallskip
+
+Le premier argument mandataire est la fonction, en syntaxe \ctex{xint} et avec comme variable $x$, et le second la valeur de $k$.
+\end{codecles}
+
+\begin{codetex}[]
+Pour $f(x)=0$ avec $f(x)=x^2-2$. On obtient \SolutionTVI[va=1.414,vb=1.415,Precision=3]{x**2-2}{0}.
+\end{codetex}
+
+\begin{codetex}[]
+Avec $\varphi(t)=3t\,\rm{e}^{-0,5t+1}=5$,
+\SolutionTVI[Majuscule=false,Calculatrice,va=1.02,vb=1.03,NomFct=\varphi]{3*x*exp(-0.5*x+1)}{5}
+\end{codetex}
+
+\begin{codetex}[]
+On s'intéresse à $g(x)=\num{1,5}$ avec $g(x)=\ln(x)$.
+\SolutionTVI[Balayage,Stretch=1.5,va=4.48,vb=4.49,NomFct=g,Precision=4,NomSol={x_0}]{log(x)}{1.5}.
+\end{codetex}
+
+\newpage
+
+\section{Suites récurrentes simples}\label{calcrecurr}
+
+\subsection{Idées}
+
+\begin{codeidee}
+\cmaj{2.0.3} L'idée est de proposer des commandes pour effectuer des calculs avec des suites récurrentes du type $u_{n+1}=f\big(u_n\big)$ :
+
+\begin{itemize}
+ \item calcul de termes avec possibilité d'arrondir ;
+ \item présentation de la conclusion de la recherche d'un seuil du type $u_n > S$ ou $u_n < S$.
+\end{itemize}
+\end{codeidee}
+
+\begin{codeattention}
+Le code pour le seuil ne trouve pas la solution (\ldots), il met \textit{juste} en forme et effectue quand même les calculs d'images.
+
+\smallskip
+
+\cmaj{2.0.5} Le choix a été fait de faire les calculs en mode \ctex{float} pour éviter les dépassements de capacité de \ctex{xint} liés aux boucles\ldots
+\end{codeattention}
+
+\begin{codetex}[listing only]
+%commande pour calculer et formater
+\CalculTermeRecurrence[<options>]{<fonction associée>}
+
+%mise en forme de la conclusion d'un seuil
+\SolutionSeuil[<options>]{<fonction associée>}{<seuil>}
+\end{codetex}
+
+\subsection{Clés et arguments}
+
+\begin{codecles}
+Plusieurs \Cle{Clés} sont disponibles pour la commande du calcul d'un terme :
+
+\begin{itemize}
+ \item la clé \Cle{No} qui est le rang initial de la suite ;
+ \item la clé \Cle{UNo} qui est le terme initial de la suite ;
+ \item la clé \Cle{Precision} qui précise l'arrondi éventuel ;\hfill{}défaut \Cle{3}
+ \item la clé \Cle{N} qui est l'indice du terme à calculer.
+\end{itemize}
+
+\smallskip
+
+L'argument mandataire est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$.
+\end{codecles}
+
+\begin{codetex}[listing only]
+Avec $\begin{dcases} u_0 = 50 \\ u_{n+1}=\dfrac{1}{u_n+2} \end{dcases}$.
+
+On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$.
+
+On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{1/(x+2)}$.
+
+On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$.
+\end{codetex}
+
+\begin{codesortie}
+Avec $u_0 = 50$ et $u_{n+1}=\dfrac{1}{u_n+2}$.
+
+\smallskip
+
+On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$ \hfill~sortie par défaut.
+
+\smallskip
+
+On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{1/(x+2)}$ \hfill~avec choix de la précision à $10^{-4}$.
+
+\smallskip
+
+On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$ \hfill~avec choix de la précision à $10^{-6}$.
+\end{codesortie}
+
+\begin{codecles}
+Plusieurs \Cle{Clés} sont disponibles pour la commande du seuil :
+
+\begin{itemize}
+ \item la clé \Cle{NomSuite} qui est le nom de la suite ;\hfill~défaut \Cle{u}
+ \item la clé \Cle{No} qui est le rang initial de la suite ;
+ \item la clé \Cle{UNo} qui est le terme initial de la suite ;
+ \item la clé \Cle{SolN} qui est la valeur de l'indice cherché ;
+ \item la clé \Cle{Precision} qui précise l'arrondi éventuel ;\hfill{}défaut \Cle{2}
+ \item la clé \Cle{Stretch} qui permet d'espacer les lignes ;\hfill{}défaut \Cle{1.15}
+ \item les booléens \Cle{Balayage} ou \Cle{Calculatrice} pour afficher un texte en amont ;\hfill{}défaut \Cle{false}
+ \item le booléen qui affiche un texte avant, en spécifiant la calculatrice ;\hfill{}défaut \Cle{false}
+ \item le booléen \Cle{Majuscule} qui affiche le texte avant, avec une majuscule au début ;\hfill{}défaut \Cle{true}
+ \item la clé \Cle{Sens} (parmi \Cle{<} ou \Cle{>}) pour indiquer le type de seuil.\hfill{}défaut \Cle{>}
+\end{itemize}
+
+\smallskip
+
+Le premier argument mandataire est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$, et le second est le seuil à dépasser.
+\end{codecles}
+
+\begin{codetex}[]
+Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
+on cherche $n$ tel que $u_n > 5$.\\
+\SolutionSeuil[Balayage,No=1,UNo=2,SolN=8]{1+(1+x**2)/(1+x)}{5}.\\
+\SolutionSeuil[Calculatrice,Precision=3,No=1,UNo=2,SolN=8]{1+(1+x**2)/(1+x)}{5}.\\
+\end{codetex}
+
+\subsection{Exemple d'utilisation}
+
+\begin{codetex}[]
+Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
+on obtient le tableau de valeurs suivant :
+\begin{tabular}{c|c}
+ $n$ & $u_n$ \\ \hline
+ 1 & 2 \\
+ \xintFor* #1 in {\xintSeq{2}{8}} \do {#1 & \CalculTermeRecurrence[No=1,UNo=2,N=#1]{1+(1+x**2)/(1+x)} \\}
+\end{tabular}
+\end{codetex}
+
+\newpage
+
\section{Suites récurrentes et \og toile \fg}\label{recurr}
\subsection{Idée}
@@ -994,7 +1169,7 @@ L'idée est d'obtenir une commande pour tracer (en \TikZ) la \og toile \fg{} per
\smallskip
-Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{recurrPL} pour afficher la \og toile \fg.
+Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{ToileRecurrence} pour afficher la \og toile \fg.
\end{codeidee}
\subsection{Commandes}
@@ -1176,7 +1351,7 @@ Les sujets d'examens, depuis quelques années, peuvent comporter des \textit{cap
À la manière du {package} \ctex{tkz-tab}, l'environnement de référence est un environnement \TikZ, dans lequel les lignes sont créées petit à petit, à l'aide de nœuds qui peuvent être réutilisés à loisir ultérieurement.
\end{codeidee}
-\subsection{La commande \og \CalculFormelParametres \fg}
+\subsection{La commande \og CalculFormelParametres \fg}
\begin{codeinfo}
La première chose à définir est l'ensemble des paramètres \textit{globaux} de la fenêtre de calcul formel, à l'aide de \Cle{Clés}.
@@ -1478,6 +1653,10 @@ def trace_parabole_tableaux():
\smallskip
En \textit{partenariat} avec \ctex{tcolorbox}, on peut avoir une présentation de code Python !
+
+\smallskip
+
+\cmaj{2.0.2} Depuis la version \ctex{0.95} du package \ctex{piton}, \Cle{left-margin=auto} est disponible et activée dans \ctex{ProfLycee}.
\end{codeinfo}
\begin{codeattention}
@@ -3509,7 +3688,7 @@ L'utilisateur peut donc utiliser \og sa \fg{} méthode pour formater les résult
\begin{codetex}[listing only]
%avec un formatage manuel
-\num[exponent-mode=scientific]{\BinomP{100}{0.02}{10}}
+\num[exponent-mode=scientific]{\CalcBinomP{100}{0.02}{10}}
\end{codetex}
\begin{codesortie}
@@ -5238,6 +5417,16 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
\part{Historique}
+{\small \bverb|v 2.0.5|~:~~~~Correction d'un bug avec les calculs de suites récurrentes (page \pageref{calcrecurr})
+
+{\small \bverb|v 2.0.4|~:~~~~Ajout d'une commande pour une présentation de solution par TVI (page \pageref{solutiontvi})
+
+{\small \bverb| |~:~~~~Correction d'un bug avec \textsf{Arbre=3x3} (page \pageref{arbresprobas})
+
+{\small \bverb|v 2.0.3|~:~~~~Commandes pour des suites récurrentes \textit{simples} (page \pageref{calcrecurr})
+
+{\small \bverb|v 2.0.2|~:~~~~Option \textsf{left-margin=auto} pour le package \textsf{piton} (page \pageref{pythonpiton})
+
{\small \bverb|v 2.0.1|~:~~~~Chargement du package \textsf{piton} uniquement si compilation en \LuaLaTeX{} (page \pageref{pythonpiton})
{\small \bverb|v 2.0.0|~:~~~~Refonte du code source avec modification des commandes}
diff --git a/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty b/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty
index 4e32d0963f9..88024246143 100644
--- a/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty
+++ b/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty
@@ -3,14 +3,18 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/11/06 2.0.1 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2022/11/20 2.0.5 Aide pour l'utilisation de LaTeX en lycee]
+% 2.0.5 Correction d'un bug avec les calculs en valeurx exactes avec les suites récurrentes...
+% 2.0.4 Ajout d'une commande pour présenter un balayage (TVI) + calculs suites récurrentes
+% 2.0.3Correction d'un bug avec les arbres 3x3
+% 2.0.2 Ajout de l'option auto-margin sur piton
% 2.0.1 Chargement de piton uniquement si lua...
% 2.0.0 Refonte des commandes, des options, et de la documentation !!!
% ------------------------------------------------------------------
% 1.3.7 Ajout d'un environnement simplifié pour du code python via piton
% 1.3.6 Ajout d'un "générateur" de trinômes (ou mise en forme basique)
% 1.3.5 Correction de bugs sur les calculs de probas (loi géométrique)
-% 1.3.4 Ajout des calculs de probas geomtriques et hypergeometriques + petits schémas probas
+% 1.3.4 Ajout des calculs de probas geométriques et hypergeometriques + petits schémas probas
% 1.3.3 Ajout de commandes pour des arbres de probas classiques, en tikz
% 1.3.2 Correction d'une commande liée à la conversion bintohex (suppression clé trait)
% 1.3.1 Ajout d'une option pour ne pas afficher les bords des cases en pixelart
@@ -65,13 +69,14 @@
\RequirePackage{ifthen}
\RequirePackage{xparse}
\RequirePackage{xkeyval}
-\RequirePackage{xfp}
+%\RequirePackage{xfp} %plus utile
\RequirePackage{xstring}
\RequirePackage{xintexpr}
\RequirePackage{xintbinhex}
\RequirePackage{simplekv}
\RequirePackage{listofitems}
\RequirePackage{tabularray}
+\RequirePackage{hvlogos}
\RequirePackage{siunitx} %test avec v3
\sisetup{%
locale=FR,%
@@ -121,6 +126,23 @@
\tcbuselibrary{minted}
\fi
+%-----------PRESENTATIONDECODES--------------
+\NewTCBListing{PresentationCode}{ O{ForestGreen} m }{%
+ sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,%
+ colback=#1!5!white,colframe=#1!75!black,colbacklower=White,%
+ attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,%
+ boxed title style={%
+ colframe=#1!75!black,colback=#1!15!white,%
+ ,sharp corners=downhill,arc=12pt,%
+ },%
+ fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,%
+ listing options={%
+ style=tcblatex,basicstyle=\footnotesize\ttfamily,%
+ keywordstyle=\bfseries\color{Blue},tabsize=4,%
+ },%
+ #2
+}
+
%---------------SPLINES----------------------
%------commande utile pour extraire des infos d'une liste
\newcommand\extractcoeff[2]{% #1=liste & #2=numero
@@ -597,7 +619,7 @@
\useKVdefault[envpiton]%
\setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
\ifboolKV[envpiton]{Lignes}%si lignes=true
- {\PitonOptions{left-margin=12.75pt,line-numbers}}%
+ {\PitonOptions{left-margin=auto,line-numbers}}%
{\PitonOptions{}}%
\begin{tcolorbox}[stylepythontex,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontlower=\small,\CODPITalign]
}%
@@ -971,7 +993,7 @@
Option={}
}
-\newcommand\EcritureEnsemble[2][1]{%
+\newcommand\EcritureEnsemble[2][]{%
\useKVdefault[kvensemble]%
\setKV[kvensemble]{#1}%
\ifboolKV[kvensemble]{Mathpunct}%
@@ -986,9 +1008,9 @@
{%si oui := fraction
\StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
\StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
- \ifblank{#1}{\ensuremath{\frac{\numerateur}{\denominateur}}}{}%si l'argument optionnel est vide
- \IfStrEq{#1}{d}{\ensuremath{\dfrac{\numerateur}{\denominateur}}}{}%si l'arg opt est d
- \IfStrEq{#1}{t}{\ensuremath{\tfrac{\numerateur}{\denominateur}}}{}%si l'arg opt est t
+ \ifblank{#1}{\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'argument optionnel est vide
+ \IfStrEq{#1}{d}{\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'arg opt est d
+ \IfStrEq{#1}{t}{\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'arg opt est t
}{%si non := entier
\num{\calculargument}%on affiche l'entier, avec le package siunitx
}
@@ -2707,7 +2729,7 @@
\coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
\node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
\node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
\node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
\node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
\node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
@@ -2893,7 +2915,7 @@
\coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
\node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
\node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
\node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
\node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
\node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
@@ -3125,4 +3147,128 @@
}{}%
}
+%================TVISOLUTION============= OK!
+\defKV[dichoto]{%
+ NomFct=\def\DHTnomfct{#1},%
+ va=\def\DHTva{#1},%
+ vb=\def\DHTvb{#1},%
+ Precision=\def\DHTprec{#1},%
+ NomSol=\def\DHTnomsol{#1},%
+ Stretch=\def\DHTstretch{#1}
+}
+
+\setKVdefault[dichoto]{%
+ NomFct=f,%
+ Precision=2,%
+ NomSol=\alpha,%
+ Stretch=1.15,%
+ Balayage=false,%
+ Calculatrice=false,%
+ Majuscule=true
+}
+
+\newcommand\SolutionTVI[3][]{%
+ \useKVdefault[dichoto]%
+ \setKV[dichoto]{#1}%
+ \xintdeffloatfunc varfct(x) := #2 ;%
+ \ifboolKV[dichoto]{Balayage}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar balayage, on obtient }{}%
+ \ifboolKV[dichoto]{Calculatrice}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
+ \ensuremath{%
+ \left\lbrace \begin{tblr}{stretch=\DHTstretch,colsep=1pt,rll}%
+ {\DHTnomfct}{\left( \num{\DHTva} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTva),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTva)-#3}}{0}{> \num{#3}}{< \num{#3}} \: \\ %
+ {\DHTnomfct}{\left( \num{\DHTvb} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTvb),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTvb)-#3}}{0}{> \num{#3}}{< \num{#3}} \:%
+ \end{tblr}%
+ \right|%
+ \Rightarrow%
+ \num{\DHTva} < \DHTnomsol < \num{\DHTvb}%
+ }%
+}
+
+%=================CALCSRECUR============= OK!
+\NewDocumentCommand\CalculInterneTermeRecurrence{ m m m m }{%pas forcément utile
+ \xintdeffloatfunc varfctrecur(x) := #1 ;%
+ \xdef\vartmp{#3}%
+ \IfEq{#4}{\inteval{#2+1}}%
+ {\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
+ {%
+ \foreach \i in {1,2,...,\inteval{#4-#2}}%
+ {\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
+ }%
+ \xintFloatToDecimal{\vartmp}%
+}
+
+\defKV[calculsuiterecur]{%
+ No=\def\SRninit{#1},%
+ UNo=\def\SRuninit{#1},%
+ Precision=\def\SRprec{#1},%
+ N=\def\SRnfinal{#1}
+ %Format=\def\SRformat{#1},%
+ %OptionFrac=\def\SRoptfrac{#1}
+}
+
+\setKVdefault[calculsuiterecur]{%
+ Precision=3
+ %Format=Arrondi,%
+ %OptionFrac={}
+}
+
+\NewDocumentCommand\CalculTermeRecurrence{ O{} m }{%attention avec les calculs en exact :-(
+ \useKVdefault[calculsuiterecur]%
+ \setKV[calculsuiterecur]{#1}%
+ \xintdeffloatfunc varfct(x) := #2 ;%
+ \xdef\vartmp{\fpeval{\SRuninit}}%
+ \IfEq{\SRnfinal}{\inteval{\SRninit+1}}%
+ {\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
+ {%
+ \foreach \i in {1,2,...,\inteval{\SRnfinal-\SRninit}}%
+ {\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
+ }%
+ %\num[minimum-decimal-digits=\SRprec]{\xintfloateval{round(\vartmp,\SRprec)}}%
+ \num{\xintfloateval{round(\vartmp,\SRprec)}}%
+ %\IfStrEq{\SRformat}{Fraction}{\ConversionFraction[\SRoptfrac]{\xinteval{\vartmp}}}{}%
+ %\IfStrEq{\SRformat}{Brut}{\xinteval{\vartmp}}{}%
+ %\IfStrEq{\SRformat}{Decimal}{\num{\xintfloateval{\vartmp}}}{}%
+ %\IfStrEq{\SRformat}{BrutDecimal}{\xintFloatToDecimal{\vartmp}}{}%
+}
+
+\defKV[suiteseuil]{%
+ No=\def\SEUILindiceinit{#1},%
+ UNo=\def\SEUILtermeinit{#1},%
+ NomSuite=\def\SEUILnomsuite{#1},%
+ SolN=\def\SEUILn{#1},%
+ Precision=\def\SEUILprec{#1},%
+ Stretch=\def\SEUILstretch{#1},%
+ Sens=\def\SEUILsens{#1}
+}
+
+\setKVdefault[suiteseuil]{%
+ NomSuite=u,%
+ Precision=3,%
+ Stretch=1.15,%
+ Balayage=false,%
+ Calculatrice=false,%
+ Majuscule=true,%
+ Sens=>
+}
+
+\newcommand\SolutionSeuil[3][]{%1=options + %2 = fonction + %3 = seuil
+ \useKVdefault[suiteseuil]%
+ \setKV[suiteseuil]{#1}%
+ \def\SEUILnmu{\inteval{\SEUILn-1}}%
+ \IfEq{\SEUILsens}{>}%
+ {\def\SensDeb{\leqslant}\def\SensFin{>}}%
+ {\def\SensDeb{\geqslant}\def\SensFin{<}}%
+ \ifboolKV[suiteseuil]{Balayage}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar balayage, on obtient }{}%
+ \ifboolKV[suiteseuil]{Calculatrice}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
+ \ensuremath{%
+ \left\lbrace \begin{tblr}{stretch=\SEUILstretch,colsep=1pt,rll}%
+ \SEUILnomsuite_{\SEUILnmu} &\approx \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} & \SensDeb\num{#3} \: \\ %
+ \SEUILnomsuite_{\SEUILn} &\approx \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} & \SensFin\num{#3} \: %
+ \end{tblr}%
+ \right|%
+ \Rightarrow%
+ n \geqslant \SEUILn%
+ }%
+}
+
\endinput \ No newline at end of file