このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
syms
シンボリック スカラー変数、シンボリック関数、およびシンボリック行列変数を作成する
構文
説明
syms
は、var1 ... varN
sym
型のシンボリック スカラー変数 var1 ... varN
を作成します。異なる変数はスペースで区切ります。この構文は、var1 ... varN
の以前の定義をすべて消去します。R2018b 以降、syms
も変数からすべての仮定を消去します。
syms
は、シンボリック スカラー変数 var1 ... varN
[n1 ... nM]
var1 ... varN
の配列を作成します。ここで、各配列のサイズは n1
x ...
x nM
であり、自動生成されたシンボリック スカラー変数をその要素として含みます。シンボリック スカラー変数の配列は、簡潔にシンボリック配列とも呼ばれます。たとえば、syms a [1 3]
は、MATLAB® ワークスペースにシンボリック配列 a = [a1 a2 a3]
およびシンボリック スカラー変数 a1
、a2
、および a3
を作成します。多次元配列では、これらの要素は接頭辞 a
をもち、その後に a1_3_2
のように _
を区切り記号として使用した要素のインデックスが続きます。
syms
は、シンボリック スカラー変数で構成され、自動生成された要素が埋められる var1 ... varN
nn
行 n
列の行列を作成します。シンボリック スカラー変数の行列は、簡潔にシンボリック行列とも呼ばれます。
syms
は、f(var1,...,varN)
symfun
型のシンボリック関数 f
と、f
の入力引数を表すシンボリック スカラー変数 var1,...,varN
を作成します。この構文は、シンボリックの仮定を含む var1,...,varN
の以前の定義をすべて消去します。1 回の関数呼び出しで複数のシンボリック関数が作成できます。たとえば、syms f(x) g(t)
は、2 つのシンボリック関数 (f
および g
) と 2 つのシンボリック スカラー変数 (x
および t
) を作成します。
syms
は、自動的に生成されたシンボリック関数を要素にもつ f(var1,...,varN)
[n1 ... nM]
n1
x ...
x nM
のシンボリック配列を作成します。この構文は、f
の入力引数を表すシンボリック スカラー変数 var1,...,varN
も生成します。たとえば、syms f(x) [1 2]
は、MATLAB ワークスペースでシンボリック配列 f(x) = [f1(x) f2(x)]
、シンボリック関数 f1(x)
および f2(x)
、シンボリック スカラー変数 x
を作成します。多次元配列では、これらの要素は接頭辞 f
をもち、その後に f1_3_2
のように _
を区切り記号として使用した要素のインデックスが続きます。
syms
は、シンボリック関数で構成され、自動生成された要素が埋められる f(var1,...,varN)
nn
行 n
列の行列を作成します。
syms
は、var1 ... varN
[nrow ncol]
matrixsymmatrix
型のシンボリック行列変数 var1 ... varN
を作成します。ここで、各シンボリック行列変数のサイズは nrow
行 ncol
列です (R2021a 以降)。
syms
は var1 ... varN
n matrixn
行 n
列のシンボリック行列変数を作成します (R2021a 以降)。
例
入力引数
出力引数
制限
Symbolic Math Toolbox™ を使用すると、シンボリック スカラー変数に依存するシンボリック関数をパラメーターとして作成できます。ただし、シンボリック行列変数をパラメーター依存にすることはできません。たとえば、現在のところ、コマンド
syms A(x) [3 2] matrix
はエラーになります。jacobian
やlaplacian
などの微分関数は、現在のところ、シンボリック行列変数を入力として受け入れません。ベクトルおよび行列について微分を評価するため、代わりに関数diff
を使用できます。シンボリック行列変数を入力として受け入れるすべての関数を Symbolic Math Toolbox で表示するには、コマンド
methods symmatrix
を使用します。
ヒント
syms
はsym
のショートカットです。このショートカットを使用すると、1 回の関数呼び出しで、複数のシンボリック スカラー変数を作成できます。また、sym
を使用して、各変数を個別に作成できます。ただし、sym
使用して変数を作成した場合、作成した変数の既存の仮定は維持されます。symfun
を使用して、シンボリック関数を作成することもできます。関数およびスクリプト内で、
syms
を使用して MATLAB 関数と同じ名前のシンボリック スカラー変数を作成しないでください。このような名前に対しては、MATLAB がシンボリック スカラー変数を作成することはなく、MATLAB 関数に代入された名前が保持されます。関数またはスクリプト内で、MATLAB 関数と同じ名前のシンボリック スカラー変数を作成する場合は、代わりにsym
を使用します。たとえば、alpha = sym('alpha')
を使用します。関数内での
syms
の使用は、出力割り当ての指示なく変数が生成されるため、避けてください。関数内でsyms
を使用すると、副作用や予期せぬ動作を引き起こす可能性があります。代わりに、関数内でsym
を使用し、t = sym('t')
のように左辺の出力を割り当てます。詳細については、関数 syms または sym の選択を参照してください。syms
では、integer
、real
、rational
、positive
、およびclear
は無効な変数名です。これらの名前のシンボリック スカラー変数を作成する場合は、sym
を使用します。たとえば、real = sym('real')
です。clear x
は、実数、正の数値またはassume
、sym
、またはsyms
によって設定された何らかの仮定のような、仮定のシンボリック オブジェクトは消去しません。仮定を削除するには、次のいずれかのオプションを使用します。syms x
はx
からすべての仮定を消去します。assume(x,'clear')
はx
からすべての仮定を消去します。clear all
は MATLAB ワークスペースのすべてのオブジェクトを消去して、シンボリック エンジンをリセットします。assume
とassumeAlso
では、シンボリック スカラー変数に対してさらに柔軟に仮定を設定できます。
数値ベクトルまたは数値行列の 1 つ以上の要素をシンボリック数で置き換えるとき、MATLAB は、その数値を倍精度数に変換します。
A = eye(3); A(1,1) = sym(pi)
A = 3.1416 0 0 0 1.0000 0 0 0 1.0000
数値ベクトルまたは数値行列の要素を、シンボリック スカラー変数、シンボリック式、またはシンボリック関数で置き換えることはできません。これらの要素は倍精度数に変換できないためです。たとえば、
syms a; A(1,1) = a
はエラーをスローします。