第1行と第1列が連続する整数である n×n のテプリッツ(Toeplitz)行列を返す.
ToeplitzMatrix[{c1,c2,…,cn}]
第1列が成分 c1, c2, …からなるテプリッツ行列を返す.
ToeplitzMatrix[{c1,c2,…,cm},{r1,r2,…, rn}]
第1列の成分が ci,第1行の成分が riのテプリッツ行列を返す.
ToeplitzMatrix
第1行と第1列が連続する整数である n×n のテプリッツ(Toeplitz)行列を返す.
ToeplitzMatrix[{c1,c2,…,cn}]
第1列が成分 c1, c2, …からなるテプリッツ行列を返す.
ToeplitzMatrix[{c1,c2,…,cm},{r1,r2,…, rn}]
第1列の成分が ci,第1行の成分が riのテプリッツ行列を返す.
詳細とオプション
- テプリッツ行列は,通常,近似理論,信号処理,統計,時系列等に関連した応用で使われる.
- テプリッツ行列は,その対角に沿って一定の行列である.テプリッツ行列
の成分は,
のときは
で,それ以外のときは
で与えられる. - 成分 r1は成分 s c1と等しくなければならない. »
- ToeplitzMatrix[…,TargetStructure->struct]はテプリッツ行列を struct で指定された形式で返す.次は,
-
Automatic 返す際の表現を自動選択する "Dense" 行列を密な行列として表す "Structured" 行列を構造化配列として表す "Symmetric" 行列を対称行列として表す - With ToeplitzMatrix[…,TargetStructureAutomatic]の設定では,行列の成分数が設定された閾値未満の場合は密な行列が返され,それ以外の場合は構造化配列が返される.
- 構造化されたToeplitzMatrix sa は,次の特性"prop"に sa["prop"]でアクセスできる.
-
"ColumnVector" 第1列の成分のベクトル "RowVector" 第1行の成分のベクトル "Properties" サポートされる特性のリスト "Structure" 構造化配列の型 "StructuredData" 構造化配列で保存されている内部データ "StructuredAlgorithms" 構造化配列に対して特別なメソッドを持つ関数のリスト "Summary" Datasetとして表される要約情報 - Normal[ToeplitzMatrix[…]]は構造化テプリッツ行列を通常の行列に変換する.
例題
すべて開く すべて閉じる例 (3)
ToeplitzMatrix[4]//MatrixFormToeplitzMatrix[{a, b, c, d}]//MatrixForm第1列が{c1,…},第1行が{c1,r2,…}のテプリッツ行列:
ToeplitzMatrix[{Subscript[c, 1], Subscript[c, 2], Subscript[c, 3], Subscript[c, 4]}, {Subscript[c, 1], Subscript[r, 2], Subscript[r, 3], Subscript[r, 4]}] // MatrixFormスコープ (9)
N[ToeplitzMatrix[4]] //MatrixFormToeplitzMatrix[{1., 2., 4., 8.}, {1., .5, .25, .125}] //MatrixFormN[ToeplitzMatrix[3], 20] //MatrixFormToeplitzMatrix[{1`20, 2`20, 4`20}, {1`20, .5`20, .25`20}] //MatrixFormToeplitzMatrix[{1 + 2 I, 3 + 4 I, 5 + 6 I}]//MatrixFormToeplitzMatrix[{1 + 2 I, 3 + 4 I, 5 + 6 I}, {1 + 2 I, 3 + 4 I, 5 + 6 I}]//MatrixFormToeplitzMatrix[{1, 2, 3, 4, 5}, {1, 6, 7}] // MatrixFormToeplitzMatrix[{1, 2, 3}, {1, 4, 5, 6, 7}] // MatrixFormtm[n_] := ToeplitzMatrix[Array[Subscript[𝓉, #]&, n, 0], Array[Subscript[𝓉, -#]&, n, 0]]tm[5] // MatrixFormtm = ToeplitzMatrix[N[Range[100]], 1 / N[Range[100]], TargetStructure -> "Structured"]ByteCount[tm]ByteCount[Normal[tm]]ToeplitzMatrixオブジェクトには配列についての情報を与える特性が含まれている:
tm = ToeplitzMatrix[3^-Range[0, 4], 3^-Range[0, 8, 2], TargetStructure -> "Structured"]tm["Properties"]"ColumnVector"特性はテプリッツ行列の第1列を与える:
tm["ColumnVector"]"RowVector"特性はテプリッツ行列の第1行を与える:
tm["RowVector"]"Summary"特性は配列についての情報の簡単な要約を与える:
tm["Summary"]"StructuredAlgorithms"特性は構造化アルゴリズムを持つ関数のリストを与える:
tm["StructuredAlgorithms"]構造化アルゴリズムは,適切な場合は別のToeplitzMatrixオブジェクトを返す:
tm = ToeplitzMatrix[1 / Range[1, 9, 2], 1 / Range[3], TargetStructure -> "Structured"]転置もまたToeplitzMatrixである:
Transpose[tm]テプリッツ行列とその転置の積はもはやテプリッツ行列ではない:
Transpose[tm].tmToeplitzMatrix[(| | | | |
| ----- | ----- | ----- | ----- |
| 1 | (1/2) | (1/4) | (1/8) |
| (1/2) | 1 | (1/2) | (1/4) |
| (1/4) | (1/2) | 1 | (1/2) |
| (1/8) | (1/4) | (1/2) | 1 |)]オプション (2)
TargetStructure (2)
ToeplitzMatrix[3, TargetStructure -> "Dense"]ToeplitzMatrix[3, TargetStructure -> "Structured"]ToeplitzMatrix[3, TargetStructure -> "Symmetric"]TargetStructureAutomaticの設定のとき,次元が小さい場合は密な行列が返される:
ToeplitzMatrix[5, TargetStructure -> Automatic]ToeplitzMatrix[10000, TargetStructure -> Automatic]アプリケーション (10)
circulant[v_] := ToeplitzMatrix[v, RotateRight[Reverse[v]]]circulant[Array[C, 4]]//MatrixForm巡回行列とベクトルの乗算は巡回たたみ込みとして表すことができる:
circulant[Array[C, 4]].Array[, 4] == ListConvolve[Array[C, 4], Array[, 4], 1]Array[, 4].circulant[Array[C, 4]] == ListCorrelate[Array[C, 4], Array[, 4], 1]fm = FourierMatrix[4];
ConjugateTranspose[fm].circulant[Array[C, 4]].fm//FullSimplify//MatrixForm結果の対角行列の対角要素はフーリエ行列と開始ベクトルの積に定倍率まで等しい:
Sqrt[4]Conjugate[fm].Array[C, 4]//FullSimplifyn = 3;
MatrixForm[tm = ToeplitzMatrix[Array[Subscript[𝓉, #]&, n, 0], Array[Subscript[𝓉, -#]&, n, 0]]]テプリッツ行列の逆行列は逆行列の最初と最後の列だけから決定できる.LinearSolveを使って逆行列の最初の列を計算する:
uk = LinearSolve[tm, UnitVector[n, 1]]vk = LinearSolve[tm, UnitVector[n, n]]テプリッツ行列の逆行列についてのGohberg–Semenculの公式は,最初と最後の列を使って完全な逆行列を組み立てる:
Short[tinv = (1/First[uk])(ToeplitzMatrix[uk, PadRight[{First[uk]}, n, 0]].ToeplitzMatrix[PadRight[{Last[vk]}, n, 0], Reverse[vk]] - ToeplitzMatrix[Prepend[Most[vk], 0], ConstantArray[0, n]].ToeplitzMatrix[ConstantArray[0, n], Prepend[Reverse[Rest[uk]], 0]]), 2]tinv.tm == IdentityMatrix[n]//SimplifytoeplitzTridiagonal[a_, b_, c_, n_] := ToeplitzMatrix[PadRight[{b, a}, n], PadRight[{b, c}, n]]toeplitzTridiagonal[a, b, c, 4]//MatrixForm固有多項式についての式を最初のいくつかの第2種チェビシェフ(Chebyshev)多項式によって確かめる:
Table[CharacteristicPolynomial[toeplitzTridiagonal[a, b, c, n], x] == (-Sqrt[a c])^n ChebyshevU[n, (x - b/2Sqrt[a c])]//Simplify, {n, 9}]三重対角テプリッツ行列は1型の離散正弦変換行列の対角リスケーリングによって対角化できる:
n = 4;
vm = FourierDSTMatrix[n, 1].DiagonalMatrix[(c / a)^Range[n] / 2];
vm.toeplitzTridiagonal[a, b, c, n].Inverse[vm]//FullSimplify//MatrixFormKac–Murdock–Szegő(KMS)行列をToeplitzMatrixとして定義する:
kms[ρ_, n_] := ToeplitzMatrix[ρ^Range[0, n - 1]]MatrixForm[kms[ρ, 5]]KMS行列は,一次自己回帰過程の相関行列(つまり,AR(1)過程)である:
n = 6;
kms[ρ, n] == Correlation[ARProcess[{ρ}, σ ^ 2][Range[n]]]//SimplifyInverse[kms[ρ, n]]//Simplify//MatrixFormKMS行列の固有多項式は第2種チェビシェフ多項式で表すことができる:
CharacteristicPolynomial[kms[ρ, n], λ] == With[{τ = (ρ^2(λ + 1) + λ - 1/2ρ λ)}, ((ρ λ)^n/1 - ρ^2)(ChebyshevU[n, τ] - 2ρ ChebyshevU[n - 1, τ] + ρ^2ChebyshevU[n - 2, τ])]//SimplifyParter行列をToeplitzMatrixとして定義する:
parter[n_] := ToeplitzMatrix[1 / (Range[n] - 1 / 2), 1 / (3 / 2 - Range[n])]Parter行列はテプリッツ行列でもりコーシー行列でもある:
MatrixForm[parter[5]]With[{n = 5},
CauchyMatrix[Range[n], 1 / 2 - Range[n]]]//MatrixFormParter行列の支配的特異値は
の周りにクラスタ化している:
SingularValueList[N[parter[20]]]% - πprolate matrix(扁長行列)は,マルチテーパーパワースペクトル密度推定に現れる対称正定値テプリッツ行列である:
prolate[n_, w_ : 1 / 4] := ToeplitzMatrix[2w Sinc[2π w Range[0, n - 1]]]MatrixPlot[N[prolate[18]]]capprox[n_] = 0.117539E^1.76275n2ノルム条件数は対称性による最大固有値と最小固有値の比である:
cnos = Table[Apply[Divide, Eigenvalues[N[prolate[n], 2n + 20]][[{1, -1}]]], {n, 32}];Show[ListLogPlot[cnos], LogPlot[capprox[n], {n, 1, 32}]]2012年5月から2012年9月までのユーロとドルの毎日の為替レート:
data = TemporalData[Automatic, {{{1.31, 1.31, 1.31, 1.3, 1.3, 1.3, 1.29, 1.29, 1.29, 1.27, 1.28, 1.28,
1.27, 1.26, 1.26, 1.26, 1.25, 1.24, 1.24, 1.23, 1.24, 1.24, 1.25, 1.26, 1.25, 1.26, 1.25, 1.25,
1.26, 1.26, 1.26, 1.26, 1.27, 1.27, 1.25, 1.25 ... Data`DateSpecification[{2012, 5, 2}, {2012, 9, 28}, "BusinessDay", "DayRange"]}, 1,
{"Discrete", 1}, {"Discrete", 1}, 1,
{MetaInformation -> {"Source" -> HoldForm[FinancialData]["EUR/USD",
{{2012, 5, 1}, {2012, 9, 30}}]}}}, True, 9.];DateListPlot[data, Joined -> True, Filling -> Bottom]Yule-Walker方程式を解くことで,3次自己回帰過程(ARProcess) を為替レートにフィットする:
autocorrelation = CorrelationFunction[data, {0, 3}]["Values"];
coef = LinearSolve[ToeplitzMatrix[Most[autocorrelation]], Rest[autocorrelation]];
proc = ARProcess[Mean[data](1 - Total[coef]), coef, (1 - 1 / data["PathLength"])Variance[data](1 - coef.Rest[autocorrelation])]EstimatedProcessを使っても同じ結果が得られる:
EstimatedProcess[data, ARProcess[3]]点 x=x0に関する関数
の次数
パデ(Padé)近似はベキ級数係数から取得できる.関数,分子と分母の次数,展開点を定義する:
f[x_] := Exp[x];
x0 = 0;
{m, n} = {4, 3};coef = CoefficientList[Series[f[x], {x, x0, m + n}], x]分母の係数はベキ級数係数から構築されたテプリッツ系を解くことで入手できる:
dCoef = Prepend[LinearSolve[ToeplitzMatrix[Take[coef, {m + 1, m + n}], Take[coef, {m + 1, m - n + 2, -1}]], -Take[coef, {m + 2, m + n + 1}]], 1]分子の係数は分母の係数のベクトルにベキ級数係数から構築されたテプリッツ行列を掛けることで入手できる:
nCoef = ToeplitzMatrix[Take[coef, m + 1], First[coef]UnitVector[n + 1, 1]].dCoef(nCoef.x^Range[0, m]/dCoef.x^Range[0, n])PadeApproximantの結果と比較する:
PadeApproximant[f[x], {x, x0, {m, n}}]最初のいくつかの符号付き初等対称多項式を
個の変数で生成する:
n = 5;
σ = Table[(-1)^kSymmetricPolynomial[k, Array[, n]], {k, n}]𝓅 = Table[Total[Array[, n] ^ k], {k, n}]ベキ乗和と初等対称多項式に関連するNewton–Girardの公式[MathWorld]を確認する:
ToeplitzMatrix[Prepend[Most[σ], 1], UnitVector[n, 1]].𝓅 == -Range[n]σ//SimplifyChing行列をToeplitzMatrixとして定義する:
ching[n_] := ToeplitzMatrix[PadRight[{}, n, {1, 0}], PadRight[{1, 1}, n]]Ching行列は下ヘッセンベルク(Hessenberg)0-1行列(成分か0か1で最初の上対角の上が0の行列)である:
MatrixForm[ching[5]]n 次Ching行列の行列式は n
番目のフィボナッチ(Fibonacci)数と同じであり,すべての下ヘッセンべルック0-1行列の上界を与える:
Table[Det[ching[n]], {n, 12}]Table[Fibonacci[n], {n, 12}]特性と関係 (5)
TableForm[Table[{n, Det[ToeplitzMatrix[n]], (-2)^n - 1(n + 1/2)}, {n, 10}]]充填のない巡回ListConvolveは下三角テプリッツ行列による乗算に等しい:
n = 8;ListConvolve[Array[, n], Array[C, n], 1, 0] == ToeplitzMatrix[Array[, n], [1]UnitVector[n, 1]].Array[C, n]充填のない巡回ListCorrelateは上三角テプリッツ行列による乗算に等しい:
n = 8;ListCorrelate[Array[, n], Array[C, n], 1, 0] == ToeplitzMatrix[[1]UnitVector[n, 1], Array[, n]].Array[C, n]ToeplitzMatrix[{c1,c2,…}]は,c1 が実数の場合はハミルトン行列である:
c = Join[RandomReal[1, 1], RandomComplex[1 + I, 2]];
t = ToeplitzMatrix[c];
MatrixForm[t]HermitianMatrixQ[t]v = Eigenvalues[t]u = Transpose[Eigenvectors[t]];
Chop[ConjugateTranspose[u].t.u] // MatrixFormToeplitzMatrixとHankelMatrixは交換行列(逆恒等行列)との乗算によって関連している:
(t = ToeplitzMatrix[{Subscript[a, 0], Subscript[a, 1], Subscript[a, 2]}, {Subscript[a, 0], Subscript[a, -1], Subscript[a, -2]}])//MatrixFormHankelMatrix[{Subscript[a, 2], Subscript[a, 1], Subscript[a, 0]}, {Subscript[a, 0], Subscript[a, -1], Subscript[a, -2]}]//MatrixFormReverse[IdentityMatrix[3]].t//MatrixFormt = ToeplitzMatrix[{Subscript[a, 0], Subscript[a, 1], Subscript[a, 2]}, {Subscript[a, 0], Subscript[a, -1], Subscript[a, -2]}, TargetStructure -> "Structured"]MatrixForm[t]h = Reverse[t]MatrixForm[h]考えられる問題 (1)
テキスト
Wolfram Research (2007), ToeplitzMatrix, Wolfram言語関数, https://reference.wolfram.com/language/ref/ToeplitzMatrix.html (2024年に更新).
CMS
Wolfram Language. 2007. "ToeplitzMatrix." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/ToeplitzMatrix.html.
APA
Wolfram Language. (2007). ToeplitzMatrix. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ToeplitzMatrix.html
BibTeX
@misc{reference.wolfram_2026_toeplitzmatrix, author="Wolfram Research", title="{ToeplitzMatrix}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/ToeplitzMatrix.html}", note=[Accessed: 01-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_toeplitzmatrix, organization={Wolfram Research}, title={ToeplitzMatrix}, year={2024}, url={https://reference.wolfram.com/language/ref/ToeplitzMatrix.html}, note=[Accessed: 01-November-2026]}