在 LaTeX 中编写“随机矩阵”

在 LaTeX 中编写“随机矩阵”

我有一些关于随机过程的笔记,想知道是否有一种不那么痛苦的方法在 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}

上述代码的输出

相关内容