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+a1A+a2A2 の逆行列を計算します。ここで、A は 2 行 2 列の行列です。

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

syms A [2 2] matrix
syms a0 a1 a2 [1 1] matrix
syms f(A,a0,a1,a2) [2 2] matrix keepargs
f(A,a0,a1,a2) = a0*eye(2) + a1*A + a2*A^2
f(A, a0, a1, a2) = a0I2+a1A+a2A2

inv を使用して f の逆行列を求めます。結果は symfunmatrix 型のシンボリック行列関数になります。

fInv = inv(f)
fInv(A, a0, a1, a2) = a0I2+a1A+a2A2-1

行列値 A=[2 -1;-1 2] と係数値 a0=-1a1=2a2=3 の逆行列を評価します。結果は、symmatrix 型のシンボリック行列変数になります。

Aval = [2 -1; -1 2];
fEval = fInv(Aval,-1,2,3)
fEval = 

2Σ1+3Σ12-I2-1where  Σ1=(2-1-12)

symmatrix2sym を使用して、結果を symmatrix データ型から sym データ型に変換します。結果はシンボリック数の行列になります。

symmatrix2sym(fEval)
ans = 

(964764764964)

入力引数

すべて折りたたむ

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

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

ヒント

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

バージョン履歴

R2006a より前に導入

すべて展開する

参考

| |