このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
assumptions
シンボリック変数、シンボリック式、またはシンボリック関数に影響を与える仮定を表示
説明
例
変数に設定された仮定
assume
を使用して、変数 n
が整数であると仮定します。assumptions
を使用して仮定を返します。
syms n assume(n,'integer') assumptions
ans = in(n, 'integer')
構文 in(n, 'integer')
は n
が整数であることを示します。
assume
を使用して、n
は x
より小さく、x < 42
と仮定します。関数 assume
は、入力の古い仮定を新しい仮定で置き換えます。n
に影響を与えるすべての仮定を返します。
syms x assume(n<x & x<42) assumptions(n)
ans = [ n < x, x < 42]
assumptions
は、仮定 x < 42
を返します。その仮定が仮定 n < x
を通して n
に影響を与えるためです。したがって、assumptions
は、仮定の推移閉包、つまり入力に数学的な影響を与えるすべての仮定を返します。
変数 m
に 1 < m < 3
という仮定を設定します。assumptions
を使用して、m
と x
に設定したすべての仮定を返します。
syms m assume(1<m<3) assumptions([m x])
ans = [ n < x, 1 < m, m < 3, x < 42]
すべての変数に影響を与える仮定を確認するには、引数を指定せずに、assumptions
を使用します。
assumptions
ans = [ n < x, 1 < m, m < 3, x < 42]
計算を続行するよう仮定を消去します。
assume([m n x],'clear')
1 つの変数についての複数の仮定
assume
を使用して変数に追加の仮定を設定することはできません。assume
は、その変数に以前に設定されたすべての仮定を消去するからです。変数に追加の仮定を設定するには、assumeAlso
を使用します。
assume
を使用して x
に仮定を設定します。assumeAlso
を使用して x
に追加の仮定を設定します。assumptions
を使用して、x
に設定された複数の仮定を返します。
syms x assume(x,'real') assumeAlso(x<0) assumptions(x)
ans = [ in(x, 'real'), x < 0]
構文 in(x, 'real')
は x
がreal
であることを示します。
計算を続行するよう仮定を消去します。
assume(x,'clear')
式や関数に影響を与える仮定
assumptions
は、入力としてシンボリック式やシンボリック関数を受け入れます。そして、シンボリック式やシンボリック関数のすべての変数に影響を与えるすべての仮定を返します。
シンボリック式の変数に仮定を設定します。assumptions
を使用して、シンボリック式のすべての変数に影響を与えるすべての仮定を求めます。
syms a b c expr = a*exp(b)*sin(c); assume(a+b > 3 & in(a,'integer') & in(c,'real')) assumptions(expr)
ans = [ 3 < a + b, in(a, 'integer'), in(c, 'real')
シンボリック関数への入力となる、すべての変数に影響を与えるすべての仮定を求めます。
syms f(a,b,c)
assumptions(f)
ans = [ 3 < a + b, in(a, 'integer'), in(c, 'real')]
計算を続行するよう仮定を消去します。
assume([a b c],'clear')
古い仮定に戻す
古い仮定に戻すには、最初に assumptions
によって返された仮定を保存します。その後、assume
または assumeAlso
を呼び出すことで、これらの仮定をどの時点でも復元することができます。
質量とバネ定数は positive
であるという仮定の下で、dsolve
を使用してバネの方程式の解を求めます。
syms m k positive syms x(t) dsolve(m*diff(x,t,t) == -k*x, x(0)==0)
ans = C8*sin((k^(1/2)*t)/m^(1/2))
仮定による制約のない解を求めるとします。しかし、仮定は後で復元するとします。まず、assumptions
を使用して仮定を保存します。次に、仮定を消去して方程式の解を求めます。dsolve
は、仮定による制約のない解を返します。
tmp = assumptions;
assume([m k],'clear')
dsolve(m*diff(x,t,t) == -k*x, x(0)==0)
ans = C10*exp((t*(-k*m)^(1/2))/m) + C10*exp(-(t*(-k*m)^(1/2))/m)
assume
を使用して、元の仮定を復元します。
assume(tmp)
計算終了後に、assume
を使用して仮定を消去します。
assume([m k],'clear')
入力引数
ヒント
clear
を使用して MATLAB ワークスペースからシンボリック オブジェクトを削除する場合、そのオブジェクトに設定したすべての仮定はシンボリック エンジン内に残ります。同じ名前の新しいシンボリック変数を宣言した場合は、これらの仮定は継承されます。シンボリック変数
var
に設定されたすべての仮定を消去するには、次のコマンドを使用します。assume(var,'clear')
MATLAB ワークスペースからすべてのオブジェクトを消去し、MATLAB ワークスペースに関連付けられた Symbolic Math Toolbox™ エンジンを閉じて、その仮定をすべてリセットするには、次のコマンドを使用します。
clear all
バージョン履歴
R2012a で導入