diff options
author | Karl Berry <karl@freefriends.org> | 2024-06-10 20:59:59 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-06-10 20:59:59 +0000 |
commit | ab8375ed291cedb97639c12d406be06225a92657 (patch) | |
tree | 86e149a4db3bcfc27cb6c988243af625142a7320 /Master/texmf-dist | |
parent | b028cdea991beeed62cb0468fcf576c6d7ceef4f (diff) |
tkz-grapheur (7jun24)
git-svn-id: svn://tug.org/texlive/trunk@71476 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf | bin | 751560 -> 767807 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex | 98 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty | 143 |
3 files changed, 224 insertions, 17 deletions
diff --git a/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf b/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf Binary files differindex 03f337aee4b..808c1421a71 100644 --- a/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf +++ b/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf diff --git a/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex b/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex index 579a131c331..4d58cdb3ace 100644 --- a/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex +++ b/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex @@ -29,8 +29,8 @@ \hypersetup{pdfborder=0 0 0} \usepackage[margin=2cm]{geometry} \setlength{\parindent}{0pt} -\def\TPversion{0.1.2} -\def\TPdate{31/05/2024} +\def\TPversion{0.1.3} +\def\TPdate{06/06/2024} \usepackage{soul} \usepackage{codehigh} \usepackage{tabularray} @@ -55,7 +55,9 @@ \begin{tabular}{c} {\Huge \texttt{tkz-grapheur [fr]}}\\ \\ - {\LARGE Un système de grapheur, basé sur \TikZ.}\\ + {\LARGE Un système de grapheur,}\\ + \\ + {\LARGE basé sur \textsf{\TikZ} et \textsf{xint}.}\\ \\ {\small \texttt{Version \TPversion{} -- \TPdate}} \end{tabular} @@ -206,7 +208,7 @@ Il sera ensuite possible : \item de tracer des courbes ; \item de déterminer graphiquement des images ou des antécédents ; \item de rajouter des éléments de dérivation (tangentes) ou d'intégration (domaine) ; - \item de tracer une droite d'ajustement linéaire. + \item de tracer une droite d'ajustement linéaire ou la courbe d'un autre ajustement. \end{itemize} \subsection{Packages utilisés, et options du package} @@ -217,10 +219,8 @@ Le package utilise : \begin{itemize} \item \MontreCode{tikz}, avec les librairies \MontreCode{calc,intersections,patterns,patterns.meta,bbox} ; - \item \MontreCode{simplekv} ; - \item \MontreCode{xintexpr} ; - \item \MontreCode{xstring} ; - \item \MontreCode{listofitems}. + \item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{xstring}, \MontreCode{listofitems} ; + \item \MontreCode{xint-regression}\footnote{CTAN : \url{https://ctan.org/pkg/xint-regression}.} (pour les régressions, désactivable via \MontreCode{[nonxintreg]}). \end{itemize} \smallskip @@ -566,7 +566,7 @@ Les \MontreCode{[clés]}, optionnelles, disponibles sont : \DefinirPts[Aff,Couleur=gray]{A/-4/3,B/2/0,C/0/-1} \TracerDroite[Couleur=red]{(-2,-1)}{(2,4)} \TracerDroite[Couleur=blue,Debut=-5,Fin=3]{(A)}{(B)} - \TracerDroite[Couleur=olive,Pente]{(C)}{(0.25)} + \TracerDroite[Couleur=olive,Pente]{(C)}{0.25} \end{GraphiqueTikz} \end{tcblisting} @@ -1427,6 +1427,82 @@ Dans ce cas, de nouvelles clés sont disponibles : \end{GraphiqueTikz} \end{tcblisting} +\subsection{Autres régressions}\label{regressions} + +En partenariat avec le package \MontreCode{xint-regression}, chargé par le package (mais \textit{désactivable} via l'option \MontreCode{[nonxintreg]}), il est possible de travailler sur d'autres types de régression : + +\begin{itemize} + \item linéaire \fbox{$ax+b$} ; + \item quadratique \fbox{$ax^2+bx+c$} ; + \item cubique \fbox{$ax^3+bx^2+cx+d$} ; + \item puissance \fbox{$ax^b$} ; + \item exponentielle \fbox{$ab^x$} ou \fbox{$e^{ax+b}$} ou \fbox{$b e^{ax}$} ou \fbox{$C + be^{ax}$} ; + \item logarithmique \fbox{$a+b\ln(x)$} ; + \item hyperbolique \fbox{$a+\displaystyle\frac{b}{x}$}. +\end{itemize} + +La commande, similaire à celle de définition d'une courbe, est : + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +\TracerAjustement[clés]<non fct>{type}<arrondis>{listex}{listey} +\end{tcblisting} + +Les \MontreCode{[clés]} disponibles sont, de manière classique : + +\begin{itemize} + \item \MontreCode{Debut} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmin} par défaut) ; + \item \MontreCode{Fin} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmax} par défaut) ; + \item \MontreCode{Nom} : nom de la courbe (important pour la suite !) ; + \item \MontreCode{Couleur} : couleur du tracé (\MontreCode{black} par défaut) ; + \item \MontreCode{Pas} : pas du tracé (il est déterminé \textit{automatiquement} au départ mais peut être modifié). +\end{itemize} + +\pagebreak + +Le deuxième argument, optionnel et entre \MontreCode{<...>} permet de nommer la fonction de régression. + +Le troisième argument, obligatoire et entre \MontreCode{\{...\}} permet de choisir le type de régression, parmi : + +\begin{itemize} + \item \MontreCode{lin} : linéaire \fbox{$ax+b$} ; + \item \MontreCode{quad} : quadratique \fbox{$ax^2+bx+c$} ; + \item \MontreCode{cub} : cubique \fbox{$ax^3+bx^2+cx+d$} ; + \item \MontreCode{pow} : puissance \fbox{$ax^b$} ; + \item \MontreCode{expab} : exponentielle \fbox{$ab^x$} + \item \MontreCode{hyp} : hyperbolique \fbox{$a+\displaystyle\frac{b}{x}$} ; + \item \MontreCode{log} : logarithmique \fbox{$a+b\ln(x)$} ; + \item \MontreCode{exp} : exponentielle \fbox{$e^{ax+b}$} ; + \item \MontreCode{expalt} : exponentielle \fbox{$be^{ax}$} ; + \item \MontreCode{expoff=C} : exponentielle \fbox{$C + be^{ax}$}. +\end{itemize} + +Le quatrième argument, optionnel et entre \MontreCode{<...>} permet de spécifier le ou les arrondis pour les coefficients de la fonction de régression. + +Les deux derniers arguments sont les listes des valeurs de X et de Y. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\def\LISTEXX{0,50,100,140}\def\LISTEYY{275,290,315,350}% +ListeX := \LISTEXX\\ +ListeY := \LISTEYY + +\begin{GraphiqueTikz} + [x=0.05cm,y=0.04cm,Xmin=0,Xmax=160,Xgrille=20,Xgrilles=10, + Origy=250,Ymin=250,Ymax=400,Ygrille=25,Ygrilles=5] + %préparation de la fenêtre + \TracerAxesGrilles[Elargir=2.5mm,Police=\footnotesize]{auto}{auto} + %nuage de points + \TracerNuage[Style=o,CouleurNuage=red]{\LISTEXX}{\LISTEYY} + %ajustement expoffset + \TracerAjustement[Couleur=blue,Nom=ajust]<ajust>{expoff=250}{\LISTEXX}{\LISTEYY} + %exploitations + \PlacerImages[Couleurs=cyan/magenta,Traits]{ajust}{80} + \PlacerAntecedents[Style=x,Couleurs=blue/green!50!black,Traits]{ajust}{325} +\end{GraphiqueTikz} + +\xintexpoffreg[offset=250,round=3/1]{\LISTEXX}{\LISTEYY}% +On obtient $y=250+\num{\expregoffb}\text{e}^{\num{\expregoffa}x}$ +\end{tcblisting} + \pagebreak \section{Codes source des exemples de la page d'accueil} @@ -1642,6 +1718,7 @@ Les commandes disponibles sont : \lstcmd{loi khideux~~~~}{\DefinirLoiKhiDeux}{loikhideux} \lstcmd{loi khideux~~~~}{\TracerLoiKhiDeux}{loikhideux} \lstcmd{stats 2 var~~~~}{\TracerNuage}{nuage} + \lstcmd{regressions~~~~}{\TracerAjustement}{regressions} \lstcmd{arrondi~~~~~~~~}{\ArrondirNum}{numarrond} \lstcmd{nb aléat~~~~~~~}{\ChoisirNbAlea}{nbalea} \end{description} @@ -1652,7 +1729,8 @@ Les commandes disponibles sont : \begin{quote} \begin{verbatim} -0.1.1 : Droites + Extremums +0.1.3 : Ajout de régressions avec le package xint-regression +0.1.2 : Droites + Extremums 0.1.1 : Densité loi normale et khi deux + Marquage points + Améliorations 0.1.0 : Version initiale \end{verbatim} diff --git a/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty b/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty index 8fa5917f56b..1efc551b5bd 100644 --- a/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty +++ b/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty @@ -2,9 +2,10 @@ % licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tkz-grapheur}[2024/05/31 0.1.2 Des outils en TikZ pour travailler comme avec un grapheur] +\ProvidesPackage{tkz-grapheur}[2024/06/06 0.1.3.Des outils en TikZ pour travailler comme avec un grapheur] %====HISTORIQUE +% v 0.1.3 Régressions, avec xintreg (désactivable) % v 0.1.2 Max/Min + Droites % v 0.1.1 Densité loi normale + khi deux + Améliorations diverses % v 0.1.0 Version initiale [fr] @@ -14,6 +15,8 @@ \DeclareOption{nonsiunitx}{\@loadsiunitxfalse}% \newif\if@loadtikzbabel \@loadtikzbabeltrue \DeclareOption{nontikzbabel}{\@loadtikzbabelfalse}% +\newif\if@loadxintreg \@loadxintregtrue +\DeclareOption{nonxintreg}{\@loadxintregfalse}% \DeclareOption*{} \ProcessOptions\relax @@ -25,6 +28,9 @@ \RequirePackage{xintexpr} \RequirePackage{xstring} \RequirePackage{listofitems} +\if@loadxintreg + \RequirePackage{xint-regression} +\fi %====SIUNITX \if@loadsiunitx @@ -1290,17 +1296,21 @@ \defKV[GraphiqueTikzRegLin]{% Arrondis=\def\pflarrondisreglin{#1}, Nom=\def\pflnamereglin{#1}, + NomPara=\def\pflnameregquad{#1}, Debut=\def\pflreglinmin{#1}, Fin=\def\pflreglinmax{#1} } \setKVdefault[GraphiqueTikzRegLin]{ CouleurNuage=black, CouleurDroite=black, + CouleurPara=black, Arrondis={}, Debut={\pflxmin}, Fin={\pflxmax}, - Nom=reglin, + Nom=reglin,% + NomPara=quadreg,% TracerDroite=false,% + TracerParabole=false,% Style=o } @@ -1318,15 +1328,11 @@ \foreach \i in {1,...,\LXlen}{% \itemtomacro\LX[\i]\tmpmavalx% \itemtomacro\LY[\i]\tmpmavaly% - \MarquerPts*[Style={\useKV[GraphiqueTikzRegLin]{Style}},Couleur={\useKV[GraphiqueTikzRegLin]{CouleurNuage}}]{(\tmpmavalx,\tmpmavaly)} - %\filldraw[{\useKV[GraphiqueTikzRegLin]{CouleurNuage}}] ({\LX[\i]},{\LY[\i]}) circle[pflpointnuage] ; + \MarquerPts*[Style={\useKV[GraphiqueTikzRegLin]{Style}},Couleur={\useKV[GraphiqueTikzRegLin]{CouleurNuage}}]{(\tmpmavalx,\tmpmavaly)}% } %droite de régression \ifboolKV[GraphiqueTikzRegLin]{TracerDroite}% {% - %mini LX - \def\tmpxminreglin{\fpeval{min(#2)}} - \def\tmpxmaxreglin{\fpeval{max(#2)}} %somme des LX et des LY OK \xdef\LXSomme{0} \xdef\LYSomme{0} @@ -1381,8 +1387,131 @@ \end{scope} }% {}% + \ifboolKV[GraphiqueTikzRegLin]{TracerParabole}% + {% + %somme importantes + \xdef\LXSomme{0}% + \xdef\LXCSomme{0}% + \xdef\LYSomme{0}% + \xdef\LXXSomme{0}% + \xdef\LXYSomme{0}% + \xdef\LXXCSomme{0}% + \xdef\LXCXCSomme{0}% + \xdef\LXCYSomme{0}% + %calculs + \foreach \i in {1,2,...,\LNB}{% + \xdef\LXSomme{\xintfloateval{\LXSomme+\LX[\i]}}% + \xdef\LXCSomme{\xintfloateval{\LXCSomme+(\LX[\i])^2}}% + }% + \foreach \i in {1,2,...,\LNB}{% + \xdef\LYSomme{\xintfloateval{\LYSomme+\LY[\i]}}% + }% + \xdef\LXmoy{\xintfloateval{\LXSomme/\LNB}}% + \xdef\LYmoy{\xintfloateval{\LYSomme/\LNB}}% + \xdef\LXCmoy{\xintfloateval{\LXCSomme/\LNB}}% + %calculs suites + \foreach \i in {1,2,...,\LNB}{% + \xdef\LXXSomme{\xintfloateval{\LXXSomme+(\LX[\i]-\LXmoy)^2}}% + \xdef\LXYSomme{\xintfloateval{\LXYSomme+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}}% + \xdef\LXXCSomme{\xintfloateval{\LXXCSomme+(\LX[\i]-\LXmoy)*((\LX[\i])*(\LX[\i])-\LXCmoy)}}% + \xdef\LXCXCSomme{\xintfloateval{\LXCXCSomme+((\LX[\i])^2-\LXCmoy)^2}}% + \xdef\LXCYSomme{\xintfloateval{\LXCYSomme+((\LX[\i])^2-\LXCmoy)*(\LY[\i]-\LYmoy)}}% + }% + %COEFFS OK + \IfStrEq{\pflarrondisreglin}{}% + {% + \xdef\tmpcoeffregquadb{\xintfloateval{(\LXYSomme*\LXCXCSomme-\LXCYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2)}} + \xdef\tmpcoeffregquada{\xintfloateval{(\LXCYSomme*\LXXSomme-\LXYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2)}} + \xdef\tmpcoeffregquadc{\xintfloateval{\LYmoy-\tmpcoeffregquadb*\LXmoy-\tmpcoeffregquada*\LXCmoy}} + }% + {% + \xdef\tmpcoeffregquadb{\xintfloateval{round((\LXYSomme*\LXCXCSomme-\LXCYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2),\pflarrondisreglin)}} + \xdef\tmpcoeffregquada{\xintfloateval{round((\LXCYSomme*\LXXSomme-\LXYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2),\pflarrondisreglin)}} + \xdef\tmpcoeffregquadc{\xintfloateval{round(\LYmoy-\tmpcoeffregquadb*\LXmoy-\tmpcoeffregquada*\LXCmoy,\pflarrondisreglin)}} + }% + \xintdeffloatfunc #2(x) := (\tmpcoeffregquada)*x^2+(\tmpcoeffregquadb)*x+\tmpcoeffregquadc ; + %tracé + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \draw[pflcourbe,{\useKV[GraphiqueTikzRegLin]{CouleurPara}},name path global=\pflnameregquad,samples=250,domain=\pflreglinmin:\pflreglinmax] plot (\x,{\tmpcoeffregquada*(\x)^2+\tmpcoeffregquadb*\x+\tmpcoeffregquadc}) ; + \end{scope} + }% + {}% } +\if@loadxintreg +%régressions alternatives +\NewDocumentCommand\TracerAjustement{ O{} D<>{cbajust} m D<>{} m m }{% + %1=options de tracés + %2=nom courbe + %3=type + %4=arrondis + %5=liste X + %6=liste Y + \IfStrEq{#3}{lin}% + {% + \xintlinreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\linrega*x+\linregb}% + }% + {}% + \IfStrEq{#3}{quad}% + {% + \xintquadreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\quadrega*x^2+\quadregb*x+\quadregc}% + }% + {}% + \IfStrEq{#3}{pow}% + {% + \xintpowreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\powrega*x^(\powregb)}% + }% + {}% + \IfStrEq{#3}{expab}% + {% + \xintexpabreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\expabrega*(\expabregb)^x}% + }% + {}% + \IfStrEq{#3}{hyp}% + {% + \xinthypreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\hyprega+(\hypregb)/x}% + }% + {}% + \IfStrEq{#3}{log}% + {% + \xintlogreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\logrega+(\logregb)*log(x)}% + }% + {}% + \IfStrEq{#3}{exp}% + {% + \xintexpreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{exp(\exprega*x+\expregb)}% + }% + {}% + \IfStrEq{#3}{expalt}% + {% + \xintexpreg[Alt,round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\expregb*exp(\exprega*x)}% + }% + {}% + \IfStrEq{#3}{cub}% + {% + \xintcubreg[round={#4}]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\cubrega*x^3+\cubregb*x^2+\cubregc*x+\cubregd}% + }% + {}% + \IfSubStr{#3}{expoff}% + {% + \StrBehind{#3}{=}[\expoffset]% + \xintexpoffreg[round={#4},offset=\expoffset]{#5}{#6}% + \DefinirFonction[#1,Trace]<#2>{\expoffset+\expregoffb*exp(\expregoffa*x)}% + }% + {}% +} +\fi + %===IMAGES & ANTÉCÉDENTS \defKV[GraphiqueTikzImg]{ Couleurs=\def\pflimgcolors{#1},% |