Main Content

シンボリック行列の要素の置き換え

sym を使用して自動生成された要素から成る 2 行 2 列の行列 A を作成します。生成された要素 A1,1A1,2A2,1、および A2,2 は MATLAB® ワークスペースに表示されません。

A = sym('A',[2 2])
A = 

(A1,1A1,2A2,1A2,2)

要素 A1,2 を値 5 で置き換えます。行列の要素のインデックスを指定して値を直接代入します。

A(1,2) = 5
A = 

(A1,15A2,1A2,2)

あるいは、syms を使用して、2 行 2 列の行列を作成できます。syms を使用して行列 B を作成します。

syms B [2 2]
B
B = 

(B1,1B1,2B2,1B2,2)

生成された要素 B1,1B1,2B2,1、および B2,2 はシンボリック変数 B1_1B1_2B2_1、および B2_2 として MATLAB® ワークスペースに表示されます。subs を使用して、変数名を指定することにより B の要素を置き換えます。したがって、B2_2 を 4 と置き換えます。

B = subs(B,B2_2,4)
B = 

(B1,1B1,2B2,14)

要素を個別に指定して行列を作成することもできます。3 行 3 列の循環行列 M を作成します。

syms a b c
M = [a b c; b c a; c a b]
M = 

(abcbcacab)

a + 1 で行列 M の変数 b を置き換えます。関数 subs は、行列 M の要素 b をすべて、式 a + 1 と置き換えます。

M = subs(M,b,a+1)
M = 

(aa+1ca+1cacaa+1)

次に、値が c であるすべての要素を a + 2 と置き換えます。置き換える値を cM(1,3) または M(3,1) のように指定できます。

M = subs(M,M(1,3),a+2)
M = 

(aa+1a+2a+1a+2aa+2aa+1)

他のすべての要素は変更しないで、行列の特定の 1 つの要素を新しい値に置き換えるには、代入演算を使用します。たとえば、M(1,1) = 2 は、行列 M の 1 番目の要素のみを値 2 と置き換えます。

行列 M の固有値と固有ベクトルを求めます。

[V,E] = eig(M)
V = 

(132-12-32-121-32-1232-12111)

E = 

(3a+30003000-3)

シンボリック パラメーター a を値 1 と置き換えます。

subs(E,a,1)
ans = 

(60003000-3)