シンボリック式の変数の置き換え
ソルバーのオプション 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*pi
subs
によって返された結果に vpa
を使用して浮動小数点数を代入し、その結果を近似します。
vpa(subs(solx, params, 2))
ans = 7.8539816339744830961566084581988 12.042771838760874080773466302571 16.231562043547265065390324146944