指示矩阵/数组中重复的非对角线元素的最佳方法是什么?

指示矩阵/数组中重复的非对角线元素的最佳方法是什么?

我想排版以下类型的矩阵:当涉及的符号很大时,例如,代替$r$,假设我们有$\mu(k-1)$,代替$\lambda$,我们有$\mu(k-2)$,下面的矩阵 B 会变得非常丑陋,尤其是由于$\ddots$看起来很丑陋。

有没有更好的方法来排版像下面的矩阵。

矩阵


我发现,如果所有条目都相同,则非对角线条目通常会被大而突出的条目替换。如果有人能想出一个技巧来做到这一点,我会很高兴。可能,这是标准做法,而我不知道。

答案1

这是矩阵模式的一个非常常见的问题,老实说,我\<>dots一点也不喜欢这种解决方案。我对这种用法有强烈的偏见,我倾向于认为它们在矩阵的上对角线和下对角线上不起作用。

因此,无论解决方案是什么,人们都应该选择传达信息,而不是遵守一些丑陋的标准。因此,我通常会选择以下解决方案之一

  1. 咬紧牙关,正确排版矩阵,使得点清晰无误。

    \documentclass{article}
    \usepackage{amsmath}
    \begin{document}
    \[ AA^T = B = rI + 
    \begin{bmatrix}
    0       &\lambda &\ldots  &\lambda\\
    \lambda & 0      &\ddots  &\vdots\\
    \vdots  &\ddots  &0       &\lambda\\
    \lambda &\ldots  &\lambda &0
    \end{bmatrix}
    \]
    \end{document}
    

    在此处输入图片描述

  2. 避免混淆图形并定义有意义的(希望如此!)快捷方式,例如,您可以用黑板 1 定义所有一矩阵并I从中减去而不是。从文档空间的角度来看,用J替换不会获得太多好处。(1-I)J

    \documentclass{article}
    \usepackage{bbm}
    \begin{document}
    \[ AA^T = B = rI + \lambda(\mathbbm{1}-I) \]
    \end{document}
    

    在此处输入图片描述

  3. 使用任何图形包、TikZ、PSTricks、METAPOST 等正确绘制,如跨越矩阵的多行/列的对角点

答案2

这是个想法。我把它拼凑起来,所以可能需要手动调整p{3.5ex}才能\scalebox{2}得到你想要的。可能有更好的方法来完成同样的事情。

\documentclass{minimal}
\usepackage{array}
\usepackage{graphicx}
\usepackage{multirow}
\begin{document}

\[
\left[
\begin{array}{*{5}{>{\centering$}p{3.5ex}<{$}}}
r   &   &   &\multicolumn{2}{c}{\multirow{2}{*}{\scalebox{2}{$\lambda$}}}   \\
    &   r   &   &   &\\
    &   &\ddots &   &\\
\multicolumn{2}{c}{\multirow{2}{*}{\scalebox{2}{$\lambda$}}}&&r&\\
    &   &   &   &r
\end{array}
\right]
\]

\end{document}

得出以下结论

结果

答案3

您想要传达这样的想法:\mu(k-1)系数在对角线上重复,并且其他系数都等于\mu(k-2)。那么为什么不尝试以下方法呢?

\[
AA^T=B=
\begin{bmatrix}
\mu(k-1) & \mu(k-2) & \mu(k-2) & \dots & \mu(k-2) \\
\mu(k-2) & \mu(k-1) & \mu(k-2) & \dots & \mu(k-2)\\
\hdotsfor{5} \\
\mu(k-2) & \dots & \mu(k-2) & \mu(k-2) & \mu(k-1)
\end{bmatrix}
=(\mu(k-1)-\mu(k-2))I_{v}+\mu(k-2)J_{v}
\]

(可能需要分成两行)

在此处输入图片描述

您可能需要添加以下形式的补充行

\mu(k-2) & \dots & \mu(k-2) & \mu(k-1) & \mu(k-2) \

就在最后一行之前。

在此处输入图片描述

答案4

我建议使用nicematrix具有解决此问题的功能的包。 Tikz 节点会自动为矩阵的每个单元创建,并使用 Tikz 绘制虚线。

\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\renewcommand{\arraystretch}{1.5}
\[\begin{pNiceMatrix}
\mu(k-1) & \mu(k-2) & \Cdots   & \mu(k-2) \\
\mu(k-2) & \Ddots   & \Ddots   & \Vdots   \\
\Vdots   & \Ddots   &          & \mu(k-2) \\
\mu(k-2) & \Cdots   & \mu(k-2) & \mu(k-1)       
\end{pNiceMatrix}\]
\end{document}

在此处输入图片描述

相关内容