我有一些关于随机过程的笔记,想知道是否有一种不那么痛苦的方法在 LaTeX 中构建随机矩阵。痛苦是指我想继续我下面所做的方式。
问题。有没有更直接、更经济的方法在 LaTeX 中编写随机矩阵?随机矩阵的索引位于 matrz 上方和左侧,与矩阵的行和列对齐。我发现制作这种数组的唯一方法是手动调整对齐方式,如下面的代码所示。
$$
\begin{array}{cc ccc c ccc c}
&
&
\hspace*{-5mm}1
&
2
&
3
&
\cdots
&
b-2
&
b-1
&
b
\\
\\
\begin{array}{c}
0\\1\\2\\\vdots \\ \\\vdots \\ b-1 \\ b
\end{array}
&
\left[
\begin{array}{c}
\\ \\ \\ \\ \\ \\ \\ \\
\end{array}
\right.
&\hspace*{-4mm}
\begin{array}{c}
1\\q\\0\\\vdots \\ \\\vdots \\ 0 \\ 0
\end{array}
&
\begin{array}{c}
0\\r\\q\\\vdots \\ \\\vdots \\ 0 \\ 0
\end{array}
&
\begin{array}{c}
0\\0\\p\\\vdots \\ \\\vdots \\ 0 \\ 0
\end{array}
&
\begin{array}{c}
\cdots \\ \cdots\\ \cdots \\\vdots \\ \\\vdots \\\cdots\\ \cdots
\end{array}
&
\begin{array}{c}
0 \\ 0\\ 0 \\\vdots \\ \\\vdots \\q\\ 0
\end{array}
&
\begin{array}{c}
0 \\ 0\\ 0 \\\vdots \\ \\\vdots \\r\\ 0
\end{array}
&
\begin{array}{c}
0 \\ 0\\ 0 \\\vdots \\ \\\vdots \\p\\ 1
\end{array}
&\hspace*{-4mm}
\left.
\begin{array}{c}
\\ \\ \\ \\ \\ \\ \\ \\
\end{array}
\right]
\end{array}
$$
答案1
您blkarray
仍然需要进行一些调整,但不需要对您的代码进行太多调整。
\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}
\begin{document}
\[
\begin{blockarray}{ *{8}{c} }
& 1 & 2 & 3 & \dots & b-2 & b-1 & b \\
\begin{block}{ c @{\quad} [ @{\,} *{7}{c} @{\,} ] }
0 & 1 & 0 & 0 & \dots & 0 & 0 & 0 \smash[b]{\vphantom{\Big|}} \\
1 & q & r & 0 & \dots & 0 & 0 & 0 \\
2 & 0 & q & p & \dots & 0 & 0 & 0 \\
\vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\
b-1 & 0 & 0 & 0 & \dots & q & r & p \\
b & 0 & 0 & 0 & \dots & 0 & 0 & 1 \smash[t]{\vphantom{\Big|}} \\
\end{block}
\end{blockarray}
\]
\end{document}
答案2
其中{NiceMatrix}
有nicematrix
专门设计用于解决此类问题的工具。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[
\begin{NiceMatrix}
& 1 & 2 & 3 & \dots & b-2 & b-1 & b \\
0 & 1 & 0 & 0 & \dots & 0 & 0 & 0 \\
1 & q & r & 0 & \dots & 0 & 0 & 0 \\
2 & 0 & q & p & \dots & 0 & 0 & 0 \\
\vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\
b-1 & 0 & 0 & 0 & \dots & q & r & p \\
b & 0 & 0 & 0 & \dots & 0 & 0 & 1 \\
\CodeAfter
\SubMatrix[{2-2}{7-8}]
\end{NiceMatrix}
\]
\end{document}