in
シンボリック入力の数値型
説明
例
シンボリック変数または式の条件を表す
構文 in(x,type)
は、x
が指定された type
であるという条件を表します。x
の型が Real
であるという条件を表します。
syms x cond = in(x,'real')
cond = in(x, 'real')
isAlways
を使用して条件を評価します。isAlways
は条件を判断できないので、警告を発し、logical 0
(false
) を返します。
isAlways(cond)
Warning: Unable to prove 'in(x, 'real')'. ans = logical 0
assume
を使用して条件 cond
が正しいと仮定し、条件を再度評価します。関数 isAlways
は logical 1
(true
) を返し、条件が正しいことを示します。
assume(cond) isAlways(cond)
ans = logical 1
後の計算で x
を使用するには、syms
を使用して再作成することでその仮定を消去します。
syms x
条件を出力に表す
solve
などの関数は、出力で in
を使用して条件を表します。
solve
を使用して方程式 sin(x) == 0
を解きます。オプション ReturnConditions
を true
に設定して解の条件を返すようにします。関数 solve
は in
を使用して条件を表します。
syms x [solx, params, conds] = solve(sin(x) == 0,'ReturnConditions',true)
solx = pi*k params = k conds = in(k, 'integer')
解は pi*k
で、パラメーター k
は in(k,'integer')
という条件下にあります。この条件を使用して、後の計算に仮定を設定することができます。この仮定の下で、solve
は k
の整数値のみを返します。
assume(conds) k = solve(solx > 0, solx < 5*pi, params)
k = 1 2 3 4
k
のこれらの値に対応する解を求めるには、solx
において k
の代わりに subs
を使用します。
subs(solx,k)
ans = pi 2*pi 3*pi 4*pi
k
の仮定を消去して、後の計算で使用できるようにします。
assume(params, 'clear')
シンボリック行列の要素が有理数であるか調べる
シンボリック行列 M
を作成します。
syms x y z M = sym([1.22 i x; sin(y) 3*x 0; Inf sqrt(3) sym(22/7)])
M = [ 61/50, 1i, x] [ sin(y), 3*x, 0] [ Inf, 3^(1/2), 22/7]
isAlways
を使用して、M
の要素が有理数かどうかをテストします。関数 in
は M
の要素ごとに調べます。isAlways
は判断できないステートメントに対して logical 0
(false
) を返し、それらのステートメントについて警告を発します。
in(M,'rational')
ans = [ in(61/50, 'rational'), in(1i, 'rational'), in(x, 'rational')] [ in(sin(y), 'rational'), in(3*x, 'rational'), in(0, 'rational')] [ in(Inf, 'rational'), in(3^(1/2), 'rational'), in(22/7, 'rational')]
isAlways(in(M,'rational'))
Warning: Unable to prove 'in(sin(y), 'rational')'. Warning: Unable to prove 'in(3*x, 'rational')'. Warning: Unable to prove 'in(x, 'rational')'. ans = 3×3 logical array 1 0 0 0 0 1 0 0 1
入力引数
バージョン履歴
R2014b で導入