用Mathematica计算一类特殊矩阵的特征多项式

 时间:2026-02-15 00:43:45

1、先来构造这种矩阵的定义:

f[n_] := Module[{A}, 

  A = Table[0, n, n]; (A[[#, # + 1]] = 1) & /@ 

   Range[n - 1]; (A[[# + 1, #]] = 1) & /@ Range[n - 1];

  A]

用Mathematica计算一类特殊矩阵的特征多项式

2、我们来看看这种类型的6乘以6的矩阵的模样。

MatrixForm[f[6]]

用Mathematica计算一类特殊矩阵的特征多项式

3、再定义矩阵对应的特征多项式,g[n]。

g[n_] := Module[{A}, A = Table[0, n, n]; 

   (A[[#, # + 1]] = 1) & /@ Range[n - 1]; 

   (A[[# + 1, #]] = 1) & /@ Range[n - 1];

   Expand[Det[A - x*IdentityMatrix[n]]]]

用Mathematica计算一类特殊矩阵的特征多项式

4、查看当n不超过10,所有的这种类型矩阵的特征多项式:

Column[g[#] & /@ Range[10]]

用Mathematica计算一类特殊矩阵的特征多项式

5、但是,这种无止境的枚举法,于此题没有什么益处。我们很难通过这一串式子,观察出多项式的规律。

不过,这些多项式之间存在一种递归规律:

Reduce[ForAll[x,(g[#]-(-x*g[#-1]+m*g[#-2])//Factor)&@9==0],m]

实际上,把9改为任何大于2的正整数,都有m=-1。

用Mathematica计算一类特殊矩阵的特征多项式

6、有了递归公式,初始条件也很容易计算,这样就可以算出通项公式:

RSolve[{a[n + 2] == -x*a[n + 1] - 1 a[n], a[1] == -x, 

    a[2] == x^2 - 1}, a[n], n] // Flatten // Values

这正是这种n*n类型矩阵的特征多项式。

用Mathematica计算一类特殊矩阵的特征多项式

  • 如何使用python的matplotlib画双曲正弦函数图像
  • matlab能求表达式的模吗
  • 如何在AD中放置异步使能D型触发器?
  • 【Mathematica入门】图像填充变换
  • Mathematica计算乘法阶数
  • 热门搜索
    爱要怎么说出口歌词 学制怎么填 怎么瘦大腿 鱼线怎么绑在鱼竿上 上火了怎么办 冬天手冷怎么办 来月经有血块是怎么回事 猪肝汤的做法大全 淘宝店铺怎么开 为什么月经会推迟