texlive[71476] Master/texmf-dist: tkz-grapheur (7jun24)

commits+karl at tug.org commits+karl at tug.org
Mon Jun 10 22:59:59 CEST 2024


Revision: 71476
          https://tug.org/svn/texlive?view=revision&revision=71476
Author:   karl
Date:     2024-06-10 22:59:59 +0200 (Mon, 10 Jun 2024)
Log Message:
-----------
tkz-grapheur (7jun24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex
    trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty

Modified: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex	2024-06-10 20:59:49 UTC (rev 71475)
+++ trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex	2024-06-10 20:59:59 UTC (rev 71476)
@@ -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,8 +55,10 @@
 			\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}
 		\end{center}
@@ -206,7 +208,7 @@
 	\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 @@
 
 \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 @@
 	\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,8 +1427,84 @@
 \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}
 
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
@@ -1642,6 +1718,7 @@
 	\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 @@
 
 \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}

Modified: trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty	2024-06-10 20:59:49 UTC (rev 71475)
+++ trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty	2024-06-10 20:59:59 UTC (rev 71476)
@@ -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 at loadtikzbabel \@loadtikzbabeltrue
 \DeclareOption{nontikzbabel}{\@loadtikzbabelfalse}%
+\newif\if at loadxintreg \@loadxintregtrue
+\DeclareOption{nonxintreg}{\@loadxintregfalse}%
 \DeclareOption*{}
 \ProcessOptions\relax
 
@@ -25,6 +28,9 @@
 \RequirePackage{xintexpr}
 \RequirePackage{xstring}
 \RequirePackage{listofitems}
+\if at loadxintreg
+	\RequirePackage{xint-regression}
+\fi
 
 %====SIUNITX
 \if at loadsiunitx
@@ -1290,6 +1296,7 @@
 \defKV[GraphiqueTikzRegLin]{%
 	Arrondis=\def\pflarrondisreglin{#1},
 	Nom=\def\pflnamereglin{#1},
+	NomPara=\def\pflnameregquad{#1},
 	Debut=\def\pflreglinmin{#1},
 	Fin=\def\pflreglinmax{#1}
 }
@@ -1296,11 +1303,14 @@
 \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 at 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},%



More information about the tex-live-commits mailing list.