Main Content

findSymType

特定のタイプのシンボリック サブオブジェクトを求める

R2019a 以降

説明

X = findSymType(symObj,type) は、シンボリック オブジェクト symObj からタイプ type のシンボリック サブオブジェクトのベクトルを返します。入力の type は、大文字と小文字を区別する string スカラーまたは文字ベクトルでなければならず、論理式を含めることができます。

  • symObj にタイプ type のシンボリック サブオブジェクトが含まれていない場合、findSymType は空のスカラーを返します。

  • symObj にタイプ type の複数の部分式が含まれている場合、findSymType は一致する最も大きい部分式を返します。

X = findSymType(symObj,funType,vars) はシンボリック入力 symObj からの変数 vars に依存する未割り当てのシンボリック関数のベクトルを返します。

関数タイプ funType は、'symfunOf' または 'symfunDependingOn' に設定できます。たとえば、syms f(x); findSymType(f,'symfunOf',x)f(x) を返します。

すべて折りたたむ

特定のシンボリック数と定数をシンボリック式で求めて返します。

シンボリック式を作成します。

expr = sym('1/2')*pi + vpa(pi)
expr = 

π2+3.1415926535897932384626433832795

タイプ 'integer' のシンボリック数を求めます。

X = findSymType(expr,'integer')
X = (12)

タイプ 'integer | real' のシンボリック数を求めます。

X = findSymType(expr,'integer | real')
X = 

(123.1415926535897932384626433832795)

タイプ 'vpareal' のシンボリック数を求めます。

X = findSymType(expr,'vpareal')
X = 3.1415926535897932384626433832795

タイプ 'complex' のシンボリック数を求めます。

X = findSymType(expr,'complex')
 
X =
 
Empty sym: 1-by-0
 

expr には複素数が含まれていないため、関数 findSymType は空のスカラーを返します。

ここで、タイプ 'constant' のシンボリック定数を求めます。

X = findSymType(expr,'constant')
X = 

π2+3.1415926535897932384626433832795

タイプ 'constant' の部分式が複数ある場合、findSymType は一致する最も大きい部分式を返します。

シンボリック方程式でシンボリック変数とシンボリック関数を求めて返します。

シンボリック方程式を作成します。

syms y(t) k
eq = diff(y) + k*y == sin(y)
eq(t) = 

t y(t)+ky(t)=sin(y(t))

その方程式でタイプ 'variable' のシンボリック変数を求めます。

X = findSymType(eq,'variable')
X = (kt)

その方程式でタイプ 'symfun' の未割り当てのシンボリック関数を求めます。

X = findSymType(eq,'symfun')
X = y(t)

その方程式でタイプ 'diff' のシンボリック数学関数を求めます。

X = findSymType(eq,'diff')
X = 

t y(t)

特定の変数の依存関係を持つシンボリック関数を式で求めて返します。

シンボリック式を作成します。

syms n f(x) g(x) y(x,t)
expr = x + f(x^n) + g(x)+ y(x,t)
expr = x+f(xn)+g(x)+y(x,t)

その式でタイプ 'symfun' の未割り当てのシンボリック関数を求めます。

X = findSymType(expr,'symfun')
X = (f(xn)g(x)y(x,t))

'symfunOf' を使用して、変数 [x t] の厳密な順序に依存するシンボリック関数を求めます。

X = findSymType(expr,'symfunOf',[x t])
X = y(x,t)

'symfunDependingOn' を使用して、変数 x への依存関係を持つシンボリック関数を求めます。

X = findSymType(expr,'symfunDependingOn',x)
X = (g(x)y(x,t))

入力引数

すべて折りたたむ

シンボリック オブジェクト。シンボリック式、シンボリック関数、シンボリック変数、シンボリック数、またはシンボリック単位として指定します。

シンボリック型。大文字と小文字を区別するスカラー string または文字ベクトルとして指定します。入力 type には論理式を含めることができます。値のオプションは以下のとおりです。

シンボリック型カテゴリstring 値
数値
  • 'integer' — 整数

  • 'rational' — 有理数

  • 'vpareal' — 可変精度の浮動小数点実数値

  • 'complex' — 複素数

  • 'real' — 実数 ('integer''rational'、および 'vpareal' を含む)

  • 'number' — 数値 ('integer''rational''vpareal''complex'、および 'real' を含む)

定数'constant' — シンボリック数学定数 ('number' を含む)
シンボリック数学関数'vpa''sin''exp'、その他 — シンボリック式のシンボリック数学関数
未割り当てのシンボリック関数
  • 'F''g'、その他 — 未割り当てのシンボリック関数の関数名

  • 'symfun' — 未割り当てのシンボリック関数

算術演算子
  • 'plus' — 加算演算子 + および減算演算子 -

  • 'times' — 乗算演算子 * および除算演算子 /

  • 'power' — べき乗または指数演算子 ^ および平方根演算子 sqrt

変数'variable' — シンボリック変数
単位'unit' — シンボリック単位
'expression' — シンボリック式 (前述のすべてのシンボリック型を含む)
論理式
  • 'or' — 論理 OR 演算子 |

  • 'and' — 論理 AND 演算子 &

  • 'not' — 論理 NOT 演算子 ~

  • 'xor' — 排他的論理和演算子 xor

  • 'logicalconstant' — シンボリック論理定数 symtrue および symfalse

  • 'logicalexpression' — 論理式 ('or''and''not''xor'symtrue、および symfalse を含む)

方程式および不等式
  • 'eq' — 等号演算子 ==

  • 'ne' — 不等演算子 ~=

  • 'lt' — 左不等演算子 < または右不等演算子 >

  • 'le' — 小なりイコール演算子 <= または大なりイコール演算子 >=

  • 'equation' — シンボリック等式および不等式 ('eq''ne''lt'、および 'le' を含む)

サポートされていないシンボリック型

'unsupported' — サポートされていないシンボリック型

symObj にタイプ type の複数の部分式が含まれている場合、findSymType は一致する最も大きい部分式 (ツリー データ構造で最上位の一致するノード) を返します。

関数タイプ。'symfunOf' または 'symfunDependingOn' として指定します。

  • 'symfunOf' は配列 vars で指定される変数の厳密な順序に依存する未割り当てのシンボリック関数を求めて返します。たとえば、syms f(x,y); findSymType(f,'symfunOf',[x y])f(x,y) を返します。

  • 'symfunDependingOn' は配列 vars で指定される変数への依存関係を持つ未割り当てのシンボリック関数を求めて返します。たとえば、syms f(x,y); findSymType(f,'symfunDependingOn',x)f(x,y) を返します。

入力変数。シンボリック変数またはシンボリック配列として指定します。

バージョン履歴

R2019a で導入