このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
syms
シンボリック スカラー変数、シンボリック関数、シンボリック行列変数、シンボリック行列関数の作成
構文
説明
syms
は、var1 ... varN
sym
型のシンボリック スカラー変数 var1 ... varN
を作成します。各変数はスペースで区切ります。この構文は、var1 ... varN
の以前の定義をすべて消去します。
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
n
n
行 n
列の行列を作成します。
syms
は、f(var1,...,varN)
symfun
型のシンボリック関数 f
と、f
の入力引数を表す sym
型のシンボリック スカラー変数 var1,...,varN
を作成します。この構文は、シンボリックの仮定を含む var1,...,varN
の以前の定義をすべて消去します。評価済みのシンボリック関数 f(var1,...,varN)
は sym
型になります。
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
および f2
、シンボリック スカラー変数 x
を作成します。多次元配列では、これらの要素は接頭辞 f
をもち、その後に f1_3_2
のように _
を区切り記号として使用した要素のインデックスが続きます。
syms
は、シンボリック関数で構成され、自動生成された要素が埋められる f(var1,...,varN)
n
n
行 n
列の行列を作成します。
syms
は、var1 ... varN
[nrow ncol]
matrixsymmatrix
型のシンボリック行列変数 var1 ... varN
を作成します。ここで、各シンボリック行列変数のサイズは nrow
行 ncol
列です。
syms
は var1 ... varN
n
matrixn
行 n
列のシンボリック行列変数を作成します。
syms
は、f(var1,...,varN)
[nrow ncol]
matrixsymfunmatrix
型のシンボリック行列関数 f
と sym
型のシンボリック スカラー変数 var1,...,varN
を作成します。評価したシンボリック関数 f(var1,...,varN)
は symmatrix
型になり、サイズが nrow
行 ncol
列になります。この構文は、シンボリックの仮定を含む var1,...,varN
の以前の定義をすべて消去します。
syms
は、f(var1,...,varN)
[nrow ncol]
matrix keepargsvar1,...,varN
の既存の定義をワークスペースに保持します。変数 var1,...,varN
のいずれもワークスペースに存在しない場合、この構文はそれらを sym
型のシンボリック スカラー変数として作成します。評価されたシンボリック行列関数 f(var1,...,varN)
のサイズは nrow
行 ncol
列になります。
syms
は、シンボリック正方行列関数を作成します。評価されるシンボリック行列関数 f(var1,...,varN)
n
matrixf(var1,...,varN)
のサイズは n
行 n
列になります。この構文は、シンボリックの仮定を含む var1,...,varN
の以前の定義をすべて消去します。
syms
は、f(var1,...,varN)
n
matrix keepargsvar1,...,varN
の既存の定義をワークスペースに保持します。変数 var1,...,varN
のいずれもワークスペースに存在しない場合、この構文はそれらを sym
型のシンボリック スカラー変数として作成します。
例
入力引数
出力引数
制限
divergence
、curl
、jacobian
、およびlaplacian
などの微分関数は、現在のところ、シンボリック行列変数とシンボリック行列関数を入力として受け入れません。ベクトルおよび行列について微分を評価するには、代わりに関数diff
を使用できます。シンボリック行列変数とシンボリック行列関数を入力として受け入れる Symbolic Math Toolbox™ のすべての関数を表示するには、コマンド
methods symmatrix
とmethods symfunmatrix
を使用します。
ヒント
1 回の呼び出しで複数のシンボリック オブジェクトを作成できます。たとえば、
syms f(x) g(t) y
は、2 つのシンボリック関数 (f
およびg
) と 3 つのシンボリック スカラー変数 (x
、t
、y
) を作成します。syms
はsym
、symfun
、symmatrix
、およびsymfunmatrix
のショートカットです。このショートカットを使用すると、1 回の関数呼び出しで、複数のシンボリック オブジェクトを作成できます。たとえば、sym
を使用して、各シンボリック スカラー変数を個別に作成できます。ただし、sym
使用して変数を作成した場合、作成した変数の既存の仮定は維持されます。symfun
を使用して、シンボリック関数を作成することもできます。関数およびスクリプト内で、
syms
を使用して MATLAB 関数と同じ名前のシンボリック スカラー変数を作成しないでください。このような名前に対しては、MATLAB がシンボリック スカラー変数を作成することはなく、MATLAB 関数に代入された名前が保持されます。関数またはスクリプト内で、MATLAB 関数と同じ名前のシンボリック スカラー変数を作成する場合は、代わりにsym
を使用します。たとえば、alpha = sym('alpha')
を使用します。関数内または並列 for ループ内での
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
またはsyms f(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
はエラーをスローします。シンボリック行列関数を評価するときは、定義された入力引数と同じサイズの値を代入しなければなりません。例については、ベクトルとスカラーの関数の作成を参照してください。比較として、以下の例はエラーを返します。
syms X [2 2] matrix syms f(X) [1 1] matrix keepargs f(ones(4))