使用 bmatrix 创建 6x6 矩阵

使用 bmatrix 创建 6x6 矩阵

我正在尝试制作一个包含以下文本的 6x6 矩阵:

\begin{gather}
\dfrac{d}{dt}
\begin{bmatrix}
    y \\ \dot{y} \\ a_{M} \\ \lambda_{T} \\ \lambda_{D} \\ a_{T}
\end{bmatrix}
=
\begin{bmatrix}
    0 && 1 && 0 && 0 && 0 && 0 \\
    0 && 1 && 0 && 0 && 0 && 0 \\
    0 && 1 && 0 && 0 && 0 && 0 \\
    0 && 1 && 0 && 0 && 0 && 0 \\
    0 && 1 && 0 && 0 && 0 && 0 \\
    0 && 1 && 0 && 0 && 0 && 0 \\
\end{bmatrix}
\end{gather}

我收到以下错误:

额外的对齐标签已更改为 \cr。\endtempplace \end{gather}。

奇怪的是,当我检查 5x5 的相同代码时,它起作用了。

谢谢。

答案1

问题是,在类似结构中默认仅支持最多十列matrix,但可以使用以下方法增加列数

\setcounter{MaxMatrixCols}{20}

(二十列就足够了)。

但是,如果您希望列之间间隔更大,请正确设置,而不是通过添加虚拟列。

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{equation}
\frac{d}{dt}
\begin{bmatrix}
    y \\ \dot{y} \\ a_{M} \\ \lambda_{T} \\ \lambda_{D} \\ a_{T}
\end{bmatrix}
=
\setlength{\arraycolsep}{2\arraycolsep}% this change is local
\begin{bmatrix}
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
\end{bmatrix}
\end{equation}

\begin{equation}
\frac{d}{dt}
\begin{bmatrix}
    y \\ \dot{y} \\ a_{M} \\ \lambda_{T} \\ \lambda_{D} \\ a_{T}
\end{bmatrix}
=
\begin{bmatrix}
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 & 0 & 0 \\
\end{bmatrix}
\end{equation}

\end{document}

我更喜欢后者。

在此处输入图片描述

答案2

这里的输入实际上不是 6x6 矩阵,而是 6x11 矩阵(数字 og &+1。基本上,由于 ,您有很多空白列&&

默认情况下bmatrix,类似的 envs 最多有 10 列(由计数器控制MaxMatrixCols)。因此,您会收到错误,因为列数多于矩阵 env 定义的列数。

简单的解决方案被&&取代&

按照您在此处写的方式,5x5 矩阵与 10x5 相同,因此在 10 列限制范围内。

正如 David 在评论中提到的那样,equation(*)对于单行程序,它具有其他环境所没有的内置节省空间功能。

相关内容