在矩阵内进行拆分

在矩阵内进行拆分

我有一个由矩阵组成的长方程,我想将其拆分成两行。但是,当我使用拆分时,方程中的第一个项(第一个矩阵)消失了。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,empheq}
\usepackage{amssymb}
\begin{document}

\begin{equation*}
\begin{split}
\renewcommand\arraystretch{1.25}
\underbrace{
\begin{bmatrix}
    x(k+1) \\ 
    x(k+2) \\ 
    x(k+3) \\ 
    \vdots \\ 
    x(k+N_p)
\end{bmatrix}}_\let\scriptstyle\textstyle
\substack{\overrightarrow{x(k+1)}}}&=\underbrace{
    \begin{bmatrix}
     A \\ 
     A^2 \\ 
     A^3 \\ 
     \vdots \\ 
     A^{N_p}
    \end{bmatrix}}_\textstyle
    \begin{array}{c}
    F_x
    \end{array}
  }
    & x(k)
    +
    \underbrace{
    \begin{bmatrix}
     B    & 0  & 0 & \hdots & 0\\
     AB   & B  & 0 & \hdots & 0\\ 
     A^2B & AB & B & \hdots & 0\\
     \vdots & \vdots & \vdots & \ddots & \vdots \\ 
     A^{N_p-1}B & A^{N_p-2}B & A^{N_p-3}B  & \hdots & B
    \end{bmatrix}}_\textstyle
    \begin{array}{c}
    H_x
    \end{array}
  }
    &
  \underbrace{
    \begin{bmatrix}
     u(k) \\ 
     u(k+1) \\ 
     u(k+2) \\ 
     \vdots \\ 
     u(k+N_p-1)
    \end{bmatrix}}_\let\scriptstyle\textstyle
    \substack{\overrightarrow{u(k)}}} 
    \\
&\qquad\underbrace{
\begin{bmatrix}
F    & 0  & 0 & \hdots & 0\\
AF   & F  & 0 & \hdots & 0\\ 
A^2F & AF & F & \hdots & 0\\
\vdots & \vdots & \vdots & \ddots & \vdots \\ 
A^{N_p-1}F & A^{N_p-2}F & A^{N_p-3}F  & \hdots & F
\end{bmatrix}}_\textstyle
\begin{array}{c}
    T
\end{array}
}
    &
  \underbrace{
    \begin{bmatrix}
     D(k) \\ 
     D(k+1) \\ 
     D(k+2) \\ 
     \vdots \\ 
     D(k+N_p-1)
    \end{bmatrix}}_\let\scriptstyle\textstyle
    \substack{\overrightarrow{D(k)}}}
    +
    \underbrace{
    \begin{bmatrix}
     I \\ 
     I+A \\ 
     I+A+A^2 \\ 
     \vdots \\ 
     I+A+A^2+\hdots+A^{N_p-1}
    \end{bmatrix}}_\textstyle
    \begin{array}{c}
    F_x
    \end{array}
  }
x(k)
\end{split}
\end{equation*}
\end{document}

在此处输入图片描述

答案1

我会使用multline*环境而不是嵌套的equation*/split环境。我还将大大简化许多指令中每个指令的第二个参数的结构\underbrace

在此处输入图片描述

\documentclass{article}
\usepackage[letterpaper,margin=1in]{geometry} % set paper size and margins suitably
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % that's the default nowadays
\usepackage{amsmath,amssymb}
\usepackage{old-arrows} % optional -- for smaller arrowheads
\newcommand{\mystrut}{\vphantom{\overrightarrow{x(k+1)}}} % define a typographic strut

\begin{document}

\begin{multline*}
\renewcommand\arraystretch{1.25}
\underbrace{
  \begin{bmatrix}
    x(k+1) \\ 
    x(k+2) \\ 
    x(k+3) \\ 
    \vdots \\ 
    x(k+N_p)
 \end{bmatrix}}_{\textstyle \overrightarrow{x(k+1)}}
=\underbrace{
   \begin{bmatrix}
     A \\ 
     A^2 \\ 
     A^3 \\ 
     \vdots \\ 
     A^{N_p}
   \end{bmatrix}}_{\textstyle F_x\mystrut}
   x(k)
   +
 \underbrace{
   \begin{bmatrix}
     B    & 0  & 0 & \hdots & 0\\
     AB   & B  & 0 & \hdots & 0\\ 
     A^2B & AB & B & \hdots & 0\\
     \vdots & \vdots & \vdots & \ddots & \vdots \\ 
     A^{N_p-1}B & A^{N_p-2}B & A^{N_p-3}B  & \hdots & B
   \end{bmatrix}}_{\textstyle H_x\mystrut}
 \underbrace{
   \begin{bmatrix}
     u(k) \\ 
     u(k+1) \\ 
     u(k+2) \\ 
     \vdots \\ 
     u(k+N_p-1)
   \end{bmatrix}}_{\textstyle \overrightarrow{u(k)}}
   \\  % end of first row
   + % I think a "+" is needed here
 \underbrace{
  \begin{bmatrix}
      F    & 0  & 0 & \hdots & 0\\
      AF   & F  & 0 & \hdots & 0\\ 
      A^2F & AF & F & \hdots & 0\\
      \vdots & \vdots & \vdots & \ddots & \vdots \\ 
      A^{N_p-1}F & A^{N_p-2}F & A^{N_p-3}F  & \hdots & F
   \end{bmatrix}}_{\textstyle T\mystrut}
 \underbrace{
   \begin{bmatrix}
     D(k) \\ 
     D(k+1) \\ 
     D(k+2) \\ 
     \vdots \\ 
     D(k+N_p-1)
   \end{bmatrix}}_{\textstyle \overrightarrow{D(k)}}
   +
 \underbrace{
   \begin{bmatrix}
     I \\ 
     I+A \\ 
     I+A+A^2 \\ 
     \vdots \\ 
     I+A+A^2+\hdots+A^{N_p-1}
   \end{bmatrix}}_{\textstyle F_x\mystrut}
   x(k)
\end{multline*}
\end{document}

答案2

错误主要出现在神秘的_\textstyle或更糟糕的_\let\scriptstyle\textstyle命令中,这些命令只会产生奇怪的错误。

我会采用一种不同的策略,虽然会占用更多的空间,但对读者来说更清晰。

我还尝试修复一些不一致之处:有两个不同的F_x矩阵,并且x(k)没有应该有的箭头。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,empheq}
\usepackage{amssymb}
\begin{document}

\begin{equation*}
\overrightarrow{x(k+1)}=
F_x \overrightarrow{x(k)}+
H_x\overrightarrow{u(k)}+
T\overrightarrow{D(k)}+
G_x\overrightarrow{x(k)}
\end{equation*}
where
\begin{equation*}
\overrightarrow{x(k)}=
  \begin{bmatrix}
    x(k) \\ 
    x(k+1) \\ 
    x(k+2) \\ 
    \vdots \\ 
    x(k+N_p-1)
  \end{bmatrix}
\!,\;
\overrightarrow{u(k)}=
  \begin{bmatrix}
    u(k) \\ 
    u(k+1) \\ 
    u(k+2) \\ 
    \vdots \\ 
    u(k+N_p-1)
  \end{bmatrix}
\!,\;
\overrightarrow{D(k)}=
  \begin{bmatrix}
    D(k) \\ 
    D(k+1) \\ 
    D(k+2) \\ 
    \vdots \\ 
    D(k+N_p-1)
   \end{bmatrix}
\end{equation*}
and
\begin{align*}
F_x&=
  \begin{bmatrix}
    A \\ 
    A^2 \\ 
    A^3 \\ 
    \vdots \\ 
    A^{N_p}
  \end{bmatrix}
\!,\quad
G_x=
  \begin{bmatrix}
    I \\ 
    I+A \\ 
    I+A+A^2 \\ 
    \vdots \\ 
    I+A+A^2+\dots+A^{N_p-1}
  \end{bmatrix}
\!,
\\[1ex]
H_x&=
  \begin{bmatrix}
    B    & 0  & 0 & \dots & 0\\
    AB   & B  & 0 & \dots & 0\\ 
    A^2B & AB & B & \dots & 0\\
    \vdots & \vdots & \vdots & \ddots & \vdots \\ 
    A^{N_p-1}B & A^{N_p-2}B & A^{N_p-3}B  & \dots & B
  \end{bmatrix}
\!,
\\[1ex]
T&=
  \begin{bmatrix}
    F    & 0  & 0 & \dots & 0\\
    AF   & F  & 0 & \dots & 0\\ 
    A^2F & AF & F & \dots & 0\\
    \vdots & \vdots & \vdots & \ddots & \vdots \\ 
    A^{N_p-1}F & A^{N_p-2}F & A^{N_p-3}F  & \dots & F
  \end{bmatrix}
\!.
\end{align*}

\end{document}

在此处输入图片描述

相关内容