如何排版具有大量条目的可读对角矩阵?

如何排版具有大量条目的可读对角矩阵?

我想说明两个矩阵的结构,但不幸的是它们很快就变得难以阅读。这是因为其条目的表达式随着每一行而增长。

该方程如下所示:

矩阵结构

MWE 是:

\documentclass{article}

\usepackage{mathtools}

\begin{document}
\begin{multline}
    \underbracket[0pt][0pt]{%
    \begin{pmatrix}
        \mathbf{x}(0) \\
        \mathbf{x}(1) \\
        \mathbf{x}(2) \\
        \vdots \\
        \mathbf{x}(N) 
    \end{pmatrix}
}_{\mathbf{X}}
    = 
    \underbracket[0pt][0pt]{%
    \begin{bmatrix} 
        \eyezero  &     &        &         &  \\
                  & A_0 &        &         &  \\
                  &     & A_1A_0 &         &  \\
                  &     &        & \ddots  &  \\
                  &     &        &         & A_{N-1}A_{N-2}\cdots A_0
    \end{bmatrix} 
}_{S_x}
\underbracket[0pt][0pt]{%
    \begin{pmatrix} 
        \mathbf{x}_0 \\
        \mathbf{x}_0 \\
        \mathbf{x}_0 \\
        \vdots \\
        \mathbf{x}_0 
    \end{pmatrix}
}_{\mathbf{X}_0} \cdots \\*
\hspace*{6em}
    \cdots+ 
    \underbracket[0pt][0pt]{%
        \begin{bmatrix*}[r]
        \zermzero                         &             &        &        & \\
        B_0                               &             &        &        & \\
        A_1 B_0                           & B_{1}       &        &        & \\
        A_2 A_1 B_0                       & A_{2} B_{1} & B_{3}  &        & \\
        \vdots                            & \vdots      & \vdots & \ddots & \\
        A_{N-1}A_{N-2} \cdots A_{1} B_{0} & \cdots      & \cdots & \cdots & B_{N-1} \\
    \end{bmatrix*} 
}_{S_u}
\underbracket[0pt][0pt]{%
    \begin{pmatrix}
        \mathbf{u}(0) \\
        \mathbf{u}(1) \\
        \mathbf{u}(2) \\
        \vdots \\
        \mathbf{u}(N-1)
    \end{pmatrix} 
}_{\mathbf{U}}
\end{multline}

\end{document}

您知道如何利用 LaTeX 提供的工具来提高该方程的可读性吗?

答案1

更新:我搞错了矩阵结构,我修改了代码和图形,我认为现在是正确的。

一个想法是使用 TikZ 排版这些矩阵,并使用其绘图功能以图形方式突出显示结构。例如,对于第一个矩阵:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{equation*}
\begin{pmatrix} x(0)
\\ x(1)
\\ x(2)
\\ \vdots 
\\ x(N)

\end{pmatrix} = \vcenter{\hbox{\tikz[]{
\matrix[matrix of math nodes, ampersand replacement=\&,
left delimiter={[}, right delimiter={]}, row sep=0pt, 
nodes={inner sep=2pt}] (M) {
  I \&  \&  \&  \&  \&   \\ 
    \&  A_0 \&  \&  \&  \&   \\ 
    \&  \&  A_1 A_0 \&  \&  \& \\ 
    \&  \&  \& \ddots  \&   \& \\ 
    \&  \&  \&  \& A_{N-1} A_{N-2} \cdots A0 \\
}; 
\fill[orange, opacity=0.2, rounded corners]
  (M-1-1.north west) -- (M-1-1.north east) -- (M-5-5.north east) 
--(M-5-5.south east) -- (M-5-5.south west) -- (M-1-1.south west)
--cycle;
}}} \begin{pmatrix} x(0)
\\ x(0)
\\ x(0)
\\ \vdots 
\\ x(0)
\end{pmatrix} \cdots 
\end{equation*}     
\end{document}

给出:

结果

第二个矩阵的一种可能性:

\begin{equation*}
\cdots + \vcenter{\hbox{\tikz[]{
\matrix[matrix of math nodes, ampersand replacement=\&,
left delimiter={[}, right delimiter={]}, row sep=0pt, 
nodes={inner sep=2pt}, 
column 1/.style={minimum width=9em},
column 2/.style={minimum width=4em},
column 3/.style={minimum width=4em},
column sep=2pt,
] (M) {
 0 \&  \&  \&  \& \\ 
 B_0 \&  \&  \&  \& \\ 
 A_1B_0 \& B_1 \&  \&  \& \\ 
 A_2A_1B_0 \& A_2B_1 \& B_3 \&  \& \\ 
 \vdots   \&  \vdots  \&  \vdots  \&  \ddots  \& \\ 
 A_{N-1} A_{N-2} \cdots A_1B_0 \& \cdots \& \cdots  \&  \cdots \& B_{N-1} \\
};
\fill[orange, opacity=0.2, rounded corners]
 (M-1-1.north west) rectangle (M-6-1.south east);
\fill[orange, opacity=0.2, rounded corners]
 (M-3-2.north west) rectangle (M-6-2.south east);
\fill[orange, opacity=0.2, rounded corners]
 (M-4-3.north west) rectangle (M-6-3.south east);
\draw[line cap=round, draw opacity=0.2, yellow!70!green, line width=3ex, shorten >=-1ex, shorten <=-1ex]
 (M-2-1.center) to[bend left=15] (M-6-5.center);
}}} \begin{pmatrix} u(0)
 \\ u(1)
 \\ u(2)
 \\ \vdots
 \\ u(N-1)
 \end{pmatrix}
 \end{equation*}

给出:

第二个矩阵

更新对于第二个矩阵,采用不同的方法:

\begin{equation*}
\cdots + \vcenter{\hbox{\tikz[]{
\matrix[matrix of nodes, ampersand replacement=\&,
left delimiter={[}, right delimiter={]}, row sep=0pt, 
nodes={inner sep=2pt, align=right}, 
column 1/.style={text width=9em},
column 2/.style={text width=4em},
column 3/.style={text width=4em},
row 6/.style={minimum height=3ex},
column sep=2pt,
] (M) {
 $0$ \\
 $B_0$ \\
 $A_1B_0$ \& $B_1$ \\
 $A_2A_1B_0$ \& $A_2B_1$ \& $B_3$ \\
 $\vdots$   \&  $\vdots$  \&  $\vdots$  \&  $\ddots$  \\ 
 $A_{N-1} A_{N-2} \cdots A_1B_0$ \& $\cdots$ \& $\cdots$  \&  $\cdots$ \& $B_{N-1}$ \\
};
\fill[orange, opacity=0.2, rounded corners]
 (M-1-1.north west) rectangle (M-6-1.south east);
\fill[orange, opacity=0.2, rounded corners]
 (M-3-2.north west) rectangle (M-6-2.south east);
\fill[orange, opacity=0.2, rounded corners]
 (M-4-3.north west) rectangle (M-6-3.south east);
\fill[orange, opacity=0.2, rounded corners]
 (M-6-5.north west) rectangle (M-6-5.south east);
}}} \begin{pmatrix} u(0)
 \\ u(1)
 \\ u(2)
 \\ \vdots
 \\ u(N-1)
 \end{pmatrix}
 \end{equation*} 

给出:

变体

答案2

您可以尝试的一件事是将矩阵结构拆分为不同的方程环境。

您还可以省略除最后一个方程式之外的所有方程式环境中的编号,这样更容易理解各个段只是一个方程式的一部分。

\documentclass{article}

\usepackage{amsmath}
\begin{document}

\begin{equation*}
\begin{pmatrix} x(0)
\\ x(1)
\\ x(2)
\\ \vdots 
\\ x(N)

\end{pmatrix} = \begin{bmatrix}
I &  &  &  &  &  &  & \\ 
&  A_0&  &  &  &  &  & \\ 
&  &  A_1 A_0 &  &  &  &  & \\ 
&  &  & \ddots  &  &  &  & \\ 
&  &  &  & A_{N-1} A_{N-2} &  \cdots &  A0
\end{bmatrix} \begin{pmatrix} x(0)
\\ x(0)
\\ x(0)
\\ \vdots 
\\ x(0)

\end{pmatrix} \cdots 
\end{equation*}

\begin{equation*}
\cdots + \begin{bmatrix}
 &  & 0 &  &  &  & \\ 
 &  & B_0 &  &  &  & \\ 
 &  & A_1B_0 & B_1 &  &  & \\ 
 &  &  A_2A_1B_0 & A_2B_1 & B_3 &  & \\ 
 &  & \vdots   &  \vdots  &  \vdots  &  \ddots  & \\ 
 A_{N-1} A_{N-2} &  \cdots &  A_1B_0 & \cdots & \cdots  &  \cdots & B_{N-1}
 \end{bmatrix} \begin{pmatrix} u(0)
 \\ u(1)
 \\ u(2)
 \\ \vdots
 \\ u(N-1)

 \end{pmatrix}
 \end{equation*}
 \end{document}

从视觉上看,它与您的 WE 类似,但现在已分段:

在此处输入图片描述

此外,如果您想在文本后面引用矩阵结构的特定部分,您可以向方程环境添加标签:

\begin{equation*}\label{part1}

答案3

这也许不是你想要的,但我宁愿引入一个符号来缩短矩阵条目。例如定义

\bar{A}_i^j=\prod_{k=i}^j A_k

允许几乎有恒定宽度的列。另外,我无法猜测 $S_u$ 中 $A_2 B_1$ 和 $B_3$(此处 $B_2$ 写错了?)下方的点实际上包含什么。

相关内容