summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-06-10 20:59:59 +0000
committerKarl Berry <karl@freefriends.org>2024-06-10 20:59:59 +0000
commitab8375ed291cedb97639c12d406be06225a92657 (patch)
tree86e149a4db3bcfc27cb6c988243af625142a7320 /Master/texmf-dist
parentb028cdea991beeed62cb0468fcf576c6d7ceef4f (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.pdfbin751560 -> 767807 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex98
-rw-r--r--Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty143
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
index 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
Binary files differ
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},%