带尺寸的块矩阵方程

带尺寸的块矩阵方程

我需要在 LaTex 中写入以下矩阵方程在此处输入图片描述。显示的虚线需要出现在结构中,但不需要有颜色(也可以是黑色)。我在这里使用它只是为了显示所需的对齐。我还需要为各个块指定尺寸,如图所示。最好的方法是什么?

答案1

可以使用 TikZ 和matrix of math nodes(来自matrix库)来构建 natrices;尺寸的括号是使用库brace中的装饰构建的decorations.pathreplacing

\documentclass{article}
\usepackage{tikz}
\usepackage{geometry}
\usetikzlibrary{matrix,positioning,decorations.pathreplacing}

\begin{document}

\begin{tikzpicture}[
style1/.style={
  matrix of math nodes,
  every node/.append style={text width=#1,align=center,minimum height=5ex},
  nodes in empty cells,
  left delimiter=[,
  right delimiter=],
  },
style2/.style={
  matrix of math nodes,
  every node/.append style={text width=#1,align=center,minimum height=5ex},
  nodes in empty cells,
  left delimiter=\lbrace,
  right delimiter=\rbrace,
  }
]
\matrix[style1=0.65cm] (1mat)
{
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
};
\draw[dashed]
  (1mat-3-5.south west) -- (1mat-3-6.south east);
\draw[loosely dashed]
  (1mat-5-1.south west) -- (1mat-5-6.south east);
\draw[dash dot]
  (1mat-1-4.north east) -- (1mat-8-4.south east);
\draw[]
  (1mat-5-2.south east) -- (1mat-8-2.south east);
\node[font=\huge] 
  at ([xshift=-10pt]1mat-3-3) {$A_{1}$};
\node[font=\Large] 
  at (1mat-2-5.east) {$0$};
\node[font=\Large] 
  at (1mat-5-5.north east) {$A_{2}$};
\node[font=\Large] 
  at (1mat-7-5.east) {$B_{2}$};
\node[font=\Large] 
  at (1mat-7-1.east) {$0$};
\node[font=\Large] 
  at (1mat-7-3.east) {$B_{1}$};
\draw[decoration={brace,mirror,raise=12pt},decorate]
  (1mat-1-1.north west) -- 
  node[left=15pt] {$n_{1}$} 
  (1mat-5-1.south west);
\draw[decoration={brace,mirror,raise=12pt},decorate]
  (1mat-6-1.north west) -- 
  node[left=15pt] {$n_{2}$} 
  (1mat-8-1.south west);
\draw[decoration={brace,mirror,raise=5pt},decorate]
  (1mat-8-3.south west) -- 
  node[below=7pt] {$n_{2}$} 
  (1mat-8-4.south east);
\draw[decoration={brace,mirror,raise=5pt},decorate]
  (1mat-8-5.south west) -- 
  node[below=7pt] {$n_{2}$} 
  (1mat-8-6.south east);
\draw[decoration={brace,raise=12pt},decorate]
  (1mat-4-6.north east) -- 
  node[right=15pt] {$n_{2}$} 
  (1mat-5-6.south east);
\draw[decoration={brace,raise=7pt},decorate]
  (1mat-1-1.north west) -- 
  node[above=8pt] {$n_{1}$} 
  (1mat-1-4.north east);

\matrix[style2=1.2cm,right=40pt of 1mat] (2mat)
{
  Q_{1} \\
  \vdots \\
  Q_{n_{1} - n_{2}} \\
  \vdots \\
  Q_{n_{1}} \\
  R_{1} \\
  \vdots \\
  R_{n_{2}} \\
};
\draw[dashed]
  (2mat-3-1.south west) -- (2mat-3-1.south east);
\draw[loosely dashed]
  (2mat-5-1.south west) -- (2mat-5-1.south east);

\node at ([xshift=17pt,yshift=-1.2pt]2mat.east) {$=$};

\matrix[style2=0.7cm,right=35pt of 2mat] (3mat)
{
  0 \\
  \vdots \\
  \\
  \vdots \\
  0 \\
  b_{1} \\
  \vdots \\
  b_{n_{2}} \\
};
\draw[loosely dashed]
  (3mat-5-1.south west) -- (3mat-5-1.south east);
\end{tikzpicture}

\end{document}

在此处输入图片描述

也许你应该考虑是否有其他方式来显示信息?删除带有尺寸的括号并使用单个虚线样式可以改善结果:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning,decorations.pathreplacing}

\begin{document}

\[
\begin{tikzpicture}[
style1/.style={
  matrix of math nodes,
  every node/.append style={text width=#1,align=center,minimum height=5ex},
  nodes in empty cells,
  left delimiter=[,
  right delimiter=],
  },
style2/.style={
  matrix of math nodes,
  every node/.append style={text width=#1,align=center,minimum height=5ex},
  nodes in empty cells,
  left delimiter=\lbrace,
  right delimiter=\rbrace,
  }
]
\matrix[style1=0.85cm] (1mat)
{
  & & & & &  \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
  & & & & & \\
};
\draw[dashed]
  (1mat-3-5.south west) -- (1mat-3-6.south east);
\draw[dashed]
  (1mat-6-1.south west) -- (1mat-6-6.south east);
\draw[dashed]
  (1mat-1-4.north east) -- (1mat-9-4.south east);
\draw[dashed]
  (1mat-6-2.south east) -- (1mat-9-2.south east);
\node[font=\huge] 
  at (1mat-3-2.south east) {$A_{1}$};
\node[font=\Large] 
  at (1mat-2-5.east) {$0$};
\node[font=\Large] 
  at (1mat-5-5.east) {$A_{2}$};
\node[font=\Large] 
  at (1mat-8-5.east) {$B_{2}$};
\node[font=\Large] 
  at (1mat-8-1.east) {$0$};
\node[font=\Large] 
  at (1mat-8-3.east) {$B_{1}$};

\matrix[style2=1.2cm,right=40pt of 1mat] (2mat)
{
  Q_{1} \\
  \vdots \\
  Q_{n_{1} - n_{2}} \\
  Q_{n_{1} - n_{2}+1} \\
  \vdots \\
  Q_{n_{1}} \\
  R_{1} \\
  \vdots \\
  R_{n_{2}} \\
};
\draw[dashed]
  (2mat-3-1.south west) -- (2mat-3-1.south east);
\draw[dashed]
  (2mat-6-1.south west) -- (2mat-6-1.south east);

\node at ([xshift=17pt,yshift=-1.2pt]2mat.east) {$=$};

\matrix[style2=0.7cm,right=35pt of 2mat] (3mat)
{
  0 \\
  \vdots \\
  \\
  \\
  \vdots \\
  0 \\
  b_{1} \\
  \vdots \\
  b_{n_{2}} \\
};
\draw[dashed]
  (3mat-6-1.south west) -- (3mat-6-1.south east);
\end{tikzpicture}
\]

\end{document}

在此处输入图片描述

相关内容