Main Content

inv

シンボリック行列の逆行列

説明

D = inv(A) は、シンボリック行列 A の逆行列を返します。

すべて折りたたむ

シンボリック数から成る行列の逆行列を計算します。

A = sym([2 -1 0; -1 2 -1; 0 -1 2]);
D = inv(A)
D = 

(34121412112141234)

シンボリック スカラー変数から成る行列の逆行列を計算します。

syms a b c d
A = [a b; c d];
D = inv(A)
D = 

(dad-bc-bad-bc-cad-bcaad-bc)

シンボリック数を持つヒルベルト行列の逆行列を計算します。

D = inv(sym(hilb(4)))
D = 

(16-120240-140-1201200-27001680240-27006480-4200-1401680-42002800)

次の 4 行 4 列のブロック行列の逆行列を求めます。

C=[A02,202,2B]

ここで、A および B は 2 行 2 列の部分行列です。02,2 という表記は、2 行 2 列のゼロの部分行列を表しています。

シンボリック行列変数を使用して、ブロック行列の部分行列を表します。

syms A B [2 2] matrix
Z = symmatrix(zeros(2))
Z = 02,2
C = [A Z; Z B]
C = 

(A02,202,2B)

行列 C の逆行列を求めます。

D = inv(C)
D = 

(A02,202,2B)-1

逆行列の要素を表示するには、symmatrix2sym を使用し、結果をシンボリック行列変数からシンボリック スカラー変数に変換します。

D1 = symmatrix2sym(D)
D1 = 

(A2,2σ2-A1,2σ200-A2,1σ2A1,1σ20000B2,2σ1-B1,2σ100-B2,1σ1B1,1σ1)where  σ1=B1,1B2,2-B1,2B2,1  σ2=A1,1A2,2-A1,2A2,1

行列多項式 a0 I2+A の逆行列を計算します。ここで、A は 2 行 2 列の行列です。

行列 A をシンボリック行列変数として作成し、係数 a0 をシンボリック スカラー変数として作成します。a0 および A をパラメーターとして、行列多項式をシンボリック行列関数 f として作成します。

syms A [2 2] matrix
syms a0
syms f(a0,A) [2 2] matrix keepargs
f(a0,A) = a0*eye(2) + A
f(a0, A) = a0I2+A

inv を使用して f の逆行列を求めます。結果は、スカラー、ベクトル、行列を入力引数として受け入れる symfunmatrix 型のシンボリック行列関数になります。

fInv = inv(f)
fInv(a0, A) = a0I2+A-1

symfunmatrix2symfun を使用して、結果を symfunmatrix データ型から symfun データ型に変換します。結果は、スカラーを入力引数として受け入れるシンボリック関数になります。

gInv = symfunmatrix2symfun(fInv)
gInv(a0, A1_1, A1_2, A2_1, A2_2) = 

(A2,2+a0σ1-A1,2σ1-A2,1σ1A1,1+a0σ1)where  σ1=A1,1a0+A2,2a0+a02+A1,1A2,2-A1,2A2,1

入力引数

すべて折りたたむ

入力行列。正方数値行列、シンボリック スカラー変数の正方行列、シンボリック正方行列変数、シンボリック正方行列関数、または正方形サイズのシンボリック式として指定します。

データ型: single | double | sym | symmatrix | symfunmatrix

ヒント

  • 多くのシンボリック変数が含まれる行列計算は低速になる可能性があります。計算速度を向上させるには、特定の値を変数に代入することでシンボリック変数の数を減らします。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

| |