ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

toeplitz

シンボリックなテプリッツ行列

構文


toeplitz(c,r)
toeplitz(r)

説明

toeplitz(c,r) は、1 列目が c で、1 行目が r である非対称テプリッツ行列を生成します。cr の最初の要素が異なる場合、toeplitz は警告を発して列の最初の要素を使用します。

toeplitz(r) は、r が実数値である場合に対称テプリッツ行列を生成します。r が複素数値であり、その最初の要素が実数である場合、この構文は、r から形成されるエルミート テプリッツ行列を生成します。r の最初の要素が実数でない場合、結果の行列は主対角でエルミートがオフになります。つまり、i ≠ j の場合、Tij = conjugate(Tji) となります。

入力引数

c

テプリッツ行列の 1 列目を指定するベクトル。

r

テプリッツ行列の 1 行目を指定するベクトル。

次のベクトルからテプリッツ行列を生成します。これらのベクトルはシンボリック オブジェクトではないため、結果は浮動小数点数となります。

c = [1 2 3 4 5 6];
r = [1 3/2 3 7/2 5];
toeplitz(c,r)
ans =
    1.0000    1.5000    3.0000    3.5000    5.0000
    2.0000    1.0000    1.5000    3.0000    3.5000
    3.0000    2.0000    1.0000    1.5000    3.0000
    4.0000    3.0000    2.0000    1.0000    1.5000
    5.0000    4.0000    3.0000    2.0000    1.0000
    6.0000    5.0000    4.0000    3.0000    2.0000

次に、これらのベクトルをシンボリック オブジェクトに変更し、テプリッツ行列を生成します。

c = sym([1 2 3 4 5 6]);
r = sym([1 3/2 3 7/2 5]);
toeplitz(c,r)
ans =
[ 1, 3/2,   3, 7/2,   5]
[ 2,   1, 3/2,   3, 7/2]
[ 3,   2,   1, 3/2,   3]
[ 4,   3,   2,   1, 3/2]
[ 5,   4,   3,   2,   1]
[ 6,   5,   4,   3,   2]

次のベクトルからテプリッツ行列を生成します。

syms a b c d
T = toeplitz([a b c d])
T =
[       a,       b,       c,       d]
[ conj(b),       a,       b,       c]
[ conj(c), conj(b),       a,       b]
[ conj(d), conj(c), conj(b),       a]

すべての要素を実数として指定した場合、結果のテプリッツ行列は対称行列になります。

syms a b c d real
T = toeplitz([a b c d])
T =
[ a, b, c, d]
[ b, a, b, c]
[ c, b, a, b]
[ d, c, b, a]

計算を続行するよう仮定を消去します。

syms a b c d clear

複素数を含むベクトルからテプリッツ行列を生成します。

T = toeplitz(sym([1, 2, i]))
T =
[  1, 2, 1i]
[  2, 1, 2]
[ -1i, 2, 1]

ベクトルの最初の要素が実数である場合、結果のテプリッツ行列はエルミート行列になります。

isAlways(T == T')
ans =
     1     1     1
     1     1     1
     1     1     1

最初の要素が実数でない場合、結果のテプリッツ行列は主対角でエルミートがオフとなります。

T = toeplitz(sym([i, 2, 1]))
T =
[ 1i, 2, 1]
[ 2, 1i, 2]
[ 1, 2, 1i]
isAlways(T == T')
ans =
     0     1     1
     1     0     1
     1     1     0

ベクトルを使用して 1 列目と 1 行目を指定し、テプリッツ行列を生成します。これらのベクトルの最初の要素が異なるため、toeplitz は警告を発して列の最初の要素を使用します。

syms a b c
toeplitz([a b c], [1 b/2 a/2])
Warning: First element of input column does not match first element of input row.
Column wins diagonal conflict.
 
ans =
[ a, b/2, a/2]
[ b,   a, b/2]
[ c,   b,   a]

詳細

すべて折りたたむ

テプリッツ行列

テプリッツ行列は、左から右への各下降対角線に沿って定数値をもつ行列です。たとえば、行列 T は対称テプリッツ行列です。

T=(t0t1t2tkt1t0t1t2t1t0t0t1t2t1t0t1tkt2t1t0)

ヒント

  • シンボリック オブジェクトではない数値引数について toeplitz を呼び出すと、MATLAB® 関数 toeplitz が呼び出されます。

参考

R2013a で導入

この情報は役に立ちましたか?