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_1, A1_2; A2_1, A2_2]

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

A(1,2) = 5
A = 

(A1,15A2,1A2,2)[A1_1, sym(5); A2_1, A2_2]

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

syms B [2 2]
B
B = 

(B1,1B1,2B2,1B2,2)[B1_1, B1_2; B2_1, B2_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)[B1_1, B1_2; B2_1, sym(4)]

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

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

(abcbcacab)[a, b, c; b, c, a; c, a, b]

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

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

(aa+1ca+1cacaa+1)[a, a + 1, c; a + 1, c, a; c, a, a + 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)[a, a + 1, a + 2; a + 1, a + 2, a; a + 2, a, a + 1]

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

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

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

(132-12-32-121-32-1232-12111)[sym(1), sqrt(sym(3))/2 - sym(1/2), - sqrt(sym(3))/2 - sym(1/2); sym(1), - sqrt(sym(3))/2 - sym(1/2), sqrt(sym(3))/2 - sym(1/2); sym(1), sym(1), sym(1)]

E = 

(3a+30003000-3)[3*a + 3, sym(0), sym(0); sym(0), sqrt(sym(3)), sym(0); sym(0), sym(0), -sqrt(sym(3))]

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

subs(E,a,1)
ans = 

(60003000-3)[sym(6), sym(0), sym(0); sym(0), sqrt(sym(3)), sym(0); sym(0), sym(0), -sqrt(sym(3))]