|
Calling Sequence
|
|
subsop(eq1, eq2, ..., eqn, expr)
|
|
Parameters
|
|
eq[i]
|
-
|
(optional) equation of the form , where each is an integer or list of integers, and each is an expression
|
expr
|
-
|
expression
|
|
|
|
|
Description
|
|
•
|
The subsop function is used to replace specified operands of an expression with new values. It will do the simultaneous substitutions specified by the eqi equation arguments in the last argument expr. The result is obtained by replacing op(spec1, expr) by , op(spec2, expr) by , ..., and op(specn, expr) by in expr.
|
•
|
Each can be either an integer, or a list of integers. If a list of integers is specified, the integers refer to sub-operands of expr at increasing nesting levels. See op for further details.
|
•
|
The integer(s) comprising each must lie in the range . A of 0 is allowed only for function, indexed expression, and series exprs.
|
•
|
If an integer n in a is negative, it is considered equivalent to .
|
•
|
If no eqi are specified, subsop returns its argument with no substitutions.
|
•
|
See also the applyop command which can be used to apply a function to specified operands of an expression.
|
•
|
The action of substitution is not followed by evaluation. In cases where full evaluation is desired, the eval command should be used.
|
|
|
Thread Safety
|
|
•
|
The subsop command is thread-safe as of Maple 15.
|
|
|
Examples
|
|
>
|
|
>
|
|
>
|
|
>
|
|
| (9) |
>
|
|
| (10) |
>
|
|
| (11) |
| (12) |
|
|
An example involving integrals
|
|
|
You can use subsop and applyop to perform a change of variables in an integral step-by-step.
|
>
|
Int(sin(sqrt(x)),x=0..t);
|
| (13) |
|
Apply the change of variable u = x^(1/2)
|
>
|
subsop( [1,1]=u, (13) );
|
| (14) |
>
|
subsop( 1=2*u*op(1,(14)), [2,1]=u, (14) );
|
| (15) |
>
|
applyop( sqrt, [2,2,2], (15) );
|
| (16) |
|
|
|