制作重叠子矩阵

制作重叠子矩阵

有什么办法可以制作这样的矩阵吗?:

我向你保证,我需要这个

是的,这看起来很奇怪,但我向你保证我确实需要这个。

“列”和“行”数字实际上是某种物理索引,非零条目是物理允许的转换;一个边界条件禁止用括号 [] 表示的子矩阵之外的所有转换;另一个边界条件禁止用 () 表示的子矩阵之外的所有内容。

我试图说明所有允许的条目都可以写在更小的矩阵中,这是两者之间的重叠。

现在我只使用像这样的 png 图像,我在 Gimp 中将其组合在一起,但感觉应该可以使用各种矩阵环境在 latex 中完成此操作。我可以像这样制作允许转换的主矩阵:

\begin{equation}
\begin{matrix}
        &\begin{matrix} 0 & 1 & 2 & 3\end{matrix}\\%The indices on top, with an empty entry in front, the same width as the indices on the side
    \begin{matrix}0\\1\\2\end{matrix}%The indices on the side as a submatrix
    & \begin{vmatrix}%The main submatrix of allowed transitions
        a & 0 & 0 & 0\\
        0 & b & 0 & 0\\
        0 & 0 & c & 0\\
        \end{vmatrix}
\end{matrix}
\end{equation}

产生这个: 仅允许过渡

我可以通过执行以下操作插入一个或另一个子矩阵:

\begin{equation}
\begin{matrix}
        &\begin{matrix} 0 & 1 & 2 & 3\end{matrix}\\%The indices on top, with an empty entry in front, the same width as the indices on the side
    \begin{matrix}0\\1\\2\end{matrix}%The indices on the side as a submatrix
    & \begin{vmatrix}
        \begin{bmatrix}
        a & 0\\
        0 & b\\
        0 & 0
        \end{bmatrix}%
        \begin{matrix}
        0 & 0\\
        0 & 0\\
        c & 0
        \end{matrix}
        \end{vmatrix}
\end{matrix}
\end{equation}

这让我

边界条件 0

或这个:

\begin{equation}
\begin{matrix}
        &\begin{matrix} 0 & 1 & 2 & 3\end{matrix}\\%The indices on top, with an empty entry in front, the same width as the indices on the side
    \begin{matrix}0\\1\\2\end{matrix}%The indices on the side as a submatrix
    & \begin{vmatrix}
        a &\begin{matrix}
            0 & 0 & 0
        \end{matrix}\\%
        \begin{matrix}
            0\\
            0
        \end{matrix}&%
        \begin{pmatrix}
            b & 0 & 0\\
            0 & c & 0
        \end{pmatrix}
        \end{vmatrix}
\end{matrix}
\end{equation}

这让我

边界条件 1

这太糟糕了(数字的排列完全不对),而且我仍然无法将两者结合起来。

所以我的问题是,如何制作一个包含多个重叠子矩阵的矩阵,最好用不同的轮廓 () 与 [] 表示,最好同时保持数字之间的水平间距一致?最好只使用标准包,但我愿意使用其他一些包来执行此操作。

答案1

与。{vNiceMatrix}nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

$\begin{vNiceMatrix}[first-row,first-col,margin]
  & 0 & 1 & 2 & 3 \\
0 & a & 0 & 0 & 0 \\
1 & 0 & b & 0 & 0 \\
2 & 0 & 0 & c & 0 \\
\CodeAfter
  \SubMatrix[{1-1}{3-2}]
  \SubMatrix({2-2}{3-4})
\end{vNiceMatrix}$

\end{document}

上述代码的输出

相关内容