特定块矩阵

特定块矩阵

我想在 LaTeX 中放入一些块矩阵:最后它们应该看起来像这样;我需要的第一个矩阵看起来像这样,抱歉我知道这样看起来不太清楚(为了更好地查看,请查看下图)。较大的点表示必须重复块。较小的点表示矩阵可以更大。我不需要在 latex 中完全这样,只需在左下角放置点也可以。)

矩阵

 2 -1  0  0  0  0  0  0 
-1  2  0  0  0  0  0  0 
 0 -1  2 -1  0  .  .  . 
 0  0 -1  2 -1  0  0  . 
 0  0  0 -1  2 -1  0  0
 and so on...

第二个如下所示:

1 0  0  0 0  0 0 
0 1 -1  0 0  0 0 
0 -1 1  0 0  0 0 
0 0  0  1 -1 0 0 
0 0  0  -1 1 0 0 
0 0  0  0  0 . . 
0 .  .  .  . ... 

我尝试使用该包来这样做easybmat

\[
\left(
\begin{BMAT}(rc){c:c}{c:c}
\begin{BMAT}(rc){cc}{cc}
1 & -1\\
-1 & 1
\end{BMAT} &\begin{array}{cc}
0 & . \\
0 & 0 \\
\end{array}\\
\begin{array}{cc}
0& 0 \\
. & 0 \\
\end{array} & \begin{BMAT}(rc){cc}{cc}
1 & -1\\
-1 & 1
\end{BMAT} 
\end{BMAT}
\right)
\] 

但这给出了正确的想法,但我不知道如何将其调整到更大的尺寸。而且我也不知道如何放入第二个矩阵所需的额外单元格。

答案1

这是第一个矩阵的可能代码:

\documentclass{book}
\usepackage{easybmat}   

\begin{document}

\[ 
A= \delta^{-2}
\left(
\begin{BMAT}[8pt]{cc:cc:cc:c}{cc:cc:cc:c}
  1 & -1 & 0 & & & & 0 \\
  -1 & 1 & 0 & 0 & 0 & & \\
  0 & 0 & \bullet & \bullet & 0 & &\\
  & 0 & \bullet & \bullet & 0 & 0 & \\
  &  & 0 & 0 & \bullet & \bullet & 0 \\
  &  &  & 0 & \bullet & \bullet & 0 \\
  0 &  &  & 0 & 0 &0 &
\end{BMAT} 
\right)
\]

\end{document}

在此处输入图片描述

使用此示例代码,您可以轻松构建第二个矩阵。

答案2

你的图片中第一个矩阵可以通过下面的代码获取:

\[
\left(
\begin{BMAT}(c)[4pt]{cc:cc:cc:c}{cc:cc:cc:c}
1  & -1 & 0 & & & & 0 \\
-1 &  1 & 0 & 0 & 0 & & \\
0 & 0 & \bullet & \bullet & 0 & & \\
  & 0 & \bullet & \bullet & 0 & 0 & 0\\
 & & 0 & 0 & \bullet & \bullet & 0 \\
 & & & 0 & \bullet & \bullet & 0 \\
0 & & & 0 & 0 & 0 & \smash{\ddots}
\end{BMAT}
\right)
\]

表示(c)所有列的宽度应相同;[4pt]表示额外的间距。然后是列模式:

cc:cc:cc:c

意思是“两个居中列,分离,两个居中列,分离,一个居中列”。

之后是行的规范,类似。重要的是在每行中输入准确数量的&字符,本例中为 6 个。希望这对您有所帮助;文档位于http://mirror.ctan.org/macros/latex/contrib/easy/doc/docbmat.pdf有点神秘。

答案3

{pNiceArray}这是第一个矩阵的代码nicematrix。使用该包,可以使用 TikZ 样式绘制矩阵规则。

\documentclass{book}
\usepackage{nicematrix,tikz}   

\NiceMatrixOptions
  {
    custom-line = 
     {
       letter = : ,
       command = hdashedline , 
       tikz = dashed
     }
  }

\begin{document}

\[\renewcommand{\arraystretch}{1.3}
A= \delta^{-2}
\begin{pNiceArray}{cc:cc:cc:c}[margin=4pt]
  1 & -1 & 0 & & & & 0 \\
  -1 & 1 & 0 & 0 & 0 & & \\
\hdashedline
  0 & 0 & \bullet & \bullet & 0 & &\\
  & 0 & \bullet & \bullet & 0 & 0 & \\
\hdashedline
  &  & 0 & 0 & \bullet & \bullet & 0 \\
  &  &  & 0 & \bullet & \bullet & 0 \\
\hdashedline
  0 &  &  & 0 & 0 &0 &
\end{pNiceArray} 
\]

\end{document}

上述代码的输出

答案4

我会使用arydshlntabu打包来代替easybmat。语法更标准、更灵活。

\documentclass{article}
\usepackage{arydshln}   

\begin{document}

\[ 
A= \delta^{-2}
\left( \begin{array}{cc:cc:cc:c}
  1 & -1 & 0 & & & & 0 \\
  -1 & 1 & 0 & 0 & 0 & & \\ \hdashline
  0 & 0 & \bullet & \bullet & 0 & &\\
  & 0 & \bullet & \bullet & 0 & 0 & \\ \hdashline
  &  & 0 & 0 & \bullet & \bullet & 0 \\
  &  &  & 0 & \bullet & \bullet & 0 \\ \hdashline
  0 &  &  & 0 & 0 &0 & \ddots
\end{array} \right)
\]

\end{document}

tabu

\documentclass{article}
\usepackage{tabu}   
\begin{document}

\[ 
A= \delta^{-2}
\tabulinestyle{on 2pt off 2pt}
\begin{tabu}{cc|cc|cc|c}
  1 & -1 & 0 & & & & 0 \\
  -1 & 1 & 0 & 0 & 0 & & \\ \tabucline-
  0 & 0 & \bullet & \bullet & 0 & &\\
  & 0 & \bullet & \bullet & 0 & 0 & \\ \tabucline-
  &  & 0 & 0 & \bullet & \bullet & 0 \\
  &  &  & 0 & \bullet & \bullet & 0 \\ \tabucline-
  0 &  &  & 0 & 0 &0 & \ddots
\end{tabu}
\]

\end{document}

相关内容