diff options
Diffstat (limited to 'macros/latex/contrib/resolsysteme')
-rw-r--r-- | macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf | bin | 196228 -> 200069 bytes | |||
-rw-r--r-- | macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex | 110 | ||||
-rw-r--r-- | macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf | bin | 126738 -> 126842 bytes | |||
-rw-r--r-- | macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex | 16 | ||||
-rw-r--r-- | macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf | bin | 158189 -> 160890 bytes | |||
-rw-r--r-- | macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex | 16 | ||||
-rw-r--r-- | macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty | 192 |
7 files changed, 176 insertions, 158 deletions
diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf Binary files differindex 1ee7bc9bba..6f4fa467ef 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex index 97155dee5c..167d62e4f4 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex @@ -3,8 +3,8 @@ % arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') \documentclass[french,a4paper,11pt]{article} -\def\TPversion{0.1.6} -\def\TPdate{2 avril 2024} +\def\TPversion{0.1.8} +\def\TPdate{4 juillet 2024} \usepackage[executable=python.exe]{pyluatex} \usepackage[table,svgnames]{xcolor} \usepackage{amsmath,amssymb} @@ -148,7 +148,7 @@ \vspace{0.25cm} -{$\blacktriangleright$~~Une commande pour afficher une matrice carrée (2x2, 3x3 ou 4x4) avec la syntaxe du package.} +{$\blacktriangleright$~~Une commande pour afficher une matrice carrée (2×2, 3×3 ou 4×4) avec la syntaxe du package.} \smallskip @@ -156,15 +156,15 @@ \smallskip -{$\blacktriangleright$~~Des commandes pour calculer le déterminant et l'inverse de matrices carrées (2x2, 3x3 ou 4x4).} +{$\blacktriangleright$~~Des commandes pour calculer le déterminant et l'inverse de matrices carrées (2×2, 3×3 ou 4×4).} \smallskip -{$\blacktriangleright$~~Des commandes pour résoudre des systèmes linéaires (2x2, 3x3 ou 4x4).} +{$\blacktriangleright$~~Des commandes pour résoudre des systèmes linéaires (2×2, 3×3 ou 4×4).} \smallskip -{$\blacktriangleright$~~Des commandes pour travailler sur des graphes probabilistes (2x2, 3x3 ou 4x4).} +{$\blacktriangleright$~~Des commandes pour travailler sur des graphes probabilistes (2×2, 3×3 ou 4×4).} \vspace{1cm} @@ -207,7 +207,9 @@ \hrule -\medskip +\bigskip + +{\footnotesize\sffamily\itshape À mon papa.} \newpage @@ -240,8 +242,8 @@ La package \textit{propose} des outils pour travailler sur des matrices ou des s À noter que les calculs -- en interne -- peuvent être effectués de deux manières : \begin{itemize} - \item via les packages \textsf{xint*} pour des formats \textbf{2x2} ou \textbf{3x3} (et dans une certaine mesure pour des \textbf{4x4}) ; - \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}. + \item via les packages \textsf{xint*} pour des formats \textbf{2×2} ou \textbf{3×3} (et dans une certaine mesure pour des \textbf{4×4}) ; + \item via \textsf{Python} et le package \textsf{pyluatex} (à charger manuellement du fait des options spécifiques) pour des formats \textbf{2×2}, \textbf{3×3} ou \textbf{4×4}. \end{itemize} 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. @@ -252,7 +254,7 @@ L'utilisation de \textsf{pyluatex} nécessite une compilation adaptée, à savoi \smallskip -La méthode par \textsf{python} utilise quoi qu'il en soit le module \texttt{sympy}, qui doit donc être installé ! +La méthode par \textsf{Python} utilise quoi qu'il en soit le module \texttt{sympy}, qui doit donc être installé ! \end{warningblock} \subsection{Packages utilisés, choix de formatage} @@ -283,7 +285,7 @@ En marge de la présente documentation, compilée en \textsf{lualatex} avec \tex \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}). + \item \texttt{ResolSysteme-exemples-pyluatex} pour les commandes disponibles en version \textsf{Python} (\textsf{pyluatex}). \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{noteblock} @@ -293,7 +295,7 @@ En marge de la présente documentation, compilée en \textsf{lualatex} avec \tex \subsection{Chargement du package, et option} \begin{importantblock} -Le package peut donc se charger de deux manières différentes, suivant si l'utilisateur utilise \textsf{python} ou non. Les commandes \textit{classiques} sont disponibles même si \textsf{python} est utilisé. +Le package peut donc se charger de deux manières différentes, suivant si l'utilisateur utilise \textsf{Python} ou non. Les commandes \textit{classiques} sont disponibles même si \textsf{Python} est utilisé. \end{importantblock} \begin{PresentationCode}{listing only} @@ -314,16 +316,22 @@ D'autres solutions existent pour faire du calcul matriciel, on peut pas exemple \smallskip -L'idée est ici de proposer une version, adaptée à des dimensions classiques, avec formatage des calculs, sous forme de fraction irréductible notamment. Les formatages étant effectués \textit{a posteriori}, j'ai choisi de limiter ce package à des formats de taille raisonnable (\textbf{1x2} à \textbf{4x4}). +L'idée est ici de proposer une version, adaptée à des dimensions classiques, avec formatage des calculs, sous forme de fraction irréductible notamment. Les formatages étant effectués \textit{a posteriori}, j'ai choisi de limiter ce package à des formats de taille raisonnable (\textbf{1×2} à \textbf{4×4}). \end{noteblock} \part{Historique} +\verb|v0.1.8|~:~~~~Correction de bugs, améliorations dans la documentation. + +\verb|v0.1.7|~:~~~~Correction de bugs dans certains calculs avec des fractions. + +\verb|v0.1.6|~:~~~~Correction de bugs dans certains calculs avec des fractions. + \verb|v0.1.6|~:~~~~Correction de bugs dans certains calculs. \verb|v0.1.5|~:~~~~Inverse d'une matrice 4x4 et système 4x4 (même en normal). -\verb|v0.1.4|~:~~~~Ajout de commandes pour du calcul matriciel sans python (de taille raisonnable) ; +\verb|v0.1.4|~:~~~~Ajout de commandes pour du calcul matriciel sans \textsf{Python} (de taille raisonnable) ; \verb| |~~~~~~commandes pour des graphes probabilistes. @@ -331,7 +339,7 @@ L'idée est ici de proposer une version, adaptée à des dimensions classiques, \verb| |~~~~~~inversion du 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.2|~:~~~~Ajout d'une commande d'affichage (formaté) d'une matrice 2×2, 3×3 ou 4×4. \verb|v0.1.1|~:~~~~Correction d'un bug avec le caractère \og ; \fg. @@ -412,7 +420,7 @@ Les \textit{transformations} en fraction devraient pouvoir fonctionner avec des \subsection{La commande} \begin{cautionblock} -Une commande (matricielle) est dédiée à l'affichage d'une matrice \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} (\textsf{python} est ici non nécessaire !) : +Une commande (matricielle) est dédiée à l'affichage d'une matrice \textbf{2×2} ou \textbf{3×3} ou \textbf{4×4} (\textsf{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}) ; @@ -483,8 +491,8 @@ L'idée est de proposer des commandes pour effectuer des calculs matriciels \tex \item $(4\times4)\times(4\times4)$ ; \item $(4\times4)\times(4\times1)$ ; \end{itemize} - \item le carré d'une matrice 2x2 ou 3x3 ou 4x4 ; - \item la puissance d'une matrice 2x2 ou 3x3 ou 4x4 (via \textsf{python}). + \item le carré d'une matrice 2×2 ou 3×3 ou 4×4 ; + \item la puissance d'une matrice 2×2 ou 3×3 ou 4×4 (via \textsf{Python}). \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{cautionblock} @@ -574,7 +582,7 @@ $\MatricePuissancePY(1,1,1,1 § 5,-2,1,5 § 0,5,2,-1 § 0,1,1,1)(5)[Aff]$ Une commande est disponible pour calculer le déterminant d'une matrice : \begin{itemize} - \item \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4}. + \item \textbf{2×2} ou \textbf{3×3} ou \textbf{4×4}. \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{cautionblock} @@ -583,7 +591,7 @@ Une commande est disponible pour calculer le déterminant d'une matrice : %version classique \DetMatrice(*)[option de formatage](matrice) -%version python +%version Python \DetMatricePY(*)[option de formatage](matrice) \end{PresentationCode} @@ -631,7 +639,7 @@ est $\det(A)=\DetMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. \end{PresentationCode} \begin{PresentationCode}{} -%version python +%version Python Le dé. de $A=\AffMatrice(1,2 § 3,4)$ est $\det(A)=\DetMatricePY(1,2 § 3,4)$. \end{PresentationCode} @@ -642,13 +650,13 @@ $\det(A)=\DetMatricePY[d](-1,0.5 § 1/2,4)$. \end{PresentationCode} \begin{PresentationCode}{} -%version python +%version Python 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} \begin{PresentationCode}{} -%version python +%version Python Le dét. de $A=\AffMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$ est $\det(A)=\DetMatricePY(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. \end{PresentationCode} @@ -663,8 +671,8 @@ est $\det(A)=\DetMatricePY(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. Une commande (matricielle) disponible est pour calculer l'éventuelle inverse d'une matrice : \begin{itemize} - \item \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} (\cmaj{0.1.5}) pour le package \textit{classique} ; - \item \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} également pour la version \textsf{python}. + \item \textbf{2×2} ou \textbf{3×3} ou \textbf{4×4} (\cmaj{0.1.5}) pour le package \textit{classique} ; + \item \textbf{2×2} ou \textbf{3×3} ou \textbf{4×4} également pour la version \textsf{Python}. \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{cautionblock} @@ -673,7 +681,7 @@ Une commande (matricielle) disponible est pour calculer l'éventuelle inverse d' %version classique \MatriceInverse(*)[option de formatage]<options nicematrix>(matrice)[Clé] -%version python +%version Python \MatriceInversePY(*)[option de formatage]<options nicematrix>(matrice)[Clé] \end{PresentationCode} @@ -712,7 +720,7 @@ $A^{-1}=\MatriceInverse[n]<cell-space-limits=2pt>(1,2,3 § 4,5,6 § 7,8,8)[Aff]$ \end{PresentationCode} \begin{PresentationCode}{} -%version python +%version Python L'inverse de $A=\AffMatrice(1,2 § 3,4)$ est $A^{-1}=\MatriceInversePY[d]<cell-space-limits=2pt>(1,2 § 3,4)[Aff]$. \end{PresentationCode} @@ -725,7 +733,7 @@ $A^{-1}= \end{PresentationCode} \begin{PresentationCode}{} -%version python +%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]<cell-space-limits=2pt>(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § -2,-3,-5,-6)$. @@ -738,17 +746,17 @@ $A^{-1}= \subsection{Introduction} \begin{cautionblock} -\cmaj{0.1.4} Il existe des commandes pour travailler sur un graphe probabiliste (avec le package en version \textsf{python}) : +\cmaj{0.1.4} Il existe des commandes pour travailler sur un graphe probabiliste (avec le package en version \textsf{Python}) : \begin{itemize} - \item afficher un état probabiliste (\textbf{1x2} ou \textbf{1x3} ou \textbf{1x4}, version normale ou version \textsf{python}) ; - \item déterminer un état probabiliste à une certaine étape, uniquement en version \textsf{python}. + \item afficher un état probabiliste (\textbf{1×2} ou \textbf{1×3} ou \textbf{1×4}, version normale ou version \textsf{Python}) ; + \item déterminer un état probabiliste à une certaine étape, uniquement en version \textsf{Python}. \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{cautionblock} \begin{PresentationCode}{listing only} -%version classique ou python +%version classique ou Python \AffEtatProb[opt de formatage]<opts nicematrix>(matrice ligne) \EtatProbPY[opt de formatage]<opts nicematrix>(état init)(mat de trans)(étape) \end{PresentationCode} @@ -845,8 +853,8 @@ $P_4 \approx \EtatProbPY[dec=3] Il existe une commande (matricielle) pour déterminer l'éventuelle solution d'un système linéaire qui s'écrit matriciellement $A\times X=B$: \begin{itemize} - \item \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} (\cmaj{0.1.5}) pour le package \textit{classique} ; - \item \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} également pour le package en version \textsf{python}. + \item \textbf{2×2} ou \textbf{3×3} ou \textbf{4×4} (\cmaj{0.1.5}) pour le package \textit{classique} ; + \item \textbf{2×2} ou \textbf{3×3} ou \textbf{4×4} également pour le package en version \textsf{Python}. \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{cautionblock} @@ -855,7 +863,7 @@ Il existe une commande (matricielle) pour déterminer l'éventuelle solution d'u %version classique \SolutionSysteme(*)[opt de formatage]<opts nicematrix>(matriceA)(matriceB)[Clé] -%version python +%version Python \SolutionSystemePY(*)[opt de formatage]<opts nicematrix>(matriceA)(matriceB)[Clé] \end{PresentationCode} @@ -880,6 +888,10 @@ Concernant cette commande, qui est à insérer dans un environnement \textit{mat \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é. + +\smallskip + +Pour afficher le système via la commande \texttt{\textbackslash systeme}, le package \textsf{systeme} doit être chargé. \end{tipblock} \begin{PresentationCode}{} @@ -889,7 +901,7 @@ La solution de $\systeme{3x+y-2z=-1,2x-y+z=4,x-y-2z=5}$ est $\mathcal{S}=% \end{PresentationCode} \begin{PresentationCode}{} -%version python +%version Python La solution de $\systeme{x+y+z=-1,3x+2y-z=6,-x-y+2z=-5}$ est $\mathcal{S}=% \left\lbrace \SolutionSystemePY(1,1,1 § 3,2,-1 § -1,-1,2)(-1,6,-5) \right\rbrace$. \end{PresentationCode} @@ -906,7 +918,13 @@ est $\mathcal{S}=% \end{PresentationCode} \begin{PresentationCode}{} -%version python +La solution de $\systeme{\frac{2}{7}x + \frac{5}{9}y = 13,\frac{73}{37} x - 9y=-11}$ +est $\mathcal{S}= +\left\lbrace \SolutionSysteme[d](2/7,5/9 § 73/37,-9)(13,-11) \right\rbrace$. +\end{PresentationCode} + +\begin{PresentationCode}{} +%version Python 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 @@ -922,8 +940,6 @@ La solution de $\systeme{x+2y=-5,4x+8y=1}$ est $\mathcal{S}=% \left\lbrace \SolutionSystemePY(1,2 § 4,8)(-5,1) \right\rbrace$. \end{PresentationCode} -\pagebreak - \section{Recherche d'un état stable (graphe probabiliste)} \subsection{Introduction} @@ -932,8 +948,8 @@ La solution de $\systeme{x+2y=-5,4x+8y=1}$ est $\mathcal{S}=% \cmaj{0.1.4} Il existe une commande (matricielle) pour déterminer l'éventuel état stable d'un graphe probabiliste : \begin{itemize} - \item \textbf{2x2} pour le package \textit{classique} ; - \item \textbf{2x2} ou \textbf{3x3} ou \textbf{4x4} pour le package en version \textsf{python}. + \item \textbf{2×2} pour le package \textit{classique} ; + \item \textbf{2×2} ou \textbf{3×3} ou \textbf{4×4} pour le package en version \textsf{Python}. \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{cautionblock} @@ -942,7 +958,7 @@ La solution de $\systeme{x+2y=-5,4x+8y=1}$ est $\mathcal{S}=% %version classique \EtatStable[opt de formatage]<opts nicematrix>(matriceA) -%version python +%version Python \EtatStablePY[opt de formatage]<opts nicematrix>(matriceA) \end{PresentationCode} @@ -976,7 +992,7 @@ ou $\Pi = \EtatStable[dec](0.72,0.28 § 0.12,0.88)$. \end{PresentationCode} \begin{PresentationCode}{} -%version python +%version Python L'état stable du gr. prob. de matrice $M=\AffMatrice[dec](0.72,0.28 § 0.12,0.88)$ @@ -985,7 +1001,7 @@ ou $\Pi = \EtatStablePY[dec](0.72,0.28 § 0.12,0.88)$. \end{PresentationCode} \begin{PresentationCode}{} -%version python +%version Python L'état stable du gr. prob. de matrice $M=\AffMatrice[dec](0.9,0.03,0.07 § 0.30,0.43,0.27 § 0.14,0.07,0.79)$ @@ -994,7 +1010,7 @@ ou $\Pi = \EtatStablePY[dec](0.9,0.03,0.07 § 0.30,0.43,0.27 § 0.14,0.07,0.79)$ \end{PresentationCode} \begin{PresentationCode}{} -%version python +%version Python L'état stable du gr. prob. de matrice $M=\AffMatrice[dec]% (0.1,0.2,0.3,0.4 § 0.25,0.25,0.25,0.25 § 0.15,0.15,0.2,0.5 § 0.3,0.3,0.2,0.2)$ @@ -1007,7 +1023,7 @@ est $\Pi \approx \pagebreak -\part{Fonctions python utilisées} +\part{Fonctions Python utilisées} \begin{cautionblock} Les fonctions utilisées par les packages \textsf{pyluatex} ou \textsf{pythontex} sont données ci-dessous. @@ -1016,7 +1032,7 @@ Elles sont accessibles en \textit{natif} une fois l'option \textsf{pyluatex} act \end{cautionblock} \begin{PresentationCodePython}{listing only} -#variables symboliques (pour du 4x4 maxi) +#variables symboliques (pour du 4×4 maxi) import sympy as sy x = sy.Symbol('x') y = sy.Symbol('y') diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf Binary files differindex d5bc819d92..dfd7461c74 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex index 407a26aa3e..600ce6d1d3 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex @@ -2,7 +2,7 @@ % !TeX TXS-program:compile = txs:///lualatex/[--shell-escape] \documentclass[french,a4paper,10pt]{article} -\def\RSver{0.1.6} +\def\RSver{0.1.8} \usepackage[margin=1.5cm]{geometry} \usepackage[executable=python.exe]{pyluatex} \usepackage[pyluatex]{ResolSysteme} @@ -27,7 +27,7 @@ \sisetup{locale=FR,output-decimal-marker={,}} \end{ShowCodeTeX} -\section{Affichage d'une matrice, 2x2 ou 3x3 ou 4x4} +\section{Affichage d'une matrice, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} On considère les matrices $A=\AffMatrice(1,2 § 3,4)$ @@ -35,7 +35,7 @@ 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{Déterminant d'une matrice, 2x2 ou 3x3 ou 4x4} +\section{Déterminant d'une matrice, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} Le déterminant de $A=\AffMatrice(1,2 § 3,4)$ est @@ -57,7 +57,7 @@ Le dét. de $A=\begin{pNiceMatrix} 1&2&3&4\\5&6&7&0\\1&1&1&1\\2&-3&-5&-6 \end{pN est $\det(A)=\DetMatricePY(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 ou 4x4} +\section{Calculs avec des matrices, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} $\ProduitMatricesPY(1,2)(3 § 4)[Aff]$ et $\ProduitMatricesPY(1,2)(3,4 § 5,6)[Aff]$ \\ @@ -83,7 +83,7 @@ $\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} +\section{Inverse d'une matrice, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} L'inverse de $A=\begin{pNiceMatrix} 1&2 \\ 3&4 \end{pNiceMatrix}$ est @@ -120,7 +120,7 @@ L'inverse de $A=\begin{pNiceMatrix} 1&2&3&4\\5&6&7&0\\1&1&1&1\\2&-3&-5&-6 \end{p est $A^{-1}=\MatriceInversePY[n]<cell-space-limits=2pt>(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} +\section{Résolution d'un système, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} La solution de $\systeme{-9x-8y=-8,3x-6y=-7}$ est $\mathcal{S}=% @@ -160,7 +160,7 @@ La solution de $\systeme[xyzt]{x+2y+3z+4t=-10,5x+6y+7z=0,x+y+z+t=4,-2x-3y-5z-6t= [Matrice]$ \end{ShowCodeTeX} -\section{État probabiliste d'un graphe probabiliste, 2x2 ou 3x3 ou 4x4} +\section{État probabiliste d'un graphe probabiliste, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} État initial : $P_0 = \AffEtatProb[t](1/3,2/3)$. @@ -202,7 +202,7 @@ $P_4 \approx \EtatProbPY[dec=3] (4)$ \end{ShowCodeTeX} -\section{État stable d'un graphe probabiliste, 2x2 ou 3x3 ou 4x4} +\section{État stable d'un graphe probabiliste, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} L'état stable du gr. prob. de matrice diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf Binary files differindex cd7b6e1fd3..bbf961d1a7 100644 --- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf +++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex index 0eb228e552..b228332dec 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.6} +\def\RSver{0.1.8} \usepackage[margin=1.5cm]{geometry} \usepackage{ResolSysteme} \usepackage{systeme} @@ -15,7 +15,7 @@ \part*{ResolSysteme (\RSver), version \og classique \fg{}} -\section{Préambule sans utiliser python} +\section{Préambule sans utiliser Python} \begin{ShowCodeTeX}[listing only] \documentclass[french,a4paper,10pt]{article} @@ -25,7 +25,7 @@ \sisetup{locale=FR,output-decimal-marker={,}} \end{ShowCodeTeX} -\section{Affichage d'une matrice, 2x2 ou 3x3 ou 4x4} +\section{Affichage d'une matrice, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} On considère les matrices $A=\AffMatrice(1,2 § 3,4)$ @@ -33,7 +33,7 @@ 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 ou 4x4} +\section{Calculs avec des matrices, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} $\ProduitMatrices(1,2)(3 § 4)[Aff]$ et $\ProduitMatrices(1,2)(3,4 § 5,6)[Aff]$ \\ @@ -59,7 +59,7 @@ $\CarreMatrice(-5,6,8 § 1,4,-9 § 1,-1,1)[Aff]$\\ $\CarreMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)[Aff]$ \end{ShowCodeTeX} -\section{Déterminant d'une matrice, 2x2 ou 3x3 ou 4x4} +\section{Déterminant d'une matrice, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} Le déterminant de $A=\AffMatrice(1,2 § 3,4)$ est @@ -81,7 +81,7 @@ Le dét. de $A=\begin{pNiceMatrix} 1&2&3&4\\5&6&7&0\\1&1&1&1\\2&-3&-5&-6 \end{pN est $\det(A)=\DetMatrice(1,2,3,4 § 5,6,7,0 § 1,1,1,1 § 2,-3,-5,-6)$. \end{ShowCodeTeX} -\section{Inverse d'une matrice, 2x2 ou 3x3 ou 4x4} +\section{Inverse d'une matrice, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} L'inverse de $A=\begin{pNiceMatrix} 1&2 \\ 3&4 \end{pNiceMatrix}$ est @@ -113,7 +113,7 @@ L'inverse de $A=\begin{pNiceMatrix} 1&2&3&4\\5&6&7&0\\1&1&1&1\\2&-3&-5&-6 \end{p est $A^{-1}=\MatriceInverse[n]<cell-space-limits=2pt>(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} +\section*{Résolution d'un système, 2×2 ou 3×3 ou 4×4} \begin{ShowCodeTeX} La solution de $\systeme{-9x-8y=-8,3x-6y=-7}$ est $\mathcal{S}=% @@ -158,7 +158,7 @@ La solution de $\systeme[xyzt]{x+2y+3z+4t=-10,5x+6y+7z=0,x+y+z+t=4,-2x-3y-5z-6t= [Matrice]$ \end{ShowCodeTeX} -\section{État stable d'une graphe probabiliste, 2x2} +\section{État stable d'une graphe probabiliste, 2×2} \begin{ShowCodeTeX} L'état stable du gr. prob. de matrice diff --git a/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty b/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty index 025ea98cfe..5a8d27b31c 100644 --- a/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty +++ b/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty @@ -2,7 +2,9 @@ % licence........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ResolSysteme}[2024/04/02 v0.1.6 Quelques commandes pour travailler avec des matrices et des sytemes lineaires] +\ProvidesPackage{ResolSysteme}[2024/07/04 v0.1.8 Quelques commandes pour travailler avec des matrices et des sytemes lineaires] +% 0.1.8 Correction de bugs dans certains calculs, amélioration de la documentation +% 0.1.7 Correction de bugs dans certains calculs % 0.1.6 Correction de bugs dans certains calculs % 0.1.5 Inverse d'une matrice en 4x4 (même en normal !) + Système 4x4 (en normal !) % 0.1.4 Travail sur graphe probabiliste (2x2/3x3/4x4 en python, ou 2x2 en normal...) + Calculs 4x4 en normal @@ -612,40 +614,40 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : {% \IfBooleanTF{#1}% {% - \def\MatInvA{\ConvVersFrac*[#2]{(\MatF*\MatK*\MatP+\MatG*\MatL*\MatN+\MatH*\MatJ*\MatO-\MatF*\MatL*\MatO-\MatG*\MatJ*\MatP-\MatH*\MatK*\MatN)/\DETMATRICE}}% - \def\MatInvB{\ConvVersFrac*[#2]{(\MatB*\MatL*\MatO+\MatC*\MatJ*\MatP+\MatD*\MatK*\MatN-\MatB*\MatK*\MatP-\MatC*\MatL*\MatN-\MatD*\MatJ*\MatO)/\DETMATRICE}}% - \def\MatInvC{\ConvVersFrac*[#2]{(\MatB*\MatG*\MatP+\MatC*\MatH*\MatN+\MatD*\MatF*\MatO-\MatB*\MatH*\MatO-\MatC*\MatF*\MatP-\MatD*\MatG*\MatN)/\DETMATRICE}}% - \def\MatInvD{\ConvVersFrac*[#2]{(\MatB*\MatH*\MatK+\MatC*\MatF*\MatL+\MatD*\MatG*\MatJ-\MatB*\MatG*\MatL-\MatC*\MatH*\MatJ-\MatD*\MatF*\MatK)/\DETMATRICE}}% - \def\MatInvE{\ConvVersFrac*[#2]{(\MatE*\MatL*\MatO+\MatG*\MatI*\MatP+\MatH*\MatK*\MatM-\MatE*\MatK*\MatP-\MatG*\MatL*\MatM-\MatH*\MatI*\MatO)/\DETMATRICE}}% - \def\MatInvF{\ConvVersFrac*[#2]{(\MatA*\MatK*\MatP+\MatC*\MatL*\MatM+\MatD*\MatI*\MatO-\MatA*\MatL*\MatO-\MatC*\MatI*\MatP-\MatD*\MatK*\MatM)/\DETMATRICE}}% - \def\MatInvG{\ConvVersFrac*[#2]{(\MatA*\MatH*\MatO+\MatC*\MatE*\MatP+\MatD*\MatG*\MatM-\MatA*\MatG*\MatP-\MatC*\MatH*\MatM-\MatD*\MatE*\MatO)/\DETMATRICE}}% - \def\MatInvH{\ConvVersFrac*[#2]{(\MatA*\MatG*\MatL+\MatC*\MatH*\MatI+\MatD*\MatE*\MatK-\MatA*\MatH*\MatK-\MatC*\MatE*\MatL-\MatD*\MatG*\MatI)/\DETMATRICE}}% - \def\MatInvI{\ConvVersFrac*[#2]{(\MatE*\MatJ*\MatP+\MatF*\MatL*\MatM+\MatH*\MatI*\MatN-\MatE*\MatL*\MatN-\MatF*\MatI*\MatP-\MatH*\MatJ*\MatM)/\DETMATRICE}}% - \def\MatInvJ{\ConvVersFrac*[#2]{(\MatA*\MatL*\MatN+\MatB*\MatI*\MatP+\MatD*\MatJ*\MatM-\MatA*\MatJ*\MatP-\MatB*\MatL*\MatM-\MatD*\MatI*\MatN)/\DETMATRICE}}% - \def\MatInvK{\ConvVersFrac*[#2]{(\MatA*\MatF*\MatP+\MatB*\MatH*\MatM+\MatD*\MatE*\MatN-\MatA*\MatH*\MatN-\MatB*\MatE*\MatP-\MatD*\MatF*\MatM)/\DETMATRICE}}% - \def\MatInvL{\ConvVersFrac*[#2]{(\MatA*\MatH*\MatJ+\MatB*\MatE*\MatL+\MatD*\MatF*\MatI-\MatA*\MatF*\MatL-\MatB*\MatH*\MatI-\MatD*\MatE*\MatJ)/\DETMATRICE}}% - \def\MatInvM{\ConvVersFrac*[#2]{(\MatE*\MatK*\MatN+\MatF*\MatI*\MatO+\MatG*\MatJ*\MatM-\MatE*\MatJ*\MatO-\MatF*\MatK*\MatM-\MatG*\MatI*\MatN)/\DETMATRICE}}% - \def\MatInvN{\ConvVersFrac*[#2]{(\MatA*\MatJ*\MatO+\MatB*\MatK*\MatM+\MatC*\MatI*\MatN-\MatA*\MatK*\MatN-\MatB*\MatI*\MatO-\MatC*\MatJ*\MatM)/\DETMATRICE}}% - \def\MatInvO{\ConvVersFrac*[#2]{(\MatA*\MatG*\MatN+\MatB*\MatE*\MatO+\MatC*\MatF*\MatM-\MatA*\MatF*\MatO-\MatB*\MatG*\MatM-\MatC*\MatE*\MatN)/\DETMATRICE}}% - \def\MatInvP{\ConvVersFrac*[#2]{(\MatA*\MatF*\MatK+\MatB*\MatG*\MatI+\MatC*\MatE*\MatJ-\MatA*\MatG*\MatJ-\MatB*\MatE*\MatK-\MatC*\MatF*\MatI)/\DETMATRICE}}% + \def\MatInvA{\ConvVersFrac*[#2]{(\MatF*\MatK*\MatP+\MatG*\MatL*\MatN+\MatH*\MatJ*\MatO-\MatF*\MatL*\MatO-\MatG*\MatJ*\MatP-\MatH*\MatK*\MatN)/(\DETMATRICE)}}% + \def\MatInvB{\ConvVersFrac*[#2]{(\MatB*\MatL*\MatO+\MatC*\MatJ*\MatP+\MatD*\MatK*\MatN-\MatB*\MatK*\MatP-\MatC*\MatL*\MatN-\MatD*\MatJ*\MatO)/(\DETMATRICE)}}% + \def\MatInvC{\ConvVersFrac*[#2]{(\MatB*\MatG*\MatP+\MatC*\MatH*\MatN+\MatD*\MatF*\MatO-\MatB*\MatH*\MatO-\MatC*\MatF*\MatP-\MatD*\MatG*\MatN)/(\DETMATRICE)}}% + \def\MatInvD{\ConvVersFrac*[#2]{(\MatB*\MatH*\MatK+\MatC*\MatF*\MatL+\MatD*\MatG*\MatJ-\MatB*\MatG*\MatL-\MatC*\MatH*\MatJ-\MatD*\MatF*\MatK)/(\DETMATRICE)}}% + \def\MatInvE{\ConvVersFrac*[#2]{(\MatE*\MatL*\MatO+\MatG*\MatI*\MatP+\MatH*\MatK*\MatM-\MatE*\MatK*\MatP-\MatG*\MatL*\MatM-\MatH*\MatI*\MatO)/(\DETMATRICE)}}% + \def\MatInvF{\ConvVersFrac*[#2]{(\MatA*\MatK*\MatP+\MatC*\MatL*\MatM+\MatD*\MatI*\MatO-\MatA*\MatL*\MatO-\MatC*\MatI*\MatP-\MatD*\MatK*\MatM)/(\DETMATRICE)}}% + \def\MatInvG{\ConvVersFrac*[#2]{(\MatA*\MatH*\MatO+\MatC*\MatE*\MatP+\MatD*\MatG*\MatM-\MatA*\MatG*\MatP-\MatC*\MatH*\MatM-\MatD*\MatE*\MatO)/(\DETMATRICE)}}% + \def\MatInvH{\ConvVersFrac*[#2]{(\MatA*\MatG*\MatL+\MatC*\MatH*\MatI+\MatD*\MatE*\MatK-\MatA*\MatH*\MatK-\MatC*\MatE*\MatL-\MatD*\MatG*\MatI)/(\DETMATRICE)}}% + \def\MatInvI{\ConvVersFrac*[#2]{(\MatE*\MatJ*\MatP+\MatF*\MatL*\MatM+\MatH*\MatI*\MatN-\MatE*\MatL*\MatN-\MatF*\MatI*\MatP-\MatH*\MatJ*\MatM)/(\DETMATRICE)}}% + \def\MatInvJ{\ConvVersFrac*[#2]{(\MatA*\MatL*\MatN+\MatB*\MatI*\MatP+\MatD*\MatJ*\MatM-\MatA*\MatJ*\MatP-\MatB*\MatL*\MatM-\MatD*\MatI*\MatN)/(\DETMATRICE)}}% + \def\MatInvK{\ConvVersFrac*[#2]{(\MatA*\MatF*\MatP+\MatB*\MatH*\MatM+\MatD*\MatE*\MatN-\MatA*\MatH*\MatN-\MatB*\MatE*\MatP-\MatD*\MatF*\MatM)/(\DETMATRICE)}}% + \def\MatInvL{\ConvVersFrac*[#2]{(\MatA*\MatH*\MatJ+\MatB*\MatE*\MatL+\MatD*\MatF*\MatI-\MatA*\MatF*\MatL-\MatB*\MatH*\MatI-\MatD*\MatE*\MatJ)/(\DETMATRICE)}}% + \def\MatInvM{\ConvVersFrac*[#2]{(\MatE*\MatK*\MatN+\MatF*\MatI*\MatO+\MatG*\MatJ*\MatM-\MatE*\MatJ*\MatO-\MatF*\MatK*\MatM-\MatG*\MatI*\MatN)/(\DETMATRICE)}}% + \def\MatInvN{\ConvVersFrac*[#2]{(\MatA*\MatJ*\MatO+\MatB*\MatK*\MatM+\MatC*\MatI*\MatN-\MatA*\MatK*\MatN-\MatB*\MatI*\MatO-\MatC*\MatJ*\MatM)/(\DETMATRICE)}}% + \def\MatInvO{\ConvVersFrac*[#2]{(\MatA*\MatG*\MatN+\MatB*\MatE*\MatO+\MatC*\MatF*\MatM-\MatA*\MatF*\MatO-\MatB*\MatG*\MatM-\MatC*\MatE*\MatN)/(\DETMATRICE)}}% + \def\MatInvP{\ConvVersFrac*[#2]{(\MatA*\MatF*\MatK+\MatB*\MatG*\MatI+\MatC*\MatE*\MatJ-\MatA*\MatG*\MatJ-\MatB*\MatE*\MatK-\MatC*\MatF*\MatI)/(\DETMATRICE)}}% }% {% - \def\MatInvA{\ConvVersFrac[#2]{(\MatF*\MatK*\MatP+\MatG*\MatL*\MatN+\MatH*\MatJ*\MatO-\MatF*\MatL*\MatO-\MatG*\MatJ*\MatP-\MatH*\MatK*\MatN)/\DETMATRICE}}% - \def\MatInvB{\ConvVersFrac[#2]{(\MatB*\MatL*\MatO+\MatC*\MatJ*\MatP+\MatD*\MatK*\MatN-\MatB*\MatK*\MatP-\MatC*\MatL*\MatN-\MatD*\MatJ*\MatO)/\DETMATRICE}}% - \def\MatInvC{\ConvVersFrac[#2]{(\MatB*\MatG*\MatP+\MatC*\MatH*\MatN+\MatD*\MatF*\MatO-\MatB*\MatH*\MatO-\MatC*\MatF*\MatP-\MatD*\MatG*\MatN)/\DETMATRICE}}% - \def\MatInvD{\ConvVersFrac[#2]{(\MatB*\MatH*\MatK+\MatC*\MatF*\MatL+\MatD*\MatG*\MatJ-\MatB*\MatG*\MatL-\MatC*\MatH*\MatJ-\MatD*\MatF*\MatK)/\DETMATRICE}}% - \def\MatInvE{\ConvVersFrac[#2]{(\MatE*\MatL*\MatO+\MatG*\MatI*\MatP+\MatH*\MatK*\MatM-\MatE*\MatK*\MatP-\MatG*\MatL*\MatM-\MatH*\MatI*\MatO)/\DETMATRICE}}% - \def\MatInvF{\ConvVersFrac[#2]{(\MatA*\MatK*\MatP+\MatC*\MatL*\MatM+\MatD*\MatI*\MatO-\MatA*\MatL*\MatO-\MatC*\MatI*\MatP-\MatD*\MatK*\MatM)/\DETMATRICE}}% - \def\MatInvG{\ConvVersFrac[#2]{(\MatA*\MatH*\MatO+\MatC*\MatE*\MatP+\MatD*\MatG*\MatM-\MatA*\MatG*\MatP-\MatC*\MatH*\MatM-\MatD*\MatE*\MatO)/\DETMATRICE}}% - \def\MatInvH{\ConvVersFrac[#2]{(\MatA*\MatG*\MatL+\MatC*\MatH*\MatI+\MatD*\MatE*\MatK-\MatA*\MatH*\MatK-\MatC*\MatE*\MatL-\MatD*\MatG*\MatI)/\DETMATRICE}}% - \def\MatInvI{\ConvVersFrac[#2]{(\MatE*\MatJ*\MatP+\MatF*\MatL*\MatM+\MatH*\MatI*\MatN-\MatE*\MatL*\MatN-\MatF*\MatI*\MatP-\MatH*\MatJ*\MatM)/\DETMATRICE}}% - \def\MatInvJ{\ConvVersFrac[#2]{(\MatA*\MatL*\MatN+\MatB*\MatI*\MatP+\MatD*\MatJ*\MatM-\MatA*\MatJ*\MatP-\MatB*\MatL*\MatM-\MatD*\MatI*\MatN)/\DETMATRICE}}% - \def\MatInvK{\ConvVersFrac[#2]{(\MatA*\MatF*\MatP+\MatB*\MatH*\MatM+\MatD*\MatE*\MatN-\MatA*\MatH*\MatN-\MatB*\MatE*\MatP-\MatD*\MatF*\MatM)/\DETMATRICE}}% - \def\MatInvL{\ConvVersFrac[#2]{(\MatA*\MatH*\MatJ+\MatB*\MatE*\MatL+\MatD*\MatF*\MatI-\MatA*\MatF*\MatL-\MatB*\MatH*\MatI-\MatD*\MatE*\MatJ)/\DETMATRICE}}% - \def\MatInvM{\ConvVersFrac[#2]{(\MatE*\MatK*\MatN+\MatF*\MatI*\MatO+\MatG*\MatJ*\MatM-\MatE*\MatJ*\MatO-\MatF*\MatK*\MatM-\MatG*\MatI*\MatN)/\DETMATRICE}}% - \def\MatInvN{\ConvVersFrac[#2]{(\MatA*\MatJ*\MatO+\MatB*\MatK*\MatM+\MatC*\MatI*\MatN-\MatA*\MatK*\MatN-\MatB*\MatI*\MatO-\MatC*\MatJ*\MatM)/\DETMATRICE}}% - \def\MatInvO{\ConvVersFrac[#2]{(\MatA*\MatG*\MatN+\MatB*\MatE*\MatO+\MatC*\MatF*\MatM-\MatA*\MatF*\MatO-\MatB*\MatG*\MatM-\MatC*\MatE*\MatN)/\DETMATRICE}}% - \def\MatInvP{\ConvVersFrac[#2]{(\MatA*\MatF*\MatK+\MatB*\MatG*\MatI+\MatC*\MatE*\MatJ-\MatA*\MatG*\MatJ-\MatB*\MatE*\MatK-\MatC*\MatF*\MatI)/\DETMATRICE}}% + \def\MatInvA{\ConvVersFrac[#2]{(\MatF*\MatK*\MatP+\MatG*\MatL*\MatN+\MatH*\MatJ*\MatO-\MatF*\MatL*\MatO-\MatG*\MatJ*\MatP-\MatH*\MatK*\MatN)/(\DETMATRICE)}}% + \def\MatInvB{\ConvVersFrac[#2]{(\MatB*\MatL*\MatO+\MatC*\MatJ*\MatP+\MatD*\MatK*\MatN-\MatB*\MatK*\MatP-\MatC*\MatL*\MatN-\MatD*\MatJ*\MatO)/(\DETMATRICE)}}% + \def\MatInvC{\ConvVersFrac[#2]{(\MatB*\MatG*\MatP+\MatC*\MatH*\MatN+\MatD*\MatF*\MatO-\MatB*\MatH*\MatO-\MatC*\MatF*\MatP-\MatD*\MatG*\MatN)/(\DETMATRICE)}}% + \def\MatInvD{\ConvVersFrac[#2]{(\MatB*\MatH*\MatK+\MatC*\MatF*\MatL+\MatD*\MatG*\MatJ-\MatB*\MatG*\MatL-\MatC*\MatH*\MatJ-\MatD*\MatF*\MatK)/(\DETMATRICE)}}% + \def\MatInvE{\ConvVersFrac[#2]{(\MatE*\MatL*\MatO+\MatG*\MatI*\MatP+\MatH*\MatK*\MatM-\MatE*\MatK*\MatP-\MatG*\MatL*\MatM-\MatH*\MatI*\MatO)/(\DETMATRICE)}}% + \def\MatInvF{\ConvVersFrac[#2]{(\MatA*\MatK*\MatP+\MatC*\MatL*\MatM+\MatD*\MatI*\MatO-\MatA*\MatL*\MatO-\MatC*\MatI*\MatP-\MatD*\MatK*\MatM)/(\DETMATRICE)}}% + \def\MatInvG{\ConvVersFrac[#2]{(\MatA*\MatH*\MatO+\MatC*\MatE*\MatP+\MatD*\MatG*\MatM-\MatA*\MatG*\MatP-\MatC*\MatH*\MatM-\MatD*\MatE*\MatO)/(\DETMATRICE)}}% + \def\MatInvH{\ConvVersFrac[#2]{(\MatA*\MatG*\MatL+\MatC*\MatH*\MatI+\MatD*\MatE*\MatK-\MatA*\MatH*\MatK-\MatC*\MatE*\MatL-\MatD*\MatG*\MatI)/(\DETMATRICE)}}% + \def\MatInvI{\ConvVersFrac[#2]{(\MatE*\MatJ*\MatP+\MatF*\MatL*\MatM+\MatH*\MatI*\MatN-\MatE*\MatL*\MatN-\MatF*\MatI*\MatP-\MatH*\MatJ*\MatM)/(\DETMATRICE)}}% + \def\MatInvJ{\ConvVersFrac[#2]{(\MatA*\MatL*\MatN+\MatB*\MatI*\MatP+\MatD*\MatJ*\MatM-\MatA*\MatJ*\MatP-\MatB*\MatL*\MatM-\MatD*\MatI*\MatN)/(\DETMATRICE)}}% + \def\MatInvK{\ConvVersFrac[#2]{(\MatA*\MatF*\MatP+\MatB*\MatH*\MatM+\MatD*\MatE*\MatN-\MatA*\MatH*\MatN-\MatB*\MatE*\MatP-\MatD*\MatF*\MatM)/(\DETMATRICE)}}% + \def\MatInvL{\ConvVersFrac[#2]{(\MatA*\MatH*\MatJ+\MatB*\MatE*\MatL+\MatD*\MatF*\MatI-\MatA*\MatF*\MatL-\MatB*\MatH*\MatI-\MatD*\MatE*\MatJ)/(\DETMATRICE)}}% + \def\MatInvM{\ConvVersFrac[#2]{(\MatE*\MatK*\MatN+\MatF*\MatI*\MatO+\MatG*\MatJ*\MatM-\MatE*\MatJ*\MatO-\MatF*\MatK*\MatM-\MatG*\MatI*\MatN)/(\DETMATRICE)}}% + \def\MatInvN{\ConvVersFrac[#2]{(\MatA*\MatJ*\MatO+\MatB*\MatK*\MatM+\MatC*\MatI*\MatN-\MatA*\MatK*\MatN-\MatB*\MatI*\MatO-\MatC*\MatJ*\MatM)/(\DETMATRICE)}}% + \def\MatInvO{\ConvVersFrac[#2]{(\MatA*\MatG*\MatN+\MatB*\MatE*\MatO+\MatC*\MatF*\MatM-\MatA*\MatF*\MatO-\MatB*\MatG*\MatM-\MatC*\MatE*\MatN)/(\DETMATRICE)}}% + \def\MatInvP{\ConvVersFrac[#2]{(\MatA*\MatF*\MatK+\MatB*\MatG*\MatI+\MatC*\MatE*\MatJ-\MatA*\MatG*\MatJ-\MatB*\MatE*\MatK-\MatC*\MatF*\MatI)/(\DETMATRICE)}}% }% \IfStrEq{#5}{Aff}%si matrice {% @@ -693,26 +695,26 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : {% \IfBooleanTF{#1}% {% - \def\MatInvA{\ConvVersFrac*[#2]{(\MatE*\MatI-\MatH*\MatF)/\DETMATRICE}}% - \def\MatInvB{\ConvVersFrac*[#2]{(-\MatB*\MatI+\MatC*\MatH)/\DETMATRICE}}% - \def\MatInvC{\ConvVersFrac*[#2]{(\MatB*\MatF-\MatC*\MatE)/\DETMATRICE}}% - \def\MatInvD{\ConvVersFrac*[#2]{(-\MatD*\MatI+\MatF*\MatG)/\DETMATRICE}}% - \def\MatInvE{\ConvVersFrac*[#2]{(\MatA*\MatI-\MatC*\MatG)/\DETMATRICE}}% - \def\MatInvF{\ConvVersFrac*[#2]{(-\MatA*\MatF+\MatD*\MatC)/\DETMATRICE}}% - \def\MatInvG{\ConvVersFrac*[#2]{(\MatD*\MatH-\MatE*\MatG)/\DETMATRICE}}% - \def\MatInvH{\ConvVersFrac*[#2]{(-\MatA*\MatH+\MatB*\MatG)/\DETMATRICE}}% - \def\MatInvI{\ConvVersFrac*[#2]{(\MatA*\MatE-\MatB*\MatD)/\DETMATRICE}}% + \def\MatInvA{\ConvVersFrac*[#2]{(\MatE*\MatI-\MatH*\MatF)/(\DETMATRICE)}}% + \def\MatInvB{\ConvVersFrac*[#2]{(-\MatB*\MatI+\MatC*\MatH)/(\DETMATRICE)}}% + \def\MatInvC{\ConvVersFrac*[#2]{(\MatB*\MatF-\MatC*\MatE)/(\DETMATRICE)}}% + \def\MatInvD{\ConvVersFrac*[#2]{(-\MatD*\MatI+\MatF*\MatG)/(\DETMATRICE)}}% + \def\MatInvE{\ConvVersFrac*[#2]{(\MatA*\MatI-\MatC*\MatG)/(\DETMATRICE)}}% + \def\MatInvF{\ConvVersFrac*[#2]{(-\MatA*\MatF+\MatD*\MatC)/(\DETMATRICE)}}% + \def\MatInvG{\ConvVersFrac*[#2]{(\MatD*\MatH-\MatE*\MatG)/(\DETMATRICE)}}% + \def\MatInvH{\ConvVersFrac*[#2]{(-\MatA*\MatH+\MatB*\MatG)/(\DETMATRICE)}}% + \def\MatInvI{\ConvVersFrac*[#2]{(\MatA*\MatE-\MatB*\MatD)/(\DETMATRICE)}}% }% {% - \def\MatInvA{\ConvVersFrac[#2]{(\MatE*\MatI-\MatH*\MatF)/\DETMATRICE}}% - \def\MatInvB{\ConvVersFrac[#2]{(-\MatB*\MatI+\MatC*\MatH)/\DETMATRICE}}% - \def\MatInvC{\ConvVersFrac[#2]{(\MatB*\MatF-\MatC*\MatE)/\DETMATRICE}}% - \def\MatInvD{\ConvVersFrac[#2]{(-\MatD*\MatI+\MatF*\MatG)/\DETMATRICE}}% - \def\MatInvE{\ConvVersFrac[#2]{(\MatA*\MatI-\MatC*\MatG)/\DETMATRICE}}% - \def\MatInvF{\ConvVersFrac[#2]{(-\MatA*\MatF+\MatD*\MatC)/\DETMATRICE}}% - \def\MatInvG{\ConvVersFrac[#2]{(\MatD*\MatH-\MatE*\MatG)/\DETMATRICE}}% - \def\MatInvH{\ConvVersFrac[#2]{(-\MatA*\MatH+\MatB*\MatG)/\DETMATRICE}}% - \def\MatInvI{\ConvVersFrac[#2]{(\MatA*\MatE-\MatB*\MatD)/\DETMATRICE}}% + \def\MatInvA{\ConvVersFrac[#2]{(\MatE*\MatI-\MatH*\MatF)/(\DETMATRICE)}}% + \def\MatInvB{\ConvVersFrac[#2]{(-\MatB*\MatI+\MatC*\MatH)/(\DETMATRICE)}}% + \def\MatInvC{\ConvVersFrac[#2]{(\MatB*\MatF-\MatC*\MatE)/(\DETMATRICE)}}% + \def\MatInvD{\ConvVersFrac[#2]{(-\MatD*\MatI+\MatF*\MatG)/(\DETMATRICE)}}% + \def\MatInvE{\ConvVersFrac[#2]{(\MatA*\MatI-\MatC*\MatG)/(\DETMATRICE)}}% + \def\MatInvF{\ConvVersFrac[#2]{(-\MatA*\MatF+\MatD*\MatC)/(\DETMATRICE)}}% + \def\MatInvG{\ConvVersFrac[#2]{(\MatD*\MatH-\MatE*\MatG)/(\DETMATRICE)}}% + \def\MatInvH{\ConvVersFrac[#2]{(-\MatA*\MatH+\MatB*\MatG)/(\DETMATRICE)}}% + \def\MatInvI{\ConvVersFrac[#2]{(\MatA*\MatE-\MatB*\MatD)/(\DETMATRICE)}}% }% \IfStrEq{#5}{Aff}%si matrice {% @@ -752,16 +754,16 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : {% \IfBooleanTF{#1}% {% - \def\MatInvA{\ConvVersFrac*[#2]{(\MatD)/\DETMATRICE}}% - \def\MatInvB{\ConvVersFrac*[#2]{(-\MatB)/\DETMATRICE}}% - \def\MatInvC{\ConvVersFrac*[#2]{(-\MatC)/\DETMATRICE}}% - \def\MatInvD{\ConvVersFrac*[#2]{(\MatA)/\DETMATRICE}}% + \def\MatInvA{\ConvVersFrac*[#2]{(\MatD)/(\DETMATRICE)}}% + \def\MatInvB{\ConvVersFrac*[#2]{(-\MatB)/(\DETMATRICE)}}% + \def\MatInvC{\ConvVersFrac*[#2]{(-\MatC)/(\DETMATRICE)}}% + \def\MatInvD{\ConvVersFrac*[#2]{(\MatA)/(\DETMATRICE)}}% }% {% - \def\MatInvA{\ConvVersFrac[#2]{(\MatD)/\DETMATRICE}}% - \def\MatInvB{\ConvVersFrac[#2]{(-\MatB)/\DETMATRICE}}% - \def\MatInvC{\ConvVersFrac[#2]{(-\MatC)/\DETMATRICE}}% - \def\MatInvD{\ConvVersFrac[#2]{(\MatA)/\DETMATRICE}}% + \def\MatInvA{\ConvVersFrac[#2]{(\MatD)/(\DETMATRICE)}}% + \def\MatInvB{\ConvVersFrac[#2]{(-\MatB)/(\DETMATRICE)}}% + \def\MatInvC{\ConvVersFrac[#2]{(-\MatC)/(\DETMATRICE)}}% + \def\MatInvD{\ConvVersFrac[#2]{(\MatA)/(\DETMATRICE)}}% }% \IfStrEq{#5}{Aff}%si matrice {% @@ -889,22 +891,22 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : \xintifboolexpr{\DETMATRICE == 0}% {\text{Matrice non inversible}}% {% - \def\MatInvA{(\MatF*\MatK*\MatP+\MatG*\MatL*\MatN+\MatH*\MatJ*\MatO-\MatF*\MatL*\MatO-\MatG*\MatJ*\MatP-\MatH*\MatK*\MatN)/\DETMATRICE}% - \def\MatInvB{(\MatB*\MatL*\MatO+\MatC*\MatJ*\MatP+\MatD*\MatK*\MatN-\MatB*\MatK*\MatP-\MatC*\MatL*\MatN-\MatD*\MatJ*\MatO)/\DETMATRICE}% - \def\MatInvC{(\MatB*\MatG*\MatP+\MatC*\MatH*\MatN+\MatD*\MatF*\MatO-\MatB*\MatH*\MatO-\MatC*\MatF*\MatP-\MatD*\MatG*\MatN)/\DETMATRICE}% - \def\MatInvD{(\MatB*\MatH*\MatK+\MatC*\MatF*\MatL+\MatD*\MatG*\MatJ-\MatB*\MatG*\MatL-\MatC*\MatH*\MatJ-\MatD*\MatF*\MatK)/\DETMATRICE}% - \def\MatInvE{(\MatE*\MatL*\MatO+\MatG*\MatI*\MatP+\MatH*\MatK*\MatM-\MatE*\MatK*\MatP-\MatG*\MatL*\MatM-\MatH*\MatI*\MatO)/\DETMATRICE}% - \def\MatInvF{(\MatA*\MatK*\MatP+\MatC*\MatL*\MatM+\MatD*\MatI*\MatO-\MatA*\MatL*\MatO-\MatC*\MatI*\MatP-\MatD*\MatK*\MatM)/\DETMATRICE}% - \def\MatInvG{(\MatA*\MatH*\MatO+\MatC*\MatE*\MatP+\MatD*\MatG*\MatM-\MatA*\MatG*\MatP-\MatC*\MatH*\MatM-\MatD*\MatE*\MatO)/\DETMATRICE}% - \def\MatInvH{(\MatA*\MatG*\MatL+\MatC*\MatH*\MatI+\MatD*\MatE*\MatK-\MatA*\MatH*\MatK-\MatC*\MatE*\MatL-\MatD*\MatG*\MatI)/\DETMATRICE}% - \def\MatInvI{(\MatE*\MatJ*\MatP+\MatF*\MatL*\MatM+\MatH*\MatI*\MatN-\MatE*\MatL*\MatN-\MatF*\MatI*\MatP-\MatH*\MatJ*\MatM)/\DETMATRICE}% - \def\MatInvJ{(\MatA*\MatL*\MatN+\MatB*\MatI*\MatP+\MatD*\MatJ*\MatM-\MatA*\MatJ*\MatP-\MatB*\MatL*\MatM-\MatD*\MatI*\MatN)/\DETMATRICE}% - \def\MatInvK{(\MatA*\MatF*\MatP+\MatB*\MatH*\MatM+\MatD*\MatE*\MatN-\MatA*\MatH*\MatN-\MatB*\MatE*\MatP-\MatD*\MatF*\MatM)/\DETMATRICE}% - \def\MatInvL{(\MatA*\MatH*\MatJ+\MatB*\MatE*\MatL+\MatD*\MatF*\MatI-\MatA*\MatF*\MatL-\MatB*\MatH*\MatI-\MatD*\MatE*\MatJ)/\DETMATRICE}% - \def\MatInvM{(\MatE*\MatK*\MatN+\MatF*\MatI*\MatO+\MatG*\MatJ*\MatM-\MatE*\MatJ*\MatO-\MatF*\MatK*\MatM-\MatG*\MatI*\MatN)/\DETMATRICE}% - \def\MatInvN{(\MatA*\MatJ*\MatO+\MatB*\MatK*\MatM+\MatC*\MatI*\MatN-\MatA*\MatK*\MatN-\MatB*\MatI*\MatO-\MatC*\MatJ*\MatM)/\DETMATRICE}% - \def\MatInvO{(\MatA*\MatG*\MatN+\MatB*\MatE*\MatO+\MatC*\MatF*\MatM-\MatA*\MatF*\MatO-\MatB*\MatG*\MatM-\MatC*\MatE*\MatN)/\DETMATRICE}% - \def\MatInvP{(\MatA*\MatF*\MatK+\MatB*\MatG*\MatI+\MatC*\MatE*\MatJ-\MatA*\MatG*\MatJ-\MatB*\MatE*\MatK-\MatC*\MatF*\MatI)/\DETMATRICE}% + \def\MatInvA{(\MatF*\MatK*\MatP+\MatG*\MatL*\MatN+\MatH*\MatJ*\MatO-\MatF*\MatL*\MatO-\MatG*\MatJ*\MatP-\MatH*\MatK*\MatN)/(\DETMATRICE)}% + \def\MatInvB{(\MatB*\MatL*\MatO+\MatC*\MatJ*\MatP+\MatD*\MatK*\MatN-\MatB*\MatK*\MatP-\MatC*\MatL*\MatN-\MatD*\MatJ*\MatO)/(\DETMATRICE)}% + \def\MatInvC{(\MatB*\MatG*\MatP+\MatC*\MatH*\MatN+\MatD*\MatF*\MatO-\MatB*\MatH*\MatO-\MatC*\MatF*\MatP-\MatD*\MatG*\MatN)/(\DETMATRICE)}% + \def\MatInvD{(\MatB*\MatH*\MatK+\MatC*\MatF*\MatL+\MatD*\MatG*\MatJ-\MatB*\MatG*\MatL-\MatC*\MatH*\MatJ-\MatD*\MatF*\MatK)/(\DETMATRICE)}% + \def\MatInvE{(\MatE*\MatL*\MatO+\MatG*\MatI*\MatP+\MatH*\MatK*\MatM-\MatE*\MatK*\MatP-\MatG*\MatL*\MatM-\MatH*\MatI*\MatO)/(\DETMATRICE)}% + \def\MatInvF{(\MatA*\MatK*\MatP+\MatC*\MatL*\MatM+\MatD*\MatI*\MatO-\MatA*\MatL*\MatO-\MatC*\MatI*\MatP-\MatD*\MatK*\MatM)/(\DETMATRICE)}% + \def\MatInvG{(\MatA*\MatH*\MatO+\MatC*\MatE*\MatP+\MatD*\MatG*\MatM-\MatA*\MatG*\MatP-\MatC*\MatH*\MatM-\MatD*\MatE*\MatO)/(\DETMATRICE)}% + \def\MatInvH{(\MatA*\MatG*\MatL+\MatC*\MatH*\MatI+\MatD*\MatE*\MatK-\MatA*\MatH*\MatK-\MatC*\MatE*\MatL-\MatD*\MatG*\MatI)/(\DETMATRICE)}% + \def\MatInvI{(\MatE*\MatJ*\MatP+\MatF*\MatL*\MatM+\MatH*\MatI*\MatN-\MatE*\MatL*\MatN-\MatF*\MatI*\MatP-\MatH*\MatJ*\MatM)/(\DETMATRICE)}% + \def\MatInvJ{(\MatA*\MatL*\MatN+\MatB*\MatI*\MatP+\MatD*\MatJ*\MatM-\MatA*\MatJ*\MatP-\MatB*\MatL*\MatM-\MatD*\MatI*\MatN)/(\DETMATRICE)}% + \def\MatInvK{(\MatA*\MatF*\MatP+\MatB*\MatH*\MatM+\MatD*\MatE*\MatN-\MatA*\MatH*\MatN-\MatB*\MatE*\MatP-\MatD*\MatF*\MatM)/(\DETMATRICE)}% + \def\MatInvL{(\MatA*\MatH*\MatJ+\MatB*\MatE*\MatL+\MatD*\MatF*\MatI-\MatA*\MatF*\MatL-\MatB*\MatH*\MatI-\MatD*\MatE*\MatJ)/(\DETMATRICE)}% + \def\MatInvM{(\MatE*\MatK*\MatN+\MatF*\MatI*\MatO+\MatG*\MatJ*\MatM-\MatE*\MatJ*\MatO-\MatF*\MatK*\MatM-\MatG*\MatI*\MatN)/(\DETMATRICE)}% + \def\MatInvN{(\MatA*\MatJ*\MatO+\MatB*\MatK*\MatM+\MatC*\MatI*\MatN-\MatA*\MatK*\MatN-\MatB*\MatI*\MatO-\MatC*\MatJ*\MatM)/(\DETMATRICE)}% + \def\MatInvO{(\MatA*\MatG*\MatN+\MatB*\MatE*\MatO+\MatC*\MatF*\MatM-\MatA*\MatF*\MatO-\MatB*\MatG*\MatM-\MatC*\MatE*\MatN)/(\DETMATRICE)}% + \def\MatInvP{(\MatA*\MatF*\MatK+\MatB*\MatG*\MatI+\MatC*\MatE*\MatJ-\MatA*\MatG*\MatJ-\MatB*\MatE*\MatK-\MatC*\MatF*\MatI)/(\DETMATRICE)}% % \IfBooleanTF{#1}%version étoilée := moinsdevant {% @@ -944,7 +946,7 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : \itemtomacro\MAMATRICEA[3,2]\MatH \itemtomacro\MAMATRICEA[3,3]\MatI %le déterminant - \def\DETMATRICE{\xinteval{\MatA*\MatE*\MatI+\MatD*\MatH*\MatC+\MatB*\MatF*\MatG-\MatG*\MatE*\MatC-\MatD*\MatB*\MatI-\MatA*\MatH*\MatF}}% + \def\DETMATRICE{\xinteval{(\MatA)*(\MatE)*(\MatI)+(\MatD)*(\MatH)*(\MatC)+(\MatB)*(\MatF)*(\MatG)-(\MatG)*(\MatE)*(\MatC)-(\MatD)*(\MatB)*(\MatI)-(\MatA)*(\MatH)*(\MatF)}}% %les coeffs de B \itemtomacro\MAMATRICEB[1]\MatBA \itemtomacro\MAMATRICEB[2]\MatBB @@ -953,15 +955,15 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : \xintifboolexpr{\DETMATRICE == 0}% {\text{Matrice non inversible}}% {% - \def\MatInvA{(\MatE*\MatI-\MatH*\MatF)/\DETMATRICE}% - \def\MatInvB{(-\MatB*\MatI+\MatC*\MatH)/\DETMATRICE}% - \def\MatInvC{(\MatB*\MatF-\MatC*\MatE)/\DETMATRICE}% - \def\MatInvD{(-\MatD*\MatI+\MatF*\MatG)/\DETMATRICE}% - \def\MatInvE{(\MatA*\MatI-\MatC*\MatG)/\DETMATRICE}% - \def\MatInvF{(-\MatA*\MatF+\MatD*\MatC)/\DETMATRICE}% - \def\MatInvG{(\MatD*\MatH-\MatE*\MatG)/\DETMATRICE}% - \def\MatInvH{(-\MatA*\MatH+\MatB*\MatG)/\DETMATRICE}% - \def\MatInvI{(\MatA*\MatE-\MatB*\MatD)/\DETMATRICE}% + \def\MatInvA{(\MatE*\MatI-\MatH*\MatF)/(\DETMATRICE)}% + \def\MatInvB{(-\MatB*\MatI+\MatC*\MatH)/(\DETMATRICE)}% + \def\MatInvC{(\MatB*\MatF-\MatC*\MatE)/(\DETMATRICE)}% + \def\MatInvD{(-\MatD*\MatI+\MatF*\MatG)/(\DETMATRICE)}% + \def\MatInvE{(\MatA*\MatI-\MatC*\MatG)/(\DETMATRICE)}% + \def\MatInvF{(-\MatA*\MatF+\MatD*\MatC)/(\DETMATRICE)}% + \def\MatInvG{(\MatD*\MatH-\MatE*\MatG)/(\DETMATRICE)}% + \def\MatInvH{(-\MatA*\MatH+\MatB*\MatG)/(\DETMATRICE)}% + \def\MatInvI{(\MatA*\MatE-\MatB*\MatD)/(\DETMATRICE)}% % \IfBooleanTF{#1}%version étoilée := moinsdevant {% @@ -993,7 +995,7 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : \itemtomacro\MAMATRICEA[2,1]\MatC \itemtomacro\MAMATRICEA[2,2]\MatD %le déterminant - \def\DETMATRICE{\xinteval{\MatA*\MatD-\MatB*\MatC}}% + \def\DETMATRICE{\xinteval{(\MatA)*(\MatD)-(\MatB)*(\MatC)}}% %les coeffs de B \itemtomacro\MAMATRICEB[1]\MatBA \itemtomacro\MAMATRICEB[2]\MatBB @@ -1001,19 +1003,19 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : \xintifboolexpr{\DETMATRICE == 0}% {\text{Matrice non inversible}}% {% - \def\MatInvA{(\MatD)/\DETMATRICE}% - \def\MatInvB{(-\MatB)/\DETMATRICE}% - \def\MatInvC{(-\MatC)/\DETMATRICE}% - \def\MatInvD{(\MatA)/\DETMATRICE}% + \def\MatInvA{(\MatD)/(\DETMATRICE)}% + \def\MatInvB{(-\MatB)/(\DETMATRICE)}% + \def\MatInvC{(-\MatC)/(\DETMATRICE)}% + \def\MatInvD{(\MatA)/(\DETMATRICE)}% % \IfBooleanTF{#1}% {% - \def\MatResA{\ConvVersFrac*[#2]{\MatInvA*\MatBA+\MatInvB*\MatBB}}% - \def\MatResB{\ConvVersFrac*[#2]{\MatInvC*\MatBA+\MatInvD*\MatBB}}% + \def\MatResA{\ConvVersFrac*[#2]{(\MatInvA)*(\MatBA)+(\MatInvB)*(\MatBB)}}% + \def\MatResB{\ConvVersFrac*[#2]{(\MatInvC)*(\MatBA)+(\MatInvD)*(\MatBB)}}% }% {% - \def\MatResA{\ConvVersFrac[#2]{\MatInvA*\MatBA+\MatInvB*\MatBB}}% - \def\MatResB{\ConvVersFrac[#2]{\MatInvC*\MatBA+\MatInvD*\MatBB}}% + \def\MatResA{\ConvVersFrac[#2]{(\MatInvA)*(\MatBA)+(\MatInvB)*(\MatBB)}}% + \def\MatResB{\ConvVersFrac[#2]{(\MatInvC)*(\MatBA)+(\MatInvD)*(\MatBB)}}% }% \IfStrEq{#6}{Matrice}%si matrice {% @@ -1442,7 +1444,7 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) : }% }{}% \begin{pNiceMatrix}[#3] - \MatResA & \MatResB & \MatResC \\ \MatResD & \MatResE & \MatResF \\ \MatResG & \MatResH & \MatResI + \MatResA & \MatResB & \MatResC \\ \MatResD & \MatResE & \MatResF \\ \MatResG & \MatResH & \MatResI \end{pNiceMatrix}% }{}%fin 3,3*3,3 \xintifboolexpr{\NbLigMatA==1 'and' \NbColMatA==4 'and' \NbLigMatB==4 'and' \NbColMatB==1}% (1,4)*(4,1) |