# 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.