このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
sym
シンボリック変数、シンボリック式、シンボリック関数、シンボリック行列を作成
有効な変数名でなく、数値を定義しない文字ベクトルのサポートは削除されました。シンボリック式を作成するには、シンボリック変数を作成してから、それらに演算を使用します。たとえば、sym('x + 1')
の代わりに syms x; x + 1
を、sym('exp(pi)')
の代わりに exp(sym(pi))
を、f(var1,...,varN) = sym('f(var1,...,varN)')
の代わりに syms f(var1,...,varN)
を使用します。
構文
説明
は、自動的に生成された要素が設定される A
= sym('a'
,[n1 ... nM]
)n1
×...
×nM
のシンボリック配列を作成します。たとえば、A = sym('a',[1 3])
は行ベクトル A = [a1 a2 a3]
を作成します。生成された要素 a1
、a2
および a3
は MATLAB® ワークスペースに表示されません。多次元配列では、これらの要素は接頭辞 a
をもち、その後に a1_3_2
のように _
を区切り記号として使用した要素のインデックスが続きます。
sym(___,
はシンボリック変数またはシンボリック配列を作成し、変数またはすべての配列要素が set
)set
に属するという仮定を設定します。ここで、set
が取りうる値は、'real'
、'positive'
、'integer'
または 'rational'
です。文字ベクトルの string 配列または cell 配列を指定して、複数の仮定を結合することもできます。たとえば、set
を ["positive" "rational"]
または {'positive','rational'}
として指定することで、正の有理数の値を仮定します。
sym(___,'clear')
は、シンボリック変数またはシンボリック配列に設定された仮定を消去します。上記のいずれの構文でも、'clear'
と set
を併用しないかぎり、入力引数の後に 'clear'
を指定できます。sym
の同一関数呼び出し内で、仮定を設定し、消去することはできません。
例
入力引数
出力引数
ヒント
pi = sym(pi)
とdelta = sym('1/10')
のようなステートメントは、pi
と1/10
の値を継承するように、浮動小数点近似を行わずにシンボリック数を作成します。この方法で作成されたpi
は、pi
という名前のワークスペース変数にシンボリック数を格納します。このワークスペース変数は、組み込みの数値関数を一時的に同じ名前で置き換えます。pi
の浮動小数点表現を元に戻すにはclear pi
を使用します。sym
は、文字ベクトル入力中のi
を常に識別子として扱います。虚数i
を入力するには、代わりに1i
を使用します。clear x
は、実数、正の数値またはassume
、sym
、またはsyms
によって設定された何らかの仮定のような、仮定のシンボリック オブジェクトは消去しません。仮定を削除するには、次のいずれかのオプションを使用します。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
数値ベクトルまたは数値行列の要素を、シンボリック変数、シンボリック式またはシンボリック関数で置き換えることはできません。これらの要素は倍精度数に変換できないからです。たとえば、
A(1,1) = sym('a')
はエラーをスローします。構文
A = sym('a',[n1 ... nM])
を使用する場合、関数sym
はシンボリック配列A
のみを MATLAB ワークスペースに割り当てます。A
の自動的に生成された要素も割り当てるには、代わりに関数syms
を使用します。たとえば、syms a [1 3]
は、MATLAB ワークスペースで行ベクトルa = [a1 a2 a3]
およびシンボリック変数a1
、a2
およびa3
を作成します。
代替可能な機能
その他のシンボリック変数作成方法
複数のシンボリック変数を 1 回の関数呼び出しで作成するには、syms
を使用します。syms
を使用すると、名前付き変数から仮定も消去されます。