21.1 Creating and Manipulating Diagonal/Permutation Matrices

Last-modified: 2025-03-06 (木) 20:35:44

1.1 対角行列/順列行列の作成と操作

対角行列は、主対角線の外側に要素が 0 個ある行列として定義されます。つまり、 D(i,j) == 0の場合ですi != j。ほとんどの場合、正方対角行列が対象となりますが、定義は正方でない行列にも同様に適用でき、その場合は通常、長方形対角行列と呼ばれます。

順列行列は、各行と各列に 1 に等しい単一の要素を持ち、他のすべての要素がゼロである正方行列として定義されます。つまり、 の 場合、であり、 それ以外の場合pは である順列 (ベクトル) が存在します。 P(i,j) == 1j == p(i)P(i,j) == 0

Octave は、実数および複素数の直交対角行列、および順列行列の特別な処理を提供します。これらは、効率的なストレージとアルゴリズムを使用して特別なオブジェクトとして保存され、Octave 言語で読みやすく効率的な行列代数式を記述することを容易にします。特別な処理は、関数optimize_diagonal_matrix およびoptimize_permutation_matrixを使用して無効にすることができます。

: val = optimize_diagonal_matrix ()

: old_val = optimize_diagonal_matrix (new_val)

: old_val = optimize_diagonal_matrix (new_val, "local")

対角行列の格納に特別なスペース効率の高い形式が使用されるかどうかを照会または設定します。

デフォルト値は true です。このオプションを false に設定すると、Octave は対角行列を完全な行列として保存します。

オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すすべてのサブルーチンの設定がローカルに変更されます。関数を終了すると、元の設定が復元されます。

See also: optimize_range, optimize_permutation_matrix.

: val = optimize_permutation_matrix ()

: old_val = optimize_permutation_matrix (new_val)

: old_val = optimize_permutation_matrix (new_val, "local")

順列行列の保存に特別なスペース効率の高い形式が使用されるかどうかを照会または設定します。

デフォルト値は true です。このオプションを false に設定すると、Octave は順列行列を完全な行列として保存します。

オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すすべてのサブルーチンの設定がローカルに変更されます。関数を終了すると、元の設定が復元されます。
See also: optimize_range, optimize_diagonal_matrix.

The space savings are significant as demonstrated by the following code.

x = diag (rand (10, 1));
xf = full (x);
sizeof (x)
 ⇒ 80
sizeof (xf)

⇒ 800
Creating Diagonal Matrices
Creating Permutation Matrices
Explicit and Implicit Conversions