紧凑形式的两个对角矩阵

紧凑形式的两个对角矩阵

我有一个 15x15 矩阵,它很大,而且不便于格式化。除主对角线和对角线下方的元素外,所有元素均为零。如何正确格式化它?比如我想改用两个向量。

这是矩阵。

\begin{bmatrix}
1.4142 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
-0.7071 & 1.2247 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & -0.8165 & 1.1547 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & -0.8660 & 1.1180 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & -0.8944 & 1.0954 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & -0.9129 & 1.0801 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & -0.9258 & 1.0690 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & -0.9354 & 1.0607 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.9428 & 1.0541 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.9487 & 1.0488 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.9535 & 1.0445 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.9574 & 1.0408 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.9608 & 1.0377 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.9636 & 1.0351 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.9661 & 1.0328\\
\end{bmatrix}

答案1

您可以通过创建列表(使用包listofitems)然后单独检索元素来使用类似向量的表达式。

该列表是使用 \readlist命令创建的。

该列表以逗号分隔,并使用符号恢复元素

\ListName[<order of the element>]

为了方便起见,本例定义了两个各含 15 个项目的列表。(这样更容易写行)

A

作为一种改进,您可以用一个大零替换多个零。

b

\documentclass[11pt, landscape]{article}

\usepackage[left=2.00cm]{geometry}

\usepackage{listofitems}% added <<< 
\usepackage{amsmath}% added <<<
\setcounter{MaxMatrixCols}{15}% more columns allowed

\begin{document}

\small 

\readlist\DA{1.4142, 1.2247, 1.1547, 1.1180, 1.0954, 1.0801, 1.0690, 1.0607, 1.0541, 1.0488, 1.0445, 1.0408,  1.0377, 1.0351, 1.0328} % 15 elements
\readlist\DB{0, -0.7071, -0.8165, -0.8660, -0.8944, -0.9129, -0.9258, -0.9354, -0.9428, -0.9487, -0.9535, -0.9574, -0.9608, -0.9636, -0.9661}% 15 elements

$\begin{bmatrix}
    \DA[1] & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
    \DB[2] & \DA[2] & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & \DB[3] & \DA[3] & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & \DB[4] & \DA[4] & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & 0 &\DB[5]& \DA[5] & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & \DB[6] & \DA[6] & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & \DB[7] & \DA[7] & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & \DB[8] & \DA[8] & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & 0 & \DB[9] & \DA[9] & 0 & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \DB[10]& \DA[10] & 0 & 0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \DB[11] & \DA[11] & 0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \DB[12] & \DA[12] & 0 & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \DB[13] & \DA[13] & 0 & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \DB[14] & \DA[14] & 0\\
    0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \DB[15] &\DA[15]
\end{bmatrix}$

\newpage

$\begin{bmatrix}
    \DA[1] &&&&&&&&&&&&&&\\
    \DB[2] & \DA[2] &&&&&&&&&&&&& \\
    & \DB[3] & \DA[3] &&&&&&&&&&&&\\
    && \DB[4] & \DA[4] &&&&&&&&&&&\\
    &&&\DB[5]& \DA[5] &&&&&\makebox(0,0){\text{\Huge0}}&&&&&\\
    &&&& \DB[6] & \DA[6] &&&&&&&&&\\
    &&&&& \DB[7] & \DA[7] &&&&&&&&\\
    &&&&&& \DB[8] & \DA[8] &&&&&&&\\
    &&&&&&& \DB[9] & \DA[9] &&&&&&\\
    &&&&&&&& \DB[10]& \DA[10] &&&&&\\
    &&&&&&&&& \DB[11] & \DA[11] &&&&\\
    &&&\makebox(0,0){\text{\Huge0}}&&&&&&& \DB[12] & \DA[12] &&&\\
    &&&&&&&&&&& \DB[13] & \DA[13] &&\\
    &&&&&&&&&&&& \DB[14] & \DA[14] &\\
    &&&&&&&&&&&&& \DB[15] &\DA[15]
\end{bmatrix}$
        
\end{document}

最后一个例子展示了如何pmatrix使用nicematrix包并使用水平、垂直和对角虚线:\Cdots\Vdots\Ddots。 (它将编译两次)

C

\documentclass[11pt, landscape]{article}

\usepackage[left=2.00cm]{geometry}

\usepackage{listofitems}% added <<<<< 
\usepackage{nicematrix}% added <<<<<
\setcounter{MaxMatrixCols}{15}% more columns allowed
 
\begin{document}
    
\small 
    
\readlist\DA{1.4142, 1.2247, 1.1547, 1.1180, 1.0954, 1.0801, 1.0690, 1.0607, 1.0541, 1.0488, 1.0445, 1.0408,  1.0377, 1.0351, 1.0328} % 15 elements
\readlist\DB{0, -0.7071, -0.8165, -0.8660, -0.8944, -0.9129, -0.9258, -0.9354, -0.9428, -0.9487, -0.9535, -0.9574, -0.9608, -0.9636, -0.9661}% 15 elements
    
$\setlength{\extrarowheight}{0.5ex} % expand the rows
\begin{bNiceMatrix}[xdots/shorten=1em] % make line dots with shorter length
    \DA[1] & 0 & \Cdots &  &  &  &  &  &  &  &  &  &  &  & 0 \\
    \DB[2] &\DA[2] & \Ddots &  &  &  &  &  &  &  &  &  &  & & \Vdots\\
    0 & \DB[3] &\DA[3] &  &  &  & &  &  &  &  &  &  &  & \\
    \Vdots & \Ddots & \DB[4]& \DA[4] &  &  &  &  &  &  &  &  &  &  & \\
    &  &  & \DB[5] &\DA[5] &  &  &  &  &  &  &  &  &  & \\
    &  &  &  & \DB[6] & \DA[6] &  &  &  &  &  &  &  &  & \\
    &  &  &  &  & \DB[7] &\DA[7] &  & &  &  &  &  &  & \\
    &  &  &  &  &  & \DB[8] & \DA[8] &  &  &  &  &  &  & \\
    &  &  &  &  &  &  & \DB[9] &\DA[9] &  &  &  &  &  & \\
    &  &  &  &  &  &  &  & \DB[10] & \DA[10] &  &  & &  & \\
    &  &  &  &  &  &  &  &  & \DB[11] &\DA[11] &  &  &  & \\
    &  &  &  &  &  &  &  &  &  & \DB[12] & \DA[12] &  &  & \\
    &  &  &  &  &  &  &  &  &  &  & \DB[13] &\DA[13] &  & \\
    &  &  &  &  &  &  &  &  &  &  &  & \DB[14] & \DA[14] & 0\\
    0 & \Cdots  &  &  &  &  &  &  &  &  &  &  & 0 & \DB[15] &\DA[15]
    \end{bNiceMatrix}$
    
\end{document}

笔记。为清晰起见,此处创建的列表元素具有前导空格,这在表格环境中无关紧要。要抑制此类空格,请使用\readlist*

相关内容