2026a

# tridiag


三对角矩阵(稀疏矩阵)

函数库: TyMath

# 语法

A = tridiag([T],n)
A = tridiag([T],x,y,z)
A = tridiag([T],n,c,d,e)

# 说明

A = tridiag([T],n) 返回大小为 n×n 的稀疏三对角矩阵,其中下对角线元素为 -1,对角线元素为 2,上对角线元素为 -1。此矩阵具有特征值 2 + 2*cos(k*pi/(n+1)),其中 k = 1:n。示例


A = tridiag([T],x,y,z) 返回由向量 x、y 和 z 定义的下对角线为 x、对角线为 y 和上对角线为 z 的三对角矩阵。向量 x 和 z 的长度必须为 length(d)-1。


A = tridiag([T],n,c,d,e)(其中 c、d 和 e 都是标量)生成大小为 n×n 的托普利茨三对角矩阵,其中下对角线元素为 c,对角线元素为 d,上对角线元素为 e。

# 示例

三对角矩阵的生成与性质

指定 n 为 5,生成三对角矩阵。

using TyMath
n = 5
M = TestArrays.tridiag(n)
M = 5×5 SparseMatrixCSC{Int64, Int64} with 13 stored entries:

  2  -1   ⋅   ⋅   ⋅
 -1   2  -1   ⋅   ⋅
  ⋅  -1   2  -1   ⋅
  ⋅   ⋅  -1   2  -1
  ⋅   ⋅   ⋅  -1   2

矩阵 M 为对称正定阵,具有特征值 2 + 2*cos(k*pi/(n+1)),其中 k = 1:n

computeEigM = @. 2+2*cos((1:n)*(pi/(n+1)))
eigM = eigvals(full(M))
computeEigM = 5-element Vector{Float64}:

 3.7320508075688776
 3.0
 2.0
 1.0000000000000004
 0.26794919243112303

eigM = 5-element Vector{Float64}:       

 0.2679491924311222
 1.0
 1.9999999999999998
 3.0
 3.7320508075688776

# 输入参数

n - 矩阵阶数
正整数标量

矩阵阶数,指定为正整数标量。

x - 下对角线向量
向量

下对角线向量,指定为向量。x, z 的长度必须比 y 小 1。

y - 对角线向量
向量

对角线向量,指定为向量。x, z 的长度必须比 y 小 1。

z - 上对角线向量
向量

上对角线向量,指定为向量。x, z 的长度必须比 y 小 1。

c - 下对角线标量
标量

下对角线标量,指定为标量。

d - 对角线标量
标量

对角线标量,指定为标量。

e - 上对角线标量
标量

上对角线标量,指定为标量。

T - 输出类型
类型

输出类型,指定为类型(Type)。该参数为可选参数,如果不指定,会依据输入的默认值。如果可能,函数将会输出 T 指定类型的矩阵。

# 输出参数

A - 输出矩阵
矩阵

输出矩阵,以矩形形式返回。

# 参考

[1] J. Todd, Basic Numerical Mathematics, Vol 2: Numerical Algebra, Birkhauser, Basel, and Academic Press, New York, 1977, p. 155.

[2] D. E. Rutherford, Some continuant determinants arising in physics and chemistry---II, Proc. Royal Soc. Edin., 63, A (1952), pp. 232-241.

# 另请参阅

eigvals