ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

逆方向シフトを使用して、3 行 3 列の循環行列を作成します。

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

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

M = subs(M, b, a + 1)
M =
[     a, a + 1,     c]
[ a + 1,     c,     a]
[     c,     a, a + 1]

行列にインデックスを付けて、置き換える値を指定することもできます。つまり、その値が c であるすべての要素を置き換えるために、置き換える値を cM(1,3) または M(3,1) のように指定することができます。

その値が M(1,3) = c であるすべての要素を、式 a + 2 と置き換えます。

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

ヒント

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

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

[V,E] = eig(M)
V =
[ 1,   3^(1/2)/2 - 1/2, - 3^(1/2)/2 - 1/2]
[ 1, - 3^(1/2)/2 - 1/2,   3^(1/2)/2 - 1/2]
[ 1,                 1,                 1]
 
E =
[ 3*a + 3,       0,        0]
[       0, 3^(1/2),        0]
[       0,       0, -3^(1/2)]

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

subs(E, a, 1)
ans =
[ 6,       0,        0]
[ 0, 3^(1/2),        0]
[ 0,       0, -3^(1/2)]