Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

assumptions

シンボリック変数、シンボリック式、またはシンボリック関数に影響を与える仮定を表示

説明

assumptions(var) は、変数 var に影響を与えるすべての仮定を返します。var が式または関数の場合、assumptionsvar のすべての変数に影響を与えるすべての仮定を返します。

assumptions は、MATLAB® ワークスペースのすべての変数に影響を与えるすべての仮定を返します。

変数に設定された仮定

assume を使用して、変数 n が整数であると仮定します。assumptions を使用して仮定を返します。

syms n
assume(n,'integer')
assumptions
ans =
in(n, 'integer')

構文 in(n, 'integer')n が整数であることを示します。

assume を使用して、nx より小さく、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 は、仮定の推移閉包、つまり入力に数学的な影響を与えるすべての仮定を返します。

変数 m1 < m < 3 という仮定を設定します。assumptions を使用して、mx に設定したすべての仮定を返します。

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')xreal であることを示します。

計算を続行するよう仮定を消去します。

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 で導入