シンボリック式の変数の置き換え
ソルバーのオプション ReturnConditions を使用して次の三角関数方程式を解き、完全解を求めます。ソルバーは、解およびその中で使用されているパラメーターとこれらパラメーターの条件を返します。
syms x eqn = sin(2*x) + cos(x) == 0; [solx, params, conds] = solve(eqn, x, 'ReturnConditions', true)
solx =
pi/2 + pi*k
2*pi*k - pi/6
(7*pi)/6 + 2*pi*k
params =
k
conds =
in(k, 'integer')
in(k, 'integer')
in(k, 'integer')パラメーター k を新しいシンボリック変数 a と置き換えます。まず、シンボリック変数 k および a を作成します (ソルバーは、変数 k を MATLAB® ワークスペース内には作成しません)。
syms k a
関数 subs を使用して、解ベクトル solx、パラメーター params および条件 conds 内の k を a と置き換えます。
solx = subs(solx, k, a) params = subs(params, k, a) conds = subs(conds, k, a)
solx =
pi/2 + pi*a
2*pi*a - pi/6
(7*pi)/6 + 2*pi*a
params =
a
conds =
in(a, 'integer')
in(a, 'integer')
in(a, 'integer')パラメーター a の値は 2 であると分かっているとします。解ベクトル solx の a に 2 を代入します。
subs(solx, a, 2)
ans = (5*pi)/2 (23*pi)/6 (31*pi)/6
または、params に 2 を代入します。この方法では、同じ結果が返されます。
subs(solx, params, 2)
ans = (5*pi)/2 (23*pi)/6 (31*pi)/6
パラメーター a に浮動小数点数を代入します。ツールボックスは、数値を浮動小数点数に変換しますが、sym(pi)、exp(sym(1)) などのシンボリック式をそのまま保持しています。
subs(solx, params, vpa(2))
ans =
2.5*pi
3.8333333333333333333333333333333*pi
5.1666666666666666666666666666667*pisubs によって返された結果に vpa を使用して浮動小数点数を代入し、その結果を近似します。
vpa(subs(solx, params, 2))
ans = 7.8539816339744830961566084581988 12.042771838760874080773466302571 16.231562043547265065390324146944