Main Content

assumptions

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

説明

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

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

すべて折りたたむ

Symbolic Math Toolbox™ では、シンボリック変数の作成時に数学的な仮定や条件を設定できます。たとえば、シンボリック変数 n を作成し、変数が整数であると仮定します。assumptions を使用して仮定を返します。

syms n integer
assumptions
ans = nZ

関数 assume を使用して仮定を設定することもできます。たとえば、nx より小さく、x < 42 と仮定します。関数 assume は、入力の古い仮定を新しい仮定で置き換えます。n に影響を与えるすべての仮定を返します。

syms x
assume(n < x & x < 42)
assumptions(n)
ans = (n<xx<42)

assumptions は、仮定 x < 42 を返します。その仮定が仮定 n < x を通して n に影響を与えるためです。したがって、assumptions は、仮定の推移閉包、つまり入力に数学的な影響を与えるすべての仮定を返します。

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

syms m
assume(1 < m < 3)
assumptions([m x])
ans = (n<x1<mm<3x<42)

すべての変数に影響を与える仮定を確認するには、引数を指定せずに、assumptions を使用します。

assumptions
ans = (n<x1<mm<3x<42)

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

assume([m n x],"clear")

assume を使用して変数に追加の仮定を設定することはできません。assume は、その変数に以前に設定されたすべての仮定を消去するからです。変数に追加の仮定を設定するには、assumeAlso を使用します。

assume を使用して x に仮定を設定します。assumeAlso を使用して x に追加の仮定を設定します。assumptions を使用して、x に設定された複数の仮定を返します。

syms x
assume(x,"real")
assumeAlso(x < 0)
assumptions(x)
ans = (xRx<0)

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

assume(x,"clear")

assumptions は、入力としてシンボリック式やシンボリック関数を受け入れます。そして、シンボリック式やシンボリック関数のすべての変数に影響を与えるすべての仮定を返します。

シンボリック式とシンボリック関数の変数に仮定を設定します。assumptions を使用して、シンボリック式のすべての変数に影響を与えるすべての仮定を求めます。

syms a b c f(a,b,c)
expr = a*exp(b)*sin(c);
assume(a+b > 3 & in(a,"integer") & in(c,"real"))
assumptions(expr)
ans = (aZcR3<a+b)

シンボリック関数への入力となる、すべての変数に影響を与えるすべての仮定を求めます。

assumptions(f)
ans = (aZcR3<a+b)

関数の入力引数に仮定を設定した後に syms を使用して別のシンボリック関数を作成すると、それまでシンボリック変数に設定されていた仮定が syms によってすべて消去されることに注意してください。代わりに、まずシンボリック関数を作成してから、シンボリック変数に仮定を設定します。

syms g(a,b,c)
assumptions(g)
 
ans =
 
Empty sym: 1-by-0
 
assume(a+b > 3 & in(a,"integer") & in(c,"real"))
assumptions(g)
ans = (aZcR3<a+b)

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

assume([a b c],"clear")

古い仮定に戻すには、最初に assumptions によって返された仮定を保存します。その後、assume または assumeAlso を呼び出すことで、これらの仮定をどの時点でも復元することができます。

質量とバネ定数は positive であるという仮定の下で、dsolve を使用してバネ系の方程式の解を求めます。

syms m k positive
syms x(t)
xsol = dsolve(m*diff(x,t,t) == -k*x, x(0) == 0)
xsol = 

-C1sin(ktm)

仮定による制約のない解を求めるとします。しかし、仮定は後で復元するとします。まず、assumptions を使用して仮定を保存します。次に、仮定を消去して方程式の解を求めます。dsolve は、仮定による制約のない解を返します。

tmp = assumptions;
assume([m k],"clear")
xsol = dsolve(m*diff(x,t,t) == -k*x, x(0) == 0)
xsol = 

-C1e-t-kmme2t-kmm-1

assume を使用して、元の仮定を復元します。

assume(tmp)

計算終了後に、assume を使用して仮定を消去します。

assume([m k],"clear")

入力引数

すべて折りたたむ

仮定を表示するためのシンボリックな入力。シンボリック変数、シンボリック式またはシンボリック関数、あるいはシンボリック変数、シンボリック式またはシンボリック関数からなるベクトル、行列または多次元配列で指定します。

ヒント

  • clear を使用して MATLAB ワークスペースからシンボリック オブジェクトを削除する場合、そのオブジェクトに設定したすべての仮定はシンボリック エンジン内に残ります。同じ名前の新しいシンボリック変数を宣言した場合は、これらの仮定は継承されます。

  • シンボリック変数 var に設定されたすべての仮定を消去するには、次のコマンドを使用します。

    assume(var,"clear")
  • MATLAB ワークスペースからすべてのオブジェクトを消去し、MATLAB ワークスペースに関連付けられた Symbolic Math Toolbox™ エンジンを閉じて、その仮定をすべてリセットするには、次のコマンドを使用します。

    clear all

バージョン履歴

R2012a で導入