From 73abb311c03e955ad9f7b7464390a5722b20b915 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 11 Feb 2023 03:01:17 +0000 Subject: CTAN sync 202302110301 --- .../contrib/resolsysteme/doc/ResolSysteme-doc.pdf | Bin 132738 -> 154471 bytes .../contrib/resolsysteme/doc/ResolSysteme-doc.tex | 264 ++++++++++++++++----- .../doc/ResolSysteme-exemples-pyluatex.pdf | Bin 98310 -> 108019 bytes .../doc/ResolSysteme-exemples-pyluatex.tex | 45 +++- .../resolsysteme/doc/ResolSysteme-exemples.pdf | Bin 138727 -> 144719 bytes .../resolsysteme/doc/ResolSysteme-exemples.tex | 28 ++- 6 files changed, 266 insertions(+), 71 deletions(-) (limited to 'macros/latex/contrib/resolsysteme/doc') diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf index 9e5d8c6476..92d5440f79 100644 Binary files a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf and b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf differ diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex index 28b9e5b397..1f7bc60547 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex @@ -2,9 +2,9 @@ % arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} % arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') -\documentclass[a4paper,11pt]{article} -\def\TPversion{0.1.2} -\def\TPdate{8 Février 2023} +\documentclass[french,a4paper,11pt]{article} +\def\TPversion{0.1.3} +\def\TPdate{10 Février 2023} \usepackage[executable=python.exe]{pyluatex} \usepackage[table,svgnames]{xcolor} \usepackage{amsmath,amssymb} @@ -55,6 +55,7 @@ \usepackage[french]{babel} \usepackage[most]{tcolorbox} +\usetikzlibrary{calc} \tcbuselibrary{minted} \NewTCBListing{PresentationCode}{ O{blue} m }{% sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,% @@ -85,7 +86,23 @@ #2 } +\tcbset{vignettes/.style={% + nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,% + boxrule=0.75pt,left=7pt,right=1pt,top=0pt,bottom=0.25pt,% + } +} + +\tcbset{vignetteMaJ/.style={% + fontupper={\vphantom{pf}\footnotesize\ttfamily}, + vignettes,colframe=ForestGreen!50!black,coltitle=white,colback=ForestGreen!25,% + overlay={\begin{tcbclipinterior}% + \fill[fill=ForestGreen!75]($(interior.south west)$) rectangle node[rotate=90]{\tiny \sffamily{\textcolor{Black}{\scalebox{0.85}[0.75]{\textbf{MàJ}}}}} ($(interior.north west)+(5pt,0pt)$);% + \end{tcbclipinterior}} + } +} + \newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}} +\newcommand\cmaj[1]{\tcbox[vignetteMaJ]{#1}\xspace} \begin{document} @@ -106,9 +123,9 @@ \begin{tabular}{c} {\Huge \texttt{ResolSysteme [fr]}}\\ \\ - {\LARGE Des outils pour des} \\ + {\LARGE Des outils pour des matrices, } \\ \\ - {\LARGE systèmes linéaires,} \\ + {\LARGE des systèmes linéaires,} \\ \\ {\LARGE avec xint ou pyluatex.} \\ \end{tabular} @@ -121,8 +138,6 @@ \end{minipage} \end{center} -\vspace{0.5cm} - \begin{center} \begin{tabular}{c} \texttt{Cédric Pierquet}\\ @@ -137,36 +152,44 @@ \smallskip -{$\blacktriangleright$~~Des commandes pour calculer le déterminant et l'inverse de matrices carrées (2x2, 3x3 ou 4x4).} +{$\blacktriangleright$~~Quelques commandes pour effectuer des calculs matriciels (produit, carré, puissance).} \smallskip -{$\blacktriangleright$~~Des commandes pour résoudre des systèmes linéaires (2x2, 3x3 ou 4x4).} +{$\blacktriangleright$~~Des commandes pour calculer le déterminant et l'inverse de matrices carrées (2x2, 3x3 ou 4x4).} \smallskip +{$\blacktriangleright$~~Des commandes pour résoudre des systèmes linéaires (2x2, 3x3 ou 4x4).} + \vspace{1cm} \begin{center} \begin{tcolorbox}[enhanced,colframe=ForestGreen,colback=lightgray!5,center,width=0.95\linewidth,drop fuzzy shadow=lightgray] + \verb|$M=\AffMatrice(1,2 § 3,4)$, et $M^3=\MatricePuissancePY(1,2 § 3,4)(3)$.| + + \medskip + + La matrice $M=\AffMatrice(1,2 § 3,4)$ au cube vaut $M^3=\MatricePuissancePY(1,2 § 3,4)(3)$. + Le \textbf{déterminant} de $A=\begin{pNiceMatrix} -1&\frac12 \\ \frac12&4 \end{pNiceMatrix}$ est $\det(A)=\DetMatrice[dec](-1,0.5 § 1/2,4)$. \medskip - L'\textbf{inverse} de la matrice $A=\begin{pNiceMatrix} 1&2&3&4\\5&6&7&0\\1&1&1&1\\-2&-3&-5&-6 \end{pNiceMatrix}$ est $A^{-1}=\MatriceInversePY*[n](1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)$. + L'\textbf{inverse} de la matrice $A=\begin{pNiceMatrix} 1&2&3&4\\5&6&7&0\\1&1&1&1\\-2&-3&-5&-6 \end{pNiceMatrix}$ est $A^{-1}=\MatriceInversePY[n](1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)$. \medskip - La \textbf{solution} de $\systeme[xyzt]{y+z+t=1,x+z+t=-1,x+y+t=1,x+y+z=0}$ est $\mathcal{S}=\left\lbrace\SolutionSystemePY*[d](0,1,1,1 § 1,0,1,1 § 1,1,0,1 § 1,1,1,0)(1,-1,1,0)\right\rbrace$. + La \textbf{solution} de $\systeme[xyzt]{y+z+t=1,x+z+t=-1,x+y+t=1,x+y+z=0}$ est $\mathcal{S}=\left\lbrace\SolutionSystemePY[d](0,1,1,1 § 1,0,1,1 § 1,1,0,1 § 1,1,1,0)(1,-1,1,0)\right\rbrace$. \end{tcolorbox} \end{center} \vspace{0.5cm} -%\hfill{}\textit{Merci aux membres du groupe \faFacebook{} du \og Coin \LaTeX{} \fg{} pour leur aide et leurs idées !} +\hfill{}\textit{Merci à Denis Bitouzé et à Gilles Le Bourhis pour leurs retours et idées !} -\hfill{}\textit{Merci à Denis Bitouzé pour leurs retours et idées !} +\smallskip \vfill @@ -198,9 +221,10 @@ \subsection{Introduction} \begin{noteblock} -L'idée est de \textit{proposer} des outils pour travailler sur des systèmes linéaires (de taille réduite !) : +La package \textit{propose} des outils pour travailler sur des matrices ou des systèmes linéaires (de taille réduite !) : \begin{itemize} + \item en calculant des produits matriciels \textit{simples} (dimensions réduites) ; \item en affichant la \textbf{solution} (si elle existe) ; \item en affichant le \textbf{déterminant} et l'éventuelle \textbf{inverse} de la matrice des coefficients. \end{itemize} @@ -215,7 +239,7 @@ L'idée est de \textit{proposer} des outils pour travailler sur des systèmes li \item via \textsf{python} et le package \textsf{pyluatex} (à charger manuellement du fait des options spécifiques) pour des formats \textbf{2x2}, \textbf{3x3} ou \textbf{4x4}. \end{itemize} -Il n'est pas prévu -- pour le moment -- de travailler sur des matrices/systèmes plus grands. +Il n'est pas prévu -- pour le moment -- de travailler sur des matrices/systèmes plus grands, car l'idée est de pouvoir formater le résultat, ce qui se fait coefficient par coefficient. \end{importantblock} \begin{warningblock} @@ -232,9 +256,8 @@ La méthode par \textsf{python} utilise quoi qu'il en soit le module \texttt{sym Le package charge les packages suivantes : \begin{itemize} - \item \texttt{xintexpr} et \texttt{xinttools} ; + \item \texttt{xintexpr}, \texttt{xinttools}, \texttt{xstring} et \texttt{listofitems} ; \item \texttt{sinuitx}, \texttt{nicefrac} et \texttt{nicematrix} ; - \item \texttt{xstring} et \texttt{listofitems}. \end{itemize} Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} (obligatoire pour \textsf{pyluatex} !!) ou \textsf{xelatex}. @@ -248,6 +271,20 @@ Les nombres sont formatés par la commande \texttt{\textbackslash num} de \texts L'affichage des matrices est gérée par le package \textsf{nicematrix}, et des options spécifiques \textit{simples} pourront être placées dans les différentes commandes. \end{importantblock} +\subsection{Fichiers d'exemples} + +\begin{noteblock} +En marge de la présente documentation, compilée en \textsf{lualatex} avec \textsf{shell-escape}, deux fichiers avec des exemples d'utilisation sont proposés : + +\begin{itemize} + \item \texttt{ResolSysteme-exemples} pour les commandes disponibles en version classique (\textsf{xint}) ; + \item \texttt{ResolSysteme-exemples-pyluatex} pour les commandes disponibles en version python (\textsf{pyluatex}). +\end{itemize} +\vspace*{-\baselineskip}\leavevmode +\end{noteblock} + +\pagebreak + \subsection{Chargement du package, et option} \begin{importantblock} @@ -265,6 +302,16 @@ Le package peut donc se charger de deux manières différentes, suivant si l'uti \usepackage[pyluatex]{ResolSysteme} \end{PresentationCode} +\part{Historique} + +\verb|v0.1.3|~:~~~~Ajout de commandes pour du calcul matriciel (de taille raisonnable) + inversion comportement des commandes étoilées. + +\verb|v0.1.2|~:~~~~Ajout d'une commande d'affichage (formaté) d'une matrice 2x2, 3x3 ou 4x4. + +\verb|v0.1.1|~:~~~~Correction d'un bug avec le caractère \og ; \fg. + +\verb|v0.1.0|~:~~~~Version initiale. + \pagebreak \part{Commandes} @@ -287,7 +334,7 @@ En \textit{interne}, le code utilise une commande pour formater un résultat sou Concernant cette commande, qui est dans un bloc \texttt{ensuremath} : \begin{itemize} - \item la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} avant l'éventuelle fraction ; + \item \cmaj{0.1.3} la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} sur le numérateur ; \item le premier argument, \textit{optionnel} et entre \textsf{[...]} permet de spécifier un formatage du résultat : \begin{itemize} \item \Cle{t} pour l'affichage de la fraction en mode \textsf{tfrac} ; @@ -302,23 +349,18 @@ Concernant cette commande, qui est dans un bloc \texttt{ensuremath} : \end{tipblock} \begin{PresentationCode}{listing only} -\ConvVersFrac{-10+1/3*(-5/16)} %sortie par défaut (fraction avec - sur numérateur) - -\ConvVersFrac*{-10+1/3*(-5/16)} %sortie avec - avant la fraction - -\ConvVersFrac*[d]{-10+1/3*(-5/16)} %sortie en displaystyle - +\ConvVersFrac{-10+1/3*(-5/16)} %sortie par défaut +\ConvVersFrac*{-10+1/3*(-5/16)} %sortie fraction avec - sur numérateur +\ConvVersFrac[d]{-10+1/3*(-5/16)} %sortie en displaystyle \ConvVersFrac[n]{-10+1/3*(-5/16)} %sortie en nicefrac - \ConvVersFrac[dec=4]{-10+1/3*(-5/16)} %sortie en décimal arrondi à 0,0001 - \ConvVersFrac{2+91/7} %entier correctement formaté \end{PresentationCode} \begin{PresentationCode}{text only} \hfill\ConvVersFrac{-10+1/3*(-5/16)} \qquad \ConvVersFrac*{-10+1/3*(-5/16)} \qquad -\ConvVersFrac*[d]{-10+1/3*(-5/16)} \qquad +\ConvVersFrac[d]{-10+1/3*(-5/16)} \qquad \ConvVersFrac[n]{-10+1/3*(-5/16)} \qquad \ConvVersFrac[dec=4]{-10+1/3*(-5/16)} \qquad \ConvVersFrac{2+91/7}\hfill~ @@ -345,7 +387,7 @@ Les \textit{transformations} en fraction devraient pouvoir fonctionner avec des \subsection{La commande} \begin{cautionblock} -La première commande (matricielle) est dédiée à l'affichage d'une matrice \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} : +La première commande (matricielle) est dédiée à l'affichage d'une matrice \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} (\texttt{python} est ici non nécessaire): \begin{itemize} \item en saisissant les coefficients via une syntaxe propre au package (l'affichage est géré en interne par \textsf{nicematrix}) ; @@ -356,7 +398,7 @@ La première commande (matricielle) est dédiée à l'affichage d'une matrice \t \begin{PresentationCode}{listing only} %commande disponible avec les deux versions, pyluatex ou non -\AffMatrice(*)[option de formatage](matrice) +\AffMatrice(*)[option de formatage]<(matrice) \end{PresentationCode} \subsection{Utilisation} @@ -365,7 +407,7 @@ La première commande (matricielle) est dédiée à l'affichage d'une matrice \t Concernant cette commande, qui est à insérer dans un environnement \textit{math} : \begin{itemize} - \item la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} avant l'éventuelle fraction ; + \item \cmaj{0.1.3} la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} sur le numérateur ; \item le premier argument, \textit{optionnel} et entre \textsf{[...]} permet de spécifier un formatage du résultat : \begin{itemize} \item \Cle{t} pour l'affichage de la fraction en mode \textsf{tfrac} ; @@ -388,7 +430,97 @@ et $C=\AffMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. \begin{PresentationCode}{} On considère la matrice -$M=\AffMatrice*[d](1+1/4,0,3+4/5 § 0,1,-5/3 § 1/2,0.45,6/7)$. +$M=\AffMatrice[d](1+1/4,0,3+4/5 § 0,1,-5/3 § 1/2,0.45,6/7)$. +\end{PresentationCode} + +\pagebreak + +\section{Calculs matriciels \og simples \fg} + +\subsection{Introduction} + +\begin{cautionblock} +L'idée est de proposer des commandes pour effectuer des calculs matriciels \textit{simples} sur des matrices : + +\begin{itemize} + \item des produits matriciels : + \begin{itemize}[label=$\bullet$] + \item $(1\times2)\times(2\times1)$ ; + \item $(1\times2)\times(2\times2)$ ; + \item $(2\times2)\times(2\times2)$ ; + \item $(2\times2)\times(2\times1)$ ; + \item $(1\times3)\times(3\times1)$ ; + \item $(1\times3)\times(3\times3)$ ; + \item $(3\times3)\times(3\times3)$ ; + \item $(3\times3)\times(3\times1)$ ; + \end{itemize} + \item le carré d'une matrice 2x2 ou 3x3 ; + \item la puissance d'une matrice 2x2 ou 3x3 ou 4x4 (via \textsf{python}). +\end{itemize} +\vspace*{-\baselineskip}\leavevmode +\end{cautionblock} + +\begin{PresentationCode}{listing only} +%commandes disponible avec les deux versions, pyluatex ou non +\ProduitMatrices(*)[option de formatage](matrice 1)(matrice 2)[Clé] +\CarreMatrice(*)[option de formatage](matrice)(-5,6 § 1,4)[Clé] + +%commande disponible avec l'option pyluatex +\MatricePuissancePY(*)[option de formatage](matrice)(puissance)[Clé] +\end{PresentationCode} + +\begin{warningblock} +Dans le cas où le produit matriciel n'existe pas, ou ne rentre pas dans le cadre des cas possibles, rien ne sera affiché ! +\end{warningblock} + +\subsection{Utilisation} + +\begin{tipblock} +Concernant ces commandes, qui sont à insérer dans un environnement \textit{math} : + +\begin{itemize} + \item \cmaj{0.1.3} la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} sur le numérateur ; + \item le premier argument, \textit{optionnel} et entre \textsf{[...]} permet de spécifier un formatage du résultat : + \begin{itemize} + \item \Cle{t} pour l'affichage de la fraction en mode \textsf{tfrac} ; + \item \Cle{d} pour l'affichage de la fraction en mode \textsf{dfrac} ; + \item \Cle{n} pour l'affichage de la fraction en mode \textsf{nicefrac} ; + \item \Cle{dec} pour l'affichage du résultat en mode \texttt{décimal} (sans arrondi !) ; + \item \Cle{dec=k} pour l'affichage du résultat en mode \texttt{décimal} arrondi à $10^{-k}$ ; + \end{itemize} + \item le deuxième argument, \textit{optionnel} et entre \textsf{<...>} correspond aux \Cle{options} à passer à l'environnement \texttt{pNiceMatrix} ; + \item les arguments suivants, \textit{obligatoires} et entre \textsf{(...)}, sont quant à eux, les matrices données par leurs coefficients \textsf{a11,a12,... § a21,a22,...} (syntaxe héritée de \texttt{sympy}) ou la matrice et la puissance ; + \item le dernier argument, \textit{optionnel} et entre \textsf{[...]} propose l'unique \frquote{clé} \Cle{Aff} pour afficher le calcul avant le résultat. +\end{itemize} +\vspace*{-\baselineskip}\leavevmode +\end{tipblock} + +\begin{PresentationCode}{} +$\ProduitMatrices(-5,6 § 1,4)(2 § 7)[Aff]$ et $\ProduitMatrices(-5,6 § 1,4)(2 § 7)$ +\end{PresentationCode} + +\begin{PresentationCode}{} +$\ProduitMatrices[dec](0.5,0.3,0.2)(0.75,0.1,0.15 § 0.4,0.4,0.2 § 0.6,0.1,0.3)[Aff]$ +\end{PresentationCode} + +\begin{PresentationCode}{} +$\CarreMatrice(-5,6 § 1,4)[Aff]$ +\end{PresentationCode} + +\begin{PresentationCode}{} +$\CarreMatrice(-5,6,8 § 1,4,-9 § 1,-1,1)[Aff]$ +\end{PresentationCode} + +\begin{PresentationCode}{} +$\MatricePuissancePY(1,1 § 5,-2)(7)[Aff]$ +\end{PresentationCode} + +\begin{PresentationCode}{} +$\MatricePuissancePY(1,1,-1 § 5,-2,1 § 0,5,2)(3)[Aff]$ +\end{PresentationCode} + +\begin{PresentationCode}{} +$\MatricePuissancePY(1,1,1,1 § 5,-2,1,5 § 0,5,2,-1 § 0,1,1,1)(5)[Aff]$ \end{PresentationCode} \pagebreak @@ -421,7 +553,7 @@ La deuxième commande (matricielle) disponible est pour calculer le déterminant Concernant cette commande, qui est à insérer dans un environnement \textit{math} : \begin{itemize} - \item la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} avant l'éventuelle fraction ; + \item \cmaj{0.1.3} la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} sur le numérateur ; \item le premier argument, \textit{optionnel} et entre \textsf{[...]} permet de spécifier un formatage du résultat : \begin{itemize} \item \Cle{t} pour l'affichage de la fraction en mode \textsf{tfrac} ; @@ -449,8 +581,8 @@ $\det(A)=\DetMatrice[dec](-1,0.5 § 1/2,4)$. \begin{PresentationCode}{} %version classique -Le dét. de $A=\AffMatrice*[t](-1,1/3,4 § 1/3,4,-1 § -1,0,0)$ est -$\det(A) \approx \DetMatrice[dec=3](-1,1/3,4 § 1/3,4,-1 § -1,0,0)$. +Le dét. de $A=\AffMatrice[t](-1,1/3,4 § -1/3,4,-1 § -1,0,0)$ est +$\det(A) \approx \DetMatrice[dec=3](-1,1/3,4 § -1/3,4,-1 § -1,0,0)$. \end{PresentationCode} \begin{PresentationCode}{} @@ -461,7 +593,7 @@ $\det(A)=\DetMatricePY(1,2 § 3,4)$. \begin{PresentationCode}{} Le dét. de $A=\AffMatrice[dec](-1,0.5 § 1/2,4)$ est -$\det(A)=\DetMatricePY*[d](-1,0.5 § 1/2,4)$.\end{PresentationCode} +$\det(A)=\DetMatricePY[d](-1,0.5 § 1/2,4)$.\end{PresentationCode} \begin{PresentationCode}{} %version python @@ -469,6 +601,8 @@ Le dét. de $A=\AffMatrice(-1,1/3,4 § 1/3,4,-1 § -1,0,0)$ est $\det(A) \approx \DetMatricePY[dec=3](-1,1/3,4 § 1/3,4,-1 § -1,0,0)$. \end{PresentationCode} +\pagebreak + \section{Inverse d'une matrice} \subsection{Introduction} @@ -485,10 +619,10 @@ La troisième commande (matricielle) disponible est pour calculer l'éventuelle \begin{PresentationCode}{listing only} %version classique -\MatriceInverse(*)[option de formatage](matrice) +\MatriceInverse(*)[option de formatage](matrice)[Clé] %version python -\MatriceInversePY(*)[option de formatage](matrice) +\MatriceInversePY(*)[option de formatage](matrice)[Clé] \end{PresentationCode} \subsection{Utilisation} @@ -497,7 +631,7 @@ La troisième commande (matricielle) disponible est pour calculer l'éventuelle Concernant cette commande, qui est à insérer dans un environnement \textit{math} : \begin{itemize} - \item la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} avant l'éventuelle fraction ; + \item \cmaj{0.1.3} la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} sur le numérateur ; \item le premier argument, \textit{optionnel} et entre \textsf{[...]} permet de spécifier un formatage du résultat : \begin{itemize} \item \Cle{t} pour l'affichage de la fraction en mode \textsf{tfrac} ; @@ -507,7 +641,8 @@ Concernant cette commande, qui est à insérer dans un environnement \textit{mat \item \Cle{dec=k} pour l'affichage du résultat en mode \texttt{décimal} arrondi à $10^{-k}$ ; \end{itemize} \item le deuxième argument, \textit{optionnel} et entre \textsf{<...>} correspond aux \Cle{options} à passer à l'environnement \texttt{pNiceMatrix} ; - \item le troisième argument, \textit{obligatoire} et entre \textsf{(...)}, est quant à lui, la matrice donnée par ses coefficients \textsf{a11,a12,... § a21,a22,...} (syntaxe héritée de \texttt{sympy}). + \item le troisième argument, \textit{obligatoire} et entre \textsf{(...)}, est quant à lui, la matrice donnée par ses coefficients \textsf{a11,a12,... § a21,a22,...} (syntaxe héritée de \texttt{sympy}) ; + \item le dernier argument, \textit{optionnel} et entre \textsf{[...]} propose l'unique \frquote{clé} \Cle{Aff} pour afficher le calcul avant le résultat. \end{itemize} À noter que si la matrice n'est pas inversible, le texte \texttt{Matrice non inversible} est affiché. \end{tipblock} @@ -521,22 +656,24 @@ $A^{-1}=\MatriceInverse(1,2 § 3,4)$. \begin{PresentationCode}{} %version classique L'inverse de $A=\AffMatrice(1,2,3 § 4,5,6 § 7,8,8)$ est -$A^{-1}=\MatriceInverse[n](1,2,3 § 4,5,6 § 7,8,8)$. +$A^{-1}=\MatriceInverse[n](1,2,3 § 4,5,6 § 7,8,8)[Aff]$. \end{PresentationCode} \begin{PresentationCode}{} %version python L'inverse de $A=\AffMatrice(1,2 § 3,4)$ est -$A^{-1}=\MatriceInversePY*[d](1,2 § 3,4)$. +$A^{-1}=\MatriceInversePY[d](1,2 § 3,4)[Aff]$. \end{PresentationCode} \begin{PresentationCode}{} %version python L'inv. de $A=\AffMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)$ est $A^{-1}= -\MatriceInversePY*[n](1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)$. +\MatriceInversePY[n](1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)$. \end{PresentationCode} +\pagebreak + \section{Résolution d'un système linéaire} \subsection{Introduction} @@ -553,10 +690,10 @@ La deuxième commande (matricielle) disponible est pour déterminer l'éventuell \begin{PresentationCode}{listing only} %version classique -\SolutionSysteme(*)[opt de formatage](matriceA)(matriceB)[opt Matrice] +\SolutionSysteme(*)[opt de formatage](matriceA)(matriceB)[Clé] %version python -\SolutionSystemePY(*)[opt de formatage](matriceA)(matriceB)[opt Matrice] +\SolutionSystemePY(*)[opt de formatage](matriceA)(matriceB)[Clé] \end{PresentationCode} \subsection{Utilisation} @@ -565,7 +702,7 @@ La deuxième commande (matricielle) disponible est pour déterminer l'éventuell Concernant cette commande, qui est à insérer dans un environnement \textit{math} : \begin{itemize} - \item la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} avant l'éventuelle fraction ; + \item \cmaj{0.1.3} la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} sur le numérateur ; \item le premier argument, \textit{optionnel} et entre \textsf{[...]} permet de spécifier un formatage du résultat : \begin{itemize} \item \Cle{t} pour l'affichage de la fraction en mode \textsf{tfrac} ; @@ -577,7 +714,7 @@ Concernant cette commande, qui est à insérer dans un environnement \textit{mat \item le deuxième argument, \textit{optionnel} et entre \textsf{<...>} correspond aux \Cle{options} à passer à l'environnement \texttt{pNiceMatrix} ; \item le troisième argument, \textit{obligatoire} et entre \textsf{(...)}, est quant à lui, la matrice $A$ donnée par ses coefficients \textsf{a11,a12,... § a21,a22,...} (syntaxe héritée de \texttt{sympy}) ; \item le quatrième argument, \textit{obligatoire} et entre \textsf{(...)}, est quant à lui, la matrice $B$ donnée par ses coefficients \textsf{b11,b21,...} (syntaxe héritée de \texttt{sympy}) ; - \item le dernier argument, \textit{optionnel} et entre \textsf{[...]}, permet -- grâce à \Cle{Matrice} -- de présenter le vecteur solution. + \item le dernier argument, \textit{optionnel} et entre \textsf{[...]}, permet -- grâce à la \textit{clé} \Cle{Matrice} -- de présenter le vecteur solution. \end{itemize} À noter que si la matrice n'est pas inversible, le texte \texttt{Matrice non inversible} est affiché. \end{tipblock} @@ -585,7 +722,7 @@ Concernant cette commande, qui est à insérer dans un environnement \textit{mat \begin{PresentationCode}{} %version classique La solution de $\systeme{3x+y-2z=-1,2x-y+z=4,x-y-2z=5}$ est $\mathcal{S}=% -\left\lbrace \SolutionSysteme*[d](3,1,-2 § 2,-1,1 § 1,-1,-2)(-1,4,5) \right\rbrace$.\\ +\left\lbrace \SolutionSysteme[d](3,1,-2 § 2,-1,1 § 1,-1,-2)(-1,4,5) \right\rbrace$.\\ \end{PresentationCode} \begin{PresentationCode}{} @@ -602,7 +739,6 @@ est $\mathcal{S}=% \SolutionSystemePY% [dec]% (1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)(-10,0,4,7)% - [Matrice] \right\rbrace$. \end{PresentationCode} @@ -623,12 +759,16 @@ Elles sont accessibles en \textit{natif} une fois l'option \textsf{lua} activée \end{cautionblock} \begin{PresentationCodePython}{listing only} +#variables symboliques (pour du 4x4 maxi) import sympy as sy x = sy.Symbol('x') y = sy.Symbol('y') z = sy.Symbol('z') t = sy.Symbol('t') +\end{PresentationCodePython} +\begin{PresentationCodePython}{listing only} +#résolution de systèmes def resol_systeme_QQ(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,u) : solution=sy.solve([a*x+b*y+c*z+d*t-e,f*x+g*y+h*z+i*t-j,k*x+l*y+m*z+n*t-o,p*x+q*y+r*z+s*t-u],[x,y,z,t]) return solution @@ -640,7 +780,10 @@ def resol_systeme_TT(a,b,c,d,e,f,g,h,i,j,k,l) : def resol_systeme_DD(a,b,c,d,e,f) : solution=sy.solve([a*x+b*y-c,d*x+e*y-f],[x,y]) return solution +\end{PresentationCodePython} +\begin{PresentationCodePython}{listing only} +#déterminant d'une matrice def det_matrice_QQ(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : MatTmp = sy.Matrix(([a,b,c,d],[e,f,g,h],[i,j,k,l],[m,n,o,p])) DetMatTmp = MatTmp.det() @@ -655,7 +798,10 @@ def det_matrice_DD(a,b,c,d) : MatTmp = sy.Matrix(([a,b],[c,d])) DetMatTmp = MatTmp.det() return DetMatTmp +\end{PresentationCodePython} +\begin{PresentationCodePython}{listing only} +#inverse d'une martrice def inverse_matrice_QQ(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : MatTmp = sy.Matrix(([a,b,c,d],[e,f,g,h],[i,j,k,l],[m,n,o,p])) DetMatTmp = MatTmp.inv() @@ -672,14 +818,22 @@ def inverse_matrice_TT(a,b,c,d,e,f,g,h,i) : return InvMatTmp \end{PresentationCodePython} -\pagebreak - -\part{Historique} - -\verb|v0.1.2|~:~~~~Ajout d'une commande d'affichage (formaté) d'une matrice 2x2, 3x3 ou 4x4 +\begin{PresentationCodePython}{listing only} +#puissance d'une matrice +def puissance_matrice_QQ(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,puiss) : + MatTmp = sy.Matrix(([a,b,c,d],[e,f,g,h],[i,j,k,l],[m,n,o,p])) + PuissMatTmp = MatTmp**puiss + return PuissMatTmp -\verb|v0.1.1|~:~~~~Correction d'un bug avec le caractère \og ; \fg{} +def puissance_matrice_TT(a,b,c,d,e,f,g,h,i,puiss) : + MatTmp = sy.Matrix(([a,b,c],[d,e,f],[g,h,i])) + PuissMatTmp = MatTmp**puiss + return PuissMatTmp -\verb|v0.1.0|~:~~~~Version initiale +def puissance_matrice_DD(a,b,c,d,puiss) : + MatTmp = sy.Matrix(([a,b],[c,d])) + PuissMatTmp = MatTmp**puiss + return PuissMatTmp +\end{PresentationCodePython} \end{document} \ No newline at end of file diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf index 2f1f0191c2..e9f019288e 100644 Binary files a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf and b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf differ diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex index 7d891b08a5..c27148ec3a 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex @@ -1,14 +1,15 @@ +% !TeX document-id = {fc3853a9-0c9c-4d02-b763-6dc6c85d34db} % !TeX TXS-program:compile = txs:///lualatex/[--shell-escape] \documentclass[french,a4paper,10pt]{article} -\def\RSver{0.1.2} +\def\RSver{0.1.3} \usepackage[margin=1.5cm]{geometry} \usepackage[executable=python.exe]{pyluatex} \usepackage[pyluatex]{ResolSysteme} \usepackage{systeme} +\usepackage{babel} \usepackage[most]{tcolorbox} \sisetup{locale=FR,output-decimal-marker={,}} -\usepackage{babel} \newtcblisting{ShowCodeTeX}[1][]{colback=white,colframe=red!75!black,listing options={style=tcblatex},#1} \begin{document} @@ -30,10 +31,34 @@ \begin{ShowCodeTeX} On considère les matrices $A=\AffMatrice(1,2 § 3,4)$ -et $B=\AffMatrice*[n](-1,1/3,4 § 1/3,4,-1 § -1,0,0)$ +et $B=\AffMatrice[n](-1,-1/3,4 § 1/3,4,-1 § -1,0,0)$ et $C=\AffMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. \end{ShowCodeTeX} +\section{Calculs avec des matrices, 2x2 ou 3x3} + +\begin{ShowCodeTeX} +$\ProduitMatrices(1,2)(3 § 4)[Aff]$ et $\ProduitMatrices(1,2)(3,4 § 5,6)[Aff]$ \\ +$\ProduitMatrices(-5,6 § 1,4)(2 § 7)[Aff]$ et $\ProduitMatrices(-5,6 § 1,4)(2,-4 § 7,0)[Aff]$ +\end{ShowCodeTeX} + +\begin{ShowCodeTeX} +$\ProduitMatrices(1,2,3)(4 § 5 § 6)[Aff]$ et $\ProduitMatrices(1,2,3)(1,1,1 § 2,1,5 § 0,5,-6)[Aff]$\\ +$\ProduitMatrices(1,1,1 § 2,1,5 § 0,5,-6)(1 § 2 § 3)[Aff]$ et +$\ProduitMatrices(1,1,1 § 2,1,5 § 0,5,-6)(1,2,3 § -5,-4,2 § 3,3,10)[Aff]$ +\end{ShowCodeTeX} + +\begin{ShowCodeTeX} +$\CarreMatrice(-5,6 § 1,4)[Aff]$ \\ +$\CarreMatrice(-5,6,8 § 1,4,-9 § 1,-1,1)[Aff]$ +\end{ShowCodeTeX} + +\begin{ShowCodeTeX} +$\MatricePuissancePY(1,1 § 5,-2)(7)[Aff]$\\ +$\MatricePuissancePY(1,1,-1 § 5,-2,1 § 0,5,2)(3)[Aff]$ \\ +$\MatricePuissancePY(1,1,1,1 § 5,-2,1,5 § 0,5,2,-1 § 0,1,1,1)(5)[Aff]$ +\end{ShowCodeTeX} + \section{Inverse d'une matrice, 2x2 ou 3x3 ou 4x4} \begin{ShowCodeTeX} @@ -53,7 +78,7 @@ $A^{-1}=\MatriceInversePY(1,2 § 3,6)$. \begin{ShowCodeTeX} L'inverse de $A=\begin{pNiceMatrix} 1&2 \\ 3&4 \end{pNiceMatrix}$ est -$A^{-1}=\MatriceInversePY*[d](1,2 § 3,4)$. +$A^{-1}=\MatriceInversePY[d](1,2 § 3,4)$. \end{ShowCodeTeX} \begin{ShowCodeTeX} @@ -68,7 +93,7 @@ $A^{-1}=\MatriceInversePY*(1,2,3 § 4,5,6 § 7,8,8)$. \begin{ShowCodeTeX} L'inverse de $A=\begin{pNiceMatrix} 1&2&3&4\\5&6&7&0\\1&1&1&1\\2&-3&-5&-6 \end{pNiceMatrix}$ -est $A^{-1}=\MatriceInversePY*[n](1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. +est $A^{-1}=\MatriceInversePY[n](1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. \end{ShowCodeTeX} \section{Résolution d'un système, 2x2 ou 3x3 ou 4x4} @@ -85,7 +110,7 @@ La solution de $\systeme{x+2y=-5,4x+8y=1}$ est $\mathcal{S}=% \begin{ShowCodeTeX} La solution de $\systeme{-9x-8y=-8,3x-6y=-7}$ est $\mathcal{S}=% -\left\lbrace \SolutionSystemePY*[d](-9,-8 § 3,-6)(-8,-7) \right\rbrace$. +\left\lbrace \SolutionSystemePY[d](-9,-8 § 3,-6)(-8,-7) \right\rbrace$. \end{ShowCodeTeX} \begin{ShowCodeTeX} @@ -100,17 +125,15 @@ La solution de $\systeme{x+y+z=-1,3x+2y-z=-5,-x-y+2z=0}$ est donnée par $X=% \begin{ShowCodeTeX} La solution de $\systeme[xyzt]{y+z+t=1,x+z+t=-1,x+y+t=1,x+y+z=0}$ est $\mathcal{S}=% -\left\lbrace\SolutionSystemePY*[d](0,1,1,1 § 1,0,1,1 § 1,1,0,1 § 1,1,1,0)(1,-1,1,0)\right\rbrace$. +\left\lbrace\SolutionSystemePY[d](0,1,1,1 § 1,0,1,1 § 1,1,0,1 § 1,1,1,0)(1,-1,1,0)\right\rbrace$. \end{ShowCodeTeX} \begin{ShowCodeTeX} -La solution de $\systeme[xyzt]{x+2y+3z+4t=-10,5x+6y+7z=0,x+y+z+t=4,-2x-3y-5z-6t=7}$ est $\mathcal{S}= -\left\lbrace +La solution de $\systeme[xyzt]{x+2y+3z+4t=-10,5x+6y+7z=0,x+y+z+t=4,-2x-3y-5z-6t=7}$ est $X= \SolutionSystemePY [dec] (1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)(-10,0,4,7) - [Matrice] -\right\rbrace$. + [Matrice]$ \end{ShowCodeTeX} \end{document} \ No newline at end of file diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf index 7a2d7f4576..b331fac8ce 100644 Binary files a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf and b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf differ diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex index 2bf3f3b252..4ea7128787 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex @@ -2,7 +2,7 @@ % !TeX TXS-program:compile = txs:///pdflatex \documentclass[french,a4paper,10pt]{article} -\def\RSver{0.1.2} +\def\RSver{0.1.3} \usepackage[margin=1.5cm]{geometry} \usepackage{ResolSysteme} \usepackage{systeme} @@ -29,10 +29,28 @@ \begin{ShowCodeTeX} On considère les matrices $A=\AffMatrice(1,2 § 3,4)$ -et $B=\AffMatrice*[n](-1,1/3,4 § 1/3,4,-1 § -1,0,0)$ +et $B=\AffMatrice[n](-1,1/3,4 § 1/3,4,-1 § -1,0,0)$ et $C=\AffMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. \end{ShowCodeTeX} +\section{Calculs avec des matrices, 2x2 ou 3x3} + +\begin{ShowCodeTeX} +$\ProduitMatrices(1,2)(3 § 4)[Aff]$ et $\ProduitMatrices(1,2)(3,4 § 5,6)[Aff]$ \\ +$\ProduitMatrices(-5,6 § 1,4)(2 § 7)[Aff]$ et $\ProduitMatrices(-5,6 § 1,4)(2,-4 § 7,0)[Aff]$ +\end{ShowCodeTeX} + +\begin{ShowCodeTeX} +$\ProduitMatrices(1,2,3)(4 § 5 § 6)[Aff]$ et $\ProduitMatrices(1,2,3)(1,1,1 § 2,1,5 § 0,5,-6)[Aff]$\\ +$\ProduitMatrices(1,1,1 § 2,1,5 § 0,5,-6)(1 § 2 § 3)[Aff]$ et +$\ProduitMatrices(1,1,1 § 2,1,5 § 0,5,-6)(1,2,3 § -5,-4,2 § 3,3,10)[Aff]$ +\end{ShowCodeTeX} + +\begin{ShowCodeTeX} +$\CarreMatrice(-5,6 § 1,4)[Aff]$ \\ +$\CarreMatrice(-5,6,8 § 1,4,-9 § 1,-1,1)[Aff]$ +\end{ShowCodeTeX} + \section{Déterminant d'une matrice, 2x2 ou 3x3} \begin{ShowCodeTeX} @@ -41,8 +59,8 @@ $\det(A)=\DetMatrice(1,2 § 3,4)$. \end{ShowCodeTeX} \begin{ShowCodeTeX} -Le déterminant de $A=\AffMatrice*(-1,0.5 § 1/2,4)$ est -$\det(A)=\DetMatrice[dec](-1,0.5 § 1/2,4)$. +Le déterminant de $A=\AffMatrice(-1,0.5 § -1/2,4)$ est +$\det(A)=\DetMatrice[dec](-1,0.5 § -1/2,4)$. \end{ShowCodeTeX} \begin{ShowCodeTeX} @@ -106,7 +124,7 @@ La solution de $\systeme{3x+y-2z=-1,2x-y+z=4,x-y-2z=5}$ est $\mathcal{S}=% \begin{ShowCodeTeX} La solution de $\systeme{3x+y-2z=-1,2x-y+z=4,x-y-2z=5}$ est $\mathcal{S}=% -\left\lbrace \SolutionSysteme*[d](3,1,-2 § 2,-1,1 § 1,-1,-2)(-1,4,5) \right\rbrace$. +\left\lbrace \SolutionSysteme[d](3,1,-2 § 2,-1,1 § 1,-1,-2)(-1,4,5) \right\rbrace$. \end{ShowCodeTeX} \end{document} \ No newline at end of file -- cgit v1.2.3