Toeplitz 矩阵

                     

贡献者: 零穹

预备知识 矩阵及其运算

   Toeplitz 矩阵是这样的矩阵,处于位置 $(i,j)$ 的矩阵元和 $(i+1,j+1)$ 的矩阵元具有相同值,直观上相当于 “从左上到右下的 $45^\circ$ 斜线上” 的矩阵元具有相同值。因此,只要给出矩阵第一列和第一行的元素,其它元则根据 “斜线” 规则确定。

定义 1 Toeplitz 矩阵

   设 $A$ 是 $m\times n$ 的矩阵,若对任意 $i\in m,j\in n$,矩阵元 $a_{ij}=a_{i+1,j+1}$ 恒成立,则称 $A$ 为Toeplitz 矩阵

定理 1 

   若 $A$ 是 $m\times n$ 的 Toeplitz 矩阵,其元记作 $a_{ij}$。则

\begin{equation} a_{ij}=\left\{\begin{aligned} &a_{1,j-i+1},\\ &a_{i-j+1,1}. \end{aligned}\right.~ \end{equation}

   证明:由 Toeplitz 矩阵定义 1 ,可知:若 $i\leq j$,则

\begin{equation} a_{ij}=a_{i-1,j-1}=\cdots=a_{i-(i-1),j-(i-1)}=a_{1,j-i+1}.~ \end{equation}
而若 $i\geq j$,同理有 $a_{ij}=a_{i-j+1,1}$。

   证毕!

   若把行指标当 $x$ 轴,列指标当 $y$ 轴,原点取作 $(1,1)$ 构建的平面坐标系。则 Toeplitz 矩阵是说坐标位于过点 $(1,i)$ 或 $(i,1)$ 的斜率为 $-45^\circ$ 的直线上的矩阵元,取相同值。这些线就是开头提到的 “从左上到右下的 $45^\circ$ 斜线”。

例 1 

   矩阵

\begin{equation} (1), \begin{aligned} \left( \begin{array}{cc} 1 & 3 \\ 2 & 1 \\ 3 & 2 \\ \end{array}\right) \end{aligned}, \left( \begin{array}{ccccc} 4 & \frac{1}{2} & 3 & 4 & 5 \\ 0 & 4 & \frac{1}{2} & 3 & 4 \\ -3 & 0 & 4 & \frac{1}{2} & 3 \\ 4 & -3 & 0 & 4 & \frac{1}{2} \\ \end{array} \right).~ \end{equation}
都是 Toeplitz 矩阵的例子。

1. Mathematica 实操

   Mathematica 软件提供了构建 Toeplitz 矩阵的基本函数,其语法为 ToeplitzMatrix[a,b],其中 $a$ 告诉 Mathematica 矩阵的第一列元素,$b$ 则是第一行元素。例如下面的例子给出了例 1 中的第二个矩阵。

代码 1:Mathematica 构造 Toeplitz 矩阵
ToeplitzMatrix[{1, 2, 3}, {1, 3}]
当然,有了 Toeplitz 矩阵的定义,和定理 1 ,我们完全可以自己写出构造 Toeplitz 矩阵的代码。这可以通过 For 循环嵌套 For 循环实现。
代码 2:Mathematica 自写 Toeplitz 矩阵代码
(*l,r分别代表第一列和第一行*)
Tope[l_, r_] := 
  Module[{ll = Length[l], lr = Length[r]},
  (*若第一列和第一行元素不同,则打印警告,并取第一个元素为第一行的第一个元素*)
    If[l[[1]] != r[[1]], Print["Warning:the column element ",
        l[[1]] , " and row element ", 
        r[[1]], " at positions 1 and 1
        are not the same. Using row element."], {}
      ];
   (*构建矩阵A,使得第一列为l,第一行为r*)
    A = Table[0, {i, 1, ll}, {j, 1, lr}];
    (*利用定理1构造矩阵其它元素*)
    A[[All, 1]] = l; A[[1]] = r;
    For[i = 2, i <= ll, {
        For[j = 2, j <= lr,
            {If[j > i, A[[i, j]] = A[[1, j - i + 1]], 
            A[[i, j]] = A[[i - j + 1, 1]]]; j++ } 
           ];
         i++}
        ];
    A
    ]
执行 Tope[{1,2,3},{1,3}],将给出自带函数 TopelitzMatrix 相同的效果,即式 3 中的第二个矩阵。

图
图 1:结果展示

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利