Alignement de formule dans une matrice de transition

Dec 29 2020

J'ai utilisé le problème soulevé dans le lien ci-dessous pour construire 2 façons alternatives de générer une matrice de transition pour une chaîne de Markov. Cependant, comme vous pouvez le voir, dans la première version, ma formule perd son alignement attendu. Et dans la seconde, m étiquettes de colonne et de ligne perdent leur alignement.

Le lien: Créer une matrice de probabilité de transition

Pourriez-vous s'il vous plaît m'aider à identifier ce qui ne va pas? J'ai essayé d'éditer beaucoup de cela sans succès.

Option 1:

\usepackage{amsmath, blkarray}
\[
\mathbf{P} = 
\begin{blockarray}{c@{\hspace{1pt}}rrrrr@{\hspace{3pt}}}
    & 0   & 1   & 2   & 3   & 4 \\
    \begin{block}{r@{\hspace{1pt}}|@{\hspace{1pt}}|@{\hspace{1pt}}
            rrrrr@{\hspace{1pt}}|@{\hspace{1pt}}|}
        0 & 0 & $\frac{1}{3}(\frac{2}{3}$)^{1-1}$ & $\frac{1}{3}(\frac{2}{3}$)^{2-1}$  & $\frac{1}{3}(\frac{2}{3}$)^{3-1}$ & {$\frac{1}{3}(\frac{2}{3}$)^{4-1}$}\\
        1 & 1.0 & 0 & 0  & 0 & 0\\
        2 & 0   & 1.0   & 0 & 00 & 0   \\
        3 & 0   & 0   & 1.0 & 0 & 0   \\
        4 & 0   & 0   & 0 & 1.0 & 0   \\
    \end{block}
\end{blockarray}
\]

Option 2:

\usepackage{scalerel,tabstackengine,xpatch}
\setstacktabbedgap{1em}
\xpatchcmd\Centerstack{\strutlongstacks{T}}{}{}{}
\[
\def\stackalignment{c}
\mathbf{P} = 
\Centerstack{
    0  \\
    1  \\
    2  \\
    3  \\
    4  \\
}\!
\stackon{
    \stretchleftright{|\!|}{\tabbedCenterstack{
            0.0 & {$\frac{1}{3}(\frac{2}{3}$)^{1-1}$} & {$\frac{1}{3}(\frac{2}{3}$)^{2-1}$} & {$\frac{1}{3}(\frac{2}{3}$)^{3-1}$} & {$\frac{1}{3}(\frac{2}{3}$)^{4-1}$}\\
            1.0 & 0.0 & 0.0 & 0.0 & 0.0 \\
            0.0   & 1.0   & 0   & 0.0 & 0.0 \\
            0.0 & 0.0 & 1.0 & 0.0 & 0.0 \\
            0.0 & 0.0 & 0.0 & 1.0 & 0.0
    }}{|\!|}}{\tabbedCenterstack{
        \protect\phantom{0.5}0 & \protect\phantom{0.5}1 & \protect\phantom{0.5}2 & \protect\phantom{0.5}3 & \protect\phantom{0.5}4}
    \kern1pt}
\]

Merci beaucoup pour l'aide!

C'est très apprécié.

Réponses

1 egreg Dec 29 2020 at 06:49

C'est beaucoup plus facile avec nicematrix:

\documentclass{article}
\usepackage{amsmath, nicematrix}

\begin{document}

\[
\mathbf{P} =
\begin{VNiceMatrix}[first-col,first-row]
  & 0   & 1   & 2   & 3   & 4 \\
0 & 0   & \frac{1}{3}(\frac{2}{3})^{1-1}
        & \frac{1}{3}(\frac{2}{3})^{2-1}
        & \frac{1}{3}(\frac{2}{3})^{3-1}
        & \frac{1}{3}(\frac{2}{3})^{4-1} \\
1 & 1.0 & 0 & 0  & 0 & 0\\
2 & 0   & 1.0   & 0 & 00 & 0   \\
3 & 0   & 0   & 1.0 & 0 & 0   \\
4 & 0   & 0   & 0 & 1.0 & 0   \\
\end{VNiceMatrix}
\]

\end{document}

Les entrées d'une matrice, que ce soit XNiceMatrix, Xmatrix, arrayou blockarraysont déjà en mode mathématique, donc pas $à utiliser. (Le Xsymbole représente l'un des caractères autorisés pour obtenir les différents délimiteurs de matrice.)