diff options
author | Karl Berry <karl@freefriends.org> | 2022-11-21 20:50:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-11-21 20:50:48 +0000 |
commit | 50fb90792b5ec87def8bcb5506575df7ed1b1c0d (patch) | |
tree | ff280bb0658132304f23431176cff2fc867b94f4 /Master/texmf-dist | |
parent | d0db1dd18e13db50d0ececacde9ec66069b149cf (diff) |
proflycee (21nov22)
git-svn-id: svn://tug.org/texlive/trunk@65070 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf | bin | 717177 -> 738301 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex | 217 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty | 166 |
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 Binary files differindex f59266ae1d5..d3d0cb3baaa 100644 --- a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf +++ b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf 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 |