Main Content

bandwidth

下方および上方の行列のバンド幅

説明

B = bandwidth(A,type) は、type で指定された行列 Aバンド幅を返します。下方のバンド幅の場合は 'lower'、上方のバンド幅の場合は 'upper' として type を指定します。

[lower,upper] = bandwidth(A) は、行列 A の下方のバンド幅 lower と上方のバンド幅 upper を返します。

すべて折りたたむ

6 行 6 列の下三角行列を作成します。

A = tril(magic(6))
A = 6×6

    35     0     0     0     0     0
     3    32     0     0     0     0
    31     9     2     0     0     0
     8    28    33    17     0     0
    30     5    34    12    14     0
     4    36    29    13    18    11

type'lower' に指定して、A の下方のバンド幅を求めます。主対角の下のそれぞれの対角には非ゼロ要素があるため、結果は 5 になります。

B = bandwidth(A,'lower')
B = 
5

type'upper' に指定して、A の上方のバンド幅を求めます。主対角の上には非ゼロ要素がないため、結果は 0 になります。

B = bandwidth(A,'upper')
B = 
0

100 行 100 列のスパース ブロック行列を作成します。

B = kron(speye(25),ones(4));

B の左上から 10 行 10 列の要素のセクションを表示します。

full(B(1:10,1:10))
ans = 10×10

     1     1     1     1     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     0     0     0     0     1     1
     0     0     0     0     0     0     0     0     1     1

B の主対角の中央に、1 の 4 行 4 列のブロックがあります。

2 つの出力引数を指定して、B の下方と上方の両方のバンド幅を求めます。

[lower,upper] = bandwidth(B)
lower = 
3
upper = 
3

入力引数

すべて折りたたむ

2 次元数値行列として指定する入力行列。A は非スパースまたはスパースです。

データ型: single | double
複素数のサポート: あり

'lower' または 'upper' として指定する、バンド幅の種類。

  • 下方のバンド幅 (主対角の下) の場合、'lower' を指定します。

  • 上方のバンド幅 (主対角の上) の場合、'upper' を指定します。

出力引数

すべて折りたたむ

非負の整数スカラーとして返される、下方または上方のバンド幅。

  • type'lower' の場合、0Bsize(A,1)-1

  • type'upper' の場合、0Bsize(A,2)-1

非負の整数スカラーとして返される、下方のバンド幅。lower の範囲は、0lowersize(A,1)-1 です。

非負の整数スカラーとして返される、上方のバンド幅。upper の範囲は、0uppersize(A,2)-1 です。

詳細

すべて折りたたむ

上方と下方のバンド幅

行列の上方と下方のバンド幅は、非ゼロ値をもつ最後の対角 (それぞれ主対角の上または下) を見つけることにより測定されます。

つまり、要素 Aij をもつ行列 A では、次のようになります。

  • 上方のバンド幅 B1 は、ji>B1 で常に Aij=0 となる最小の数値。

  • 下方のバンド幅 B2 は、ij>B2 で常に Aij=0 となる最小の数値。

この測定は、バンド内の中間にある対角がすべてゼロであってはならないということではなく、非ゼロ値を含む最後の対角の位置に着目するものです。慣例により、空行列の上方および下方のバンド幅は両方ともゼロです。

ヒント

  • 行列が特定の上方および下方のバンド幅内にあるかどうかをテストするには、関数 isbanded を使用します。

拡張機能

バージョン履歴

R2014a で導入