subsindets - 与えられた型を持つすべての部分式の変換
使い方
subsindets(expr, atype, transformer)
パラメータ
expr - 任意の Maple の式
atype - Maple の型
transformer - それぞれの部分式について呼び出される式(一般的には、手続き)
|
説明
|
|
•
|
手続き subsindets は、subs と indets への呼び出しの特定の組合せであり、あるアルゴリズムにより、与えられた型を持つすべての部分式を効率的に変換することができます。これは、式の操作と変換で使用される共通の「パターン」をまとめています。
|
•
|
型 atype を持つ任意の部分式は、その「置き換え」を作成するため、与えられている transformer 手続きにより変換されます。そして、それぞれの部分式は、subs を用いて対応する変換された式で置き換えられます。
|
|
|
例
|
|
この例は、`F' への呼び出しを全て `H' への呼び出しに変更します。
>
|
subsindets( F( G( x ), F( x, y ) ), 'specfunc( anything, F )', f -> subsop( 0 = H, f ) );
|
| (2.1) |
>
|
subsindets( F( G( x ), F( x, y ) ), 'specfunc( symbol, F )', f -> subsop( 0 = H, f ) );
|
| (2.2) |
全ての記号を定数πだけシフトします。
>
|
subsindets( [sin( x ), cos( y ), tan(z)], 'symbol', y -> y + Pi );
|
| (2.3) |
式の全ての積を展開します。
>
|
expr := sin(x+y) + x*(x+1)+(x+1)*(x+2);
|
| (2.4) |
>
|
subsindets( expr, '`*`', expand );
|
| (2.5) |
| (2.6) |
subsindets() を用いることにより、展開したくないものを展開させないようにすることが可能です。
>
|
subsindets( sin((3+I)*Pi) + (x+y)^100, 'sin( anything )', expand );
|
| (2.7) |
|
|