18.4 行列の関数
: r = expm (A)
行列の指数を返します。
行列指数は無限テイラー級数として定義される。
expm (A) = I + A + A^2/2! + A^3/3! + ...
しかし、テイラー級数は行列の指数を計算する方法ではありません。MolerとVan Loanの「行列の指数を計算する19の疑わしい方法」、SIAM Review、1978を参照してください。このルーチンは、3段階の事前処理を伴うWardの対角パデ近似法を使用します(SIAM Journal on Numerical Analysis、1977)。対角パデ近似は、行列の有理多項式です。
-1 D (A) N (A)
そのテイラー級数は上記のテイラー級数の最初の項と一致します 。 が悪条件である 2q+1 場合、パデ近似の代わりにテイラー級数を直接評価する(同じ前処理手順を使用)ことが望ましい場合があります 。Dq(A)
See also: logm, sqrtm.
: s = logm (A)
: s = logm (A, opt_iters)
: [s, iters] = logm (…)
正方行列Aの行列対数を計算します。
実装ではパデ近似と恒等式を利用する。
logm (A) = 2^k * logm (A^(1 / 2^k))
オプションの入力opt_iters は、計算する平方根の最大数であり、デフォルトは 100 です。
オプションの出力iters は、実際に計算された平方根の数です。
See also: expm, sqrtm.
: s = sqrtm (A)
: [s, error_estimate] = sqrtm (A)
正方行列Aの行列平方根を計算します。
参照: NJ Higham。MATLAB 用の新しい sqrtm 。数値解析レポート No. 336、マンチェスター計算数学センター、マンチェスター、イギリス、1999 年 1 月。
See also: expm, logm.
: C = kron (A, B)
: C = kron (A1, A2, …)
2 つ以上の行列のクロネッカー積を作成します。
これはブロックごとに次のように定義されます
c = [ a(i,j)*b ]
例えば:
kron (1:4, ones (3, 1))
⇒ 1 2 3 4
1 2 3 4
1 2 3 4
入力引数A1、A2、…、 Anが2つ以上ある場合、クロネッカー積は次のように計算されます。
kron (kron (A1, A2), ..., An)
クロネッカー積は結合的であるため、これは明確に定義されています。
See also: tensorprod.
: C = tensorprod (A, B, dimA, dimB)
: C = tensorprod (A, B, dim)
: C = tensorprod (A, B)
: C = tensorprod (A, B, "all")
: C = tensorprod (A, B, …, "NumDimensionsA", value)
数値テンソルAとB間のテンソル積を計算します。
縮小される AとBの次元は、それぞれdimAとdimBによって定義されます。 dimAとdimB は、一致する次元を定義するスカラーまたは等長ベクトルです。AとBの一致する次元には、同じ数の要素が必要です。
dimのみを使用した場合は、 と同等になります 。 dimA = dimB = dim
次元が指定されていない場合は、AとBの外積を計算します。 dimA = dimB = []
オプションを使用すると、 A とB"all"の内積が計算されます。これには が必要です。 size (A) == size (B)
AにCに転送する必要がある後続のシングルトン次元がある"NumDimensionsA"場合、プロパティ名とともにプロパティ値のペアを使用します 。指定する値は、 A の次元の合計数である必要があります。
MATLAB互換性: Octave は現在、 パラメータの構文 をサポートしていません。 "property_name=value""NumDimensionsA"
See also: kron, dot, mtimes.
: C = blkmm (A, B)
行列ブロックの積を計算します。
ブロックは、配列A、 Bの 2 次元サブ配列として与えられます。 Aのサイズはの形式で[m,k,…]、Bのサイズはである必要があります[k,n,…]。 結果はサイズ となり [m,n,…]、次のように計算されます。
for i = 1:prod (size (A)(3:end)) C(:,:,i) = A(:,:,i) * B(:,:,i) endfor
: X = sylvester (A, B, C)
シルベスター方程式を解きます。
シルベスター方程式は次のように定義されます
A X + X B = C
解は標準のLAPACKサブルーチンを使用して計算されます。
例えば:
sylvester ([1, 2; 3, 4], [5, 6; 7, 8], [9, 10; 11, 12])
⇒ [ 0.50000, 0.66667; 0.66667, 0.50000 ]