mapSymType
説明
例
式のシンボリック数への関数の適用
sym
を使用して、シンボリック数を含むシンボリック式を作成します。
expr = sym('2') + 1i*pi
expr =
ある数の二乗を計算する関数ハンドルを作成します。
sq = @(y) y^2;
関数 sq
を式 expr
のタイプ 'integer'
のシンボリック サブオブジェクトに適用します。
X = mapSymType(expr,'integer',sq)
X =
exp
などの既存の MATLAB® 関数を適用することもできます。関数 exp
を式 expr
のタイプ 'complex'
のシンボリック サブオブジェクトに適用します。
X = mapSymType(expr,'complex',@exp)
X =
方程式のシンボリック サブオブジェクトへのシンボリック関数の適用
シンボリック方程式の特定のサブオブジェクトにシンボリック関数を適用します。
シンボリック方程式を作成します。
syms x t eq = 0.5*x + sin(x) == t/4
eq =
入力に 2 を乗算するシンボリック関数を作成します。
syms f(u)
f(u) = 2*u;
シンボリック関数 f を方程式 eq
のタイプ 'variable'
のシンボリック サブオブジェクトに適用します。
X = mapSymType(eq,'variable',f)
X =
方程式のシンボリック変数 x
および t
に 2 が乗算されます。
symfun
を使用して作成された同じシンボリック関数を適用することもできます。
X = mapSymType(eq,'variable',symfun(2*u,u))
X =
ここで、未割り当てのシンボリック関数を作成します。未割り当ての関数を方程式 eq
のタイプ 'sin'
のシンボリック サブオブジェクトに適用します。
syms g(u) X = mapSymType(eq,'sin',g)
X =
特定のタイプの最も大きい部分式への関数の適用
式の中の特定のタイプの最も大きいシンボリック部分式を変換します。
シンボリック式を作成します。
syms f(x) y expr = sin(x) + f(x) - 2*y
expr =
関数 log
を式 expr
のタイプ 'expression'
のシンボリック サブオブジェクトに適用します。
X = mapSymType(expr,'expression',@log)
X =
タイプ 'expression'
の複数の部分式がある場合、mapSymType
は関数 log
を最も大きい部分式に適用します。
特定の変数のシンボリック関数
式で特定の変数の依存関係を持つ未割り当てのシンボリック関数を変換します。
シンボリック式を作成します。
syms f(x) g(t) h(x,t) expr = f(x) + 2*g(t) + h(x,t)*sin(x)
expr =
入力を 'z'
の名前を持つシンボリック変数に変換する関数ハンドルを作成します。
func = @(obj) sym('z');
変換関数 func
を式 expr
の未割り当てのシンボリック関数に適用します。
'symfunOf'
を使用して、変数 [x t]
の厳密な順序に依存する関数を変換します。
X = mapSymType(expr,'symfunOf',[x t],func)
X =
'symfunDependingOn'
を使用して、変数 t
への依存関係を持つ関数を変換します。
X = mapSymType(expr,'symfunDependingOn',x,func)
X =
シンボリック関数の変数依存関係の削除
シンボリック配列内の未割り当てのシンボリック関数の変数依存関係を削除します。
複数の方程式から成るシンボリック配列を作成します。
syms f1(t) f2(t) g1(t) g2(t) eq = [f1(t) + f2(t) == 0, f1(t) == 2*g1(t), g1(t) == diff(g2(t))]
eq =
関数symFunType
を適用して、未割り当てのシンボリック関数を同じ名前の変数で置き換えます。
'symfunOf'
を使用して変数 t
への依存関係を持つすべての関数を求めて、symFunType
を使用してそれらを変換します。
X = mapSymType(eq,'symfunOf',t,@symFunType)
X =
シンボリック式の書き換え
シンボリック式を作成します。その逆ラプラス変換を求めます。
syms s;
G = (s+10)/(s^2+2*s+4)/(s^2-4*s+1);
expr = ilaplace(G)
expr =
結果は、関数 exp
、sin
、cos
、sinh
、および cosh
で返されます。
結果の sinh
と cosh
を exp
として書き換えます。mapSymType
を使用して、sinh
または cosh
を含む部分式に関数 rewrite
を適用します。
expr = mapSymType(expr,"sinh|cosh",@(subexpr) rewrite(subexpr,"exp"))
expr =
入力引数
symObj
— シンボリック オブジェクト
シンボリック式 | シンボリック関数 | シンボリック変数 | シンボリック数 | シンボリック単位
シンボリック オブジェクト。シンボリック式、シンボリック関数、シンボリック変数、シンボリック数、またはシンボリック単位として指定します。
type
— シンボリック型
スカラー string | 文字ベクトル
シンボリック型。大文字と小文字を区別するスカラー string または文字ベクトルとして指定します。入力 type
には論理式を含めることができます。値のオプションは以下のとおりです。
シンボリック型カテゴリ | string 値 |
---|---|
数値 |
|
定数 | 'constant' — シンボリック数学定数 ('number' を含む) |
シンボリック数学関数 | 'vpa' 、'sin' 、'exp' 、その他 — シンボリック式のシンボリック数学関数 |
未割り当てのシンボリック関数 |
|
算術演算子 |
|
変数 | 'variable' — シンボリック変数 |
単位 | 'unit' — シンボリック単位 |
式 | 'expression' — シンボリック式 (前述のすべてのシンボリック型を含む) |
論理式 |
|
方程式および不等式 |
|
サポートされていないシンボリック型 |
|
funType
— 関数タイプ
'symfunOf'
| 'symfunDependingOn'
関数タイプ。'symfunOf'
または 'symfunDependingOn'
として指定します。
'symfunOf'
はfunc
を、配列vars
で指定される変数の厳密な順序に依存する未割り当てのシンボリック関数に適用します。たとえば、syms f(x,y); mapSymType(f,'symfunOf',[x y],@(g)g^2)
はf(x,y)^2
を返します。'symfunDependingOn'
はfunc
を、配列vars
で指定される変数への依存関係を持つ未割り当てのシンボリック関数に適用します。たとえば、syms f(x,y); mapSymType(f,'symfunDependingOn',x,@(g)g/2)
はf(x,y)/2
を返します。
vars
— 入力変数
シンボリック変数 | シンボリック配列
入力変数。シンボリック変数またはシンボリック配列として指定します。
バージョン履歴
R2019a で導入
参考
symFunType
| isSymType
| symType
| sym
| syms
| findSymType
| hasSymType
| str2sym
| symfun
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)