ドキュメンテーション

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

kron

クロネッカー テンソル積

構文

K = kron(A,B)

説明

K = kron(A,B) は、行列 ABクロネッカー テンソル積を返します。Amn 列の行列で、Bpq 列の行列の場合、kron(A,B) は、A の要素と行列 B 間でのすべての取り得る積から構成される m*pn*q 列の行列になります。

すべて折りたたむ

ブロック対角行列を作成します。

4 行 4 列の単位行列と、対角に反復させる 2 行 2 列の行列を作成します。

A = eye(4);
B = [1 -1;-1 1];

kron を使用して、クロネッカー テンソル積を求めます。

K = kron(A,B)
K =

     1    -1     0     0     0     0     0     0
    -1     1     0     0     0     0     0     0
     0     0     1    -1     0     0     0     0
     0     0    -1     1     0     0     0     0
     0     0     0     0     1    -1     0     0
     0     0     0     0    -1     1     0     0
     0     0     0     0     0     0     1    -1
     0     0     0     0     0     0    -1     1

結果は、8 行 8 列のブロック対角行列になります。

要素を反復して、行列のサイズを拡大します。

すべての要素が 1 である 2 行 2 列の行列と、2 行 3 列のその要素を反復させる行列を作成します。

A = [1 2 3; 4 5 6];
B = ones(2);

kron を使って、クロネッカー テンソル積を計算します。

K = kron(A,B)
K =

     1     1     2     2     3     3
     1     1     2     2     3     3
     4     4     5     5     6     6
     4     4     5     5     6     6

結果は、4 行 6 列のブロック行列になります。

この例ではスパース ラプラス演算子行列を可視化します。

2 次元、nn 列グリッド上で、離散ラプラス演算子の行列表現は、n*nn*n 列のスパース行列になります。各行または各列に非ゼロ要素が最大 5 個あります。行列は、1 次元の差分演算子のクロネッカー積として生成できます。この例では、n = 5 となります。

n = 5;
I = speye(n,n);
E = sparse(2:n,1:n-1,1,n,n);
D = E+E'-2*I;
A = kron(D,I)+kron(I,D);

spy を使って、スパース パターンを可視化します。

spy(A,'k')

入力引数

すべて折りたたむ

入力行列。スカラー、ベクトルまたは行列として指定します。A または B のいずれかがスパースの場合、kron は非ゼロの要素のみを乗算し、結果もスパースになります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
複素数のサポート: あり

詳細

すべて折りたたむ

クロネッカー テンソル積

Amn 列の行列で、Bpq 列の行列の場合、AB のクロネッカー テンソル積は、BA の各要素で乗算することで得られる大規模な行列になります。

AB=[a11Ba12Ba1nBa21Ba22Ba2nBam1Bam2BamnB].

たとえば、2 つのシンプルな 2 行 2 列の行列の場合、次が生成されます。

A=[1210],B=[4323]AB=[1·41·32·42·31·21·32·22·31·41·30·40·31·21·30·20·3]=[4386234643002300].

参考

| | |

R2006a より前に導入

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